SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Setting up a free Java e-commerce 
webshop 
(including cloud deployment) 
For GDG Fresno 
On 10/10/2014, Bitwise Industries, 
Presented by Csaba Toth
Background 
• Startup Weekend Fresno 
• Event starts: Friday 5:30 PM, Sept. 5, 2014 
• Event ends: Sunday 9:30 PM, Sept. 7, 2014 
• Clock started sometimes around 10 PM on 
Friday, I joined team Pro-Pack, a subscription 
based dietary supplement company 
• Clock effectively ended on 6 PM Sunday (final 
product pitch)
E-commerce websites 
• Saturday morning: searching for existing 
solutions 
– Java Pet Store Demo 
– JadaSite http://www.jadasite.com/ 
– KonaKart http://www.konakart.com/ 
– Apache OFBiz https://ofbiz.apache.org/ 
– Broadleaf http://www.broadleafcommerce.org/ 
– …
Java Pet Store Demo 
• Originally was an example for Java J2EE 
• Can be beneficial to study the source 
• Has payment module stub 
• Has shipping module stub 
• Demonstrates pure Java EE (no Spring 
Framework)
Java Enterprise Edition Platform 
• Extends the Java Standard Edition Platform 
– ORM (Object Relationship Mapping) in the form of JPA 
(Java Persistency API) 
– Distributed and multi-tier architectures 
– EJB support (Enterprise Java Beans) 
– JMS (Java Messaging Services) 
– CDI: Contexts and Dependency Injection 
– JSF: Java Server Faces for front-end UI 
– Web Services 
• Modularity 
• Many application servers which can host JEE apps
Java Enterprise Edition Platform 
Specification Java EE 6[6] Java EE 7[3] 
Servlet 3.0 3.1 
JavaServer Pages (JSP) 2.2 2.3 
Unified Expression Language (EL) 2.2 3.0 
Debugging Support for Other Languages (JSR-45) 1.0 1.0 
JavaServer Pages Standard Tag Library (JSTL) 1.2 1.2 
JavaServer Faces (JSF) 2.0 2.2 
Java API for RESTful Web Services (JAX-RS) 1.1 2.0 
Java API for WebSocket (WebSocket) n/a 1.0 
Java API for JSON Processing (JSON-P) n/a 1.0 
Common Annotations for the Java Platform (JSR-250) 1.1 1.2 
Enterprise JavaBeans (EJB) 3.1 Lite 3.2 Lite 
Java Transaction API (JTA) 1.1 1.2 
Java Persistence API (JPA) 2.0 2.1 
Bean Validation 1.0 1.1 
Managed Beans 1.0 1.0 
Interceptors 1.1 1.2 
Contexts and Dependency Injection for the Java EE Platform 1.0 1.1 
Dependency Injection for Java 1.0 1.0
Example 
Entity Bean
Example JSF
Three-tier/layer Architecture 
• Three-tier 
– Data 
– Services / Business logic 
– User Interface 
• For data access: ORM 
• For modular architecture and SOA: 
Dependency Injection 
• UI layer: often MVC technology, templating 
engines
Architecture 
UI client side 
UI server side (MVC controllers and models) 
EJBs Service Oriented Architecture 
ORM: JPA, Hibernate, iBatis, etc. 
DB 
DAO 
CDI 
config 
Configuration 
UI layer 
Services / 
Middle / 
Business 
layer 
Data 
access 
layer 
JDBC 
Data-base 
Backing Beans, DTOs
Common properties 
• Use of Java EE 
• Maven: de-facto standard nowadays (Gradle is 
coming up though) 
– Declarative make/build system 
– Suggest best-practice directory hierarchy (see later) 
– Testing 
– Deployment 
– Documentation generation 
– … everything!
Java Pet Store Demo 
• https://github.com/stephanrauh/agoncal-petstore- 
JSE7-ajax 
– Technologies : BabbageFaces, PrimeFaces 5+, 
Bootstrap, Angular JS, Java EE 6 
• https://github.com/agoncal/agoncal-application- 
petstore-ee6 
– JSF front-end, also Java EE 6 
• Application Servers : GlassFish 3.x, JBoss 7.x, 
TomEE 1.x
JadaSite 
• http://www.jadasite.com/ 
• http://www.jadasite.com/jada/web/fe/jadasite/English 
/content/Documentation 
• http://www.jadasite.com/jada/web/fe/jadasite/English 
/content/Features 
• Can be deployed on any J2EE application servers 
including Apache Tomcat, Sun GlassFish, BEA Weblogic, 
IBM Websphere, etc. 
• Compatible with MySQL, SQLServer, Oracle database 
server, etc. 
• Template based design, with template editor
KonaKart 
• http://www.konakart.com/ 
• All functionality is available through a set of APIs (POJO, 
JSON, SOAP, RMI, JavaScript) 
• JSP UI 
• http://www.konakart.com/product/features/shopping-experience 
• Apache Solr search 
• FedEx UPS and USPS shipping modules, dozen of 
payment modules 
• Demo: http://www.konakart.com/konakart/ 
• Some of the core libraries and middleware are not open 
source!
Apache OFBiz 
• https://ofbiz.apache.org/ 
• https://cwiki.apache.org/confluence/display/ 
OFBTECH/Framework+Introduction+Videos+a 
nd+Diagrams 
• https://cwiki.apache.org/confluence/downloa 
d/attachments/7045155/01MainDiagram.pdf? 
version=1&modificationDate=1267053493000 
&api=v2
Broadleaf 
• http://www.broadleafcommerce.org/ 
• Spring framework: provides dependency injection, 
modularization framework. Also supports security, MVC UI, 
etc. 
• UI: earlier versions GWT, newer version Spring MVC 
• Hibernate ORM layer, Oracle, MySQL, PostgreSQL, SQL 
Server are supported 
• Thymeleaf UI templating engine, integrated with Spring 
MVC 
• Apache Solr based search 
• Spring enabled REST Service endpoints 
• Demo site: http://demo.broadleafcommerce.org/
Broadleaf 
• Source codes: 
– The framework itself: 
• https://github.com/BroadleafCommerce/BroadleafCommerce 
– The demo site source code: 
• https://github.com/BroadleafCommerce/DemoSite 
– Pro-Pack site source code: 
• https://github.com/MrCsabaToth/ProPackSource 
• The demo sites have the broadleaf libraries as Maven 
dependencies 
• Disadvantage: demo sites cart checkout wasn’t mobile 
compatible right out of the box
Moving into the cloud 
• Amazon AWS: IaaS offering of Amazon 
– tiny instance (small CPU 1GB memory, 8GB HDD) 
– Ubuntu Server edition OS 
– Getting cryptographic key for simple SSH login 
– Configuring firewall and security policy 
– Installing DB (MySql) and App Server (Tomcat) 
• Main hurdles: 
– App couldn’t access DB because of privileges 
– JVM memory ran out: -Xmx was 128MB by default
Webshop 
• Domain name from go.co, startup-weekend 
promotion 
• http://pro-pack.co/ 
• Also AWS credit for startup weekend 
• New: the original VM went down, and I don’t 
control the domain name, so it’s point’s to a 
wrong IP 
– Current webshop: http://54.183.117.8:8080/propack
Questions 
• Thanks for attending!

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction to Cakephp
Introduction to CakephpIntroduction to Cakephp
Introduction to Cakephp
Aditya Mooley
 
Earnings With Foss - Joebert
Earnings With Foss - JoebertEarnings With Foss - Joebert
Earnings With Foss - Joebert
soss
 

Was ist angesagt? (20)

SenchaCon 2016: The Modern Toolchain - Ross Gerbasi
SenchaCon 2016: The Modern Toolchain - Ross Gerbasi   SenchaCon 2016: The Modern Toolchain - Ross Gerbasi
SenchaCon 2016: The Modern Toolchain - Ross Gerbasi
 
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
 
Scalable Integration with JBoss Fuse
Scalable Integration with JBoss FuseScalable Integration with JBoss Fuse
Scalable Integration with JBoss Fuse
 
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško VukmanovićJavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
 
Top 12 php frameworks 2016
Top 12 php frameworks 2016Top 12 php frameworks 2016
Top 12 php frameworks 2016
 
Drupal performance optimization Best Practices
Drupal performance optimization Best PracticesDrupal performance optimization Best Practices
Drupal performance optimization Best Practices
 
Single page apps with drupal 7
Single page apps with drupal 7Single page apps with drupal 7
Single page apps with drupal 7
 
Wordpress optimization
Wordpress optimizationWordpress optimization
Wordpress optimization
 
Introdcution to Adobe CQ
Introdcution to Adobe CQIntrodcution to Adobe CQ
Introdcution to Adobe CQ
 
Integrate (Yourself) with the Apache Software Foundation - 33rd Degree 4charity
Integrate (Yourself) with the Apache Software Foundation - 33rd Degree 4charityIntegrate (Yourself) with the Apache Software Foundation - 33rd Degree 4charity
Integrate (Yourself) with the Apache Software Foundation - 33rd Degree 4charity
 
Introduction to Cakephp
Introduction to CakephpIntroduction to Cakephp
Introduction to Cakephp
 
Real-world #microservices with Apache Camel, Fabric8, and OpenShift
Real-world #microservices with Apache Camel, Fabric8, and OpenShiftReal-world #microservices with Apache Camel, Fabric8, and OpenShift
Real-world #microservices with Apache Camel, Fabric8, and OpenShift
 
Melbourne User Group OAK and MongoDB
Melbourne User Group OAK and MongoDBMelbourne User Group OAK and MongoDB
Melbourne User Group OAK and MongoDB
 
Earnings With Foss - Joebert
Earnings With Foss - JoebertEarnings With Foss - Joebert
Earnings With Foss - Joebert
 
EECI 2013 - ExpressionEngine Performance & Optimization - Laying a Solid Foun...
EECI 2013 - ExpressionEngine Performance & Optimization - Laying a Solid Foun...EECI 2013 - ExpressionEngine Performance & Optimization - Laying a Solid Foun...
EECI 2013 - ExpressionEngine Performance & Optimization - Laying a Solid Foun...
 
Speeding up your WordPress site - WordCamp Hamilton 2015
Speeding up your WordPress site - WordCamp Hamilton 2015Speeding up your WordPress site - WordCamp Hamilton 2015
Speeding up your WordPress site - WordCamp Hamilton 2015
 
Lenguajes y plataformas de desarrollo
Lenguajes y plataformas de desarrolloLenguajes y plataformas de desarrollo
Lenguajes y plataformas de desarrollo
 
EasyEngine - Command-Line tool to manage WordPress Sites on Nginx
EasyEngine - Command-Line tool to manage WordPress Sites on NginxEasyEngine - Command-Line tool to manage WordPress Sites on Nginx
EasyEngine - Command-Line tool to manage WordPress Sites on Nginx
 
Front-end build tools - Webpack
Front-end build tools - WebpackFront-end build tools - Webpack
Front-end build tools - Webpack
 
Microsoft/Zend Webcast on Cloud Computing
Microsoft/Zend Webcast on Cloud ComputingMicrosoft/Zend Webcast on Cloud Computing
Microsoft/Zend Webcast on Cloud Computing
 

Andere mochten auch

Shootout! template engines on the jvm
Shootout! template engines on the jvmShootout! template engines on the jvm
Shootout! template engines on the jvm
NLJUG
 

Andere mochten auch (20)

Online Shopping Website Project with Java & Primefaces
Online Shopping Website Project with Java & PrimefacesOnline Shopping Website Project with Java & Primefaces
Online Shopping Website Project with Java & Primefaces
 
Online Shopping Full Project Presentation (20 slides)
Online Shopping Full Project Presentation (20 slides)Online Shopping Full Project Presentation (20 slides)
Online Shopping Full Project Presentation (20 slides)
 
Temparate Broadleaf Deciduous Forest
Temparate Broadleaf Deciduous ForestTemparate Broadleaf Deciduous Forest
Temparate Broadleaf Deciduous Forest
 
Open Admin
Open AdminOpen Admin
Open Admin
 
Dynamically Generate a CRUD Admin Panel with Java Annotations
Dynamically Generate a CRUD Admin Panel with Java AnnotationsDynamically Generate a CRUD Admin Panel with Java Annotations
Dynamically Generate a CRUD Admin Panel with Java Annotations
 
JUG Nantes - Telosys Tools - Avril 2014
JUG Nantes - Telosys Tools - Avril 2014 JUG Nantes - Telosys Tools - Avril 2014
JUG Nantes - Telosys Tools - Avril 2014
 
Shootout! template engines on the jvm
Shootout! template engines on the jvmShootout! template engines on the jvm
Shootout! template engines on the jvm
 
GUJavaSC - Combinando AngularJS com Java EE
GUJavaSC - Combinando AngularJS com Java EEGUJavaSC - Combinando AngularJS com Java EE
GUJavaSC - Combinando AngularJS com Java EE
 
QCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EEQCon 2015 - Combinando AngularJS com Java EE
QCon 2015 - Combinando AngularJS com Java EE
 
E-commerce Project Development
E-commerce Project DevelopmentE-commerce Project Development
E-commerce Project Development
 
How Global Trends are Shaping the Retail Technology of the Future
How Global Trends are Shaping the Retail Technology of the FutureHow Global Trends are Shaping the Retail Technology of the Future
How Global Trends are Shaping the Retail Technology of the Future
 
Testdrive AngularJS with Spring 4
Testdrive AngularJS with Spring 4Testdrive AngularJS with Spring 4
Testdrive AngularJS with Spring 4
 
E commerce ( system analysis ) chapter 4
E commerce ( system analysis ) chapter 4E commerce ( system analysis ) chapter 4
E commerce ( system analysis ) chapter 4
 
INTERSPORT e-Commerce with Divante
INTERSPORT e-Commerce with DivanteINTERSPORT e-Commerce with Divante
INTERSPORT e-Commerce with Divante
 
E-Commerce Technology
E-Commerce TechnologyE-Commerce Technology
E-Commerce Technology
 
Magento implementation - by Divante.co
Magento implementation - by Divante.coMagento implementation - by Divante.co
Magento implementation - by Divante.co
 
E-Commerce Case Studies
E-Commerce Case StudiesE-Commerce Case Studies
E-Commerce Case Studies
 
Caso de estudio - Optimizacion de Google Adwords
Caso de estudio - Optimizacion de Google AdwordsCaso de estudio - Optimizacion de Google Adwords
Caso de estudio - Optimizacion de Google Adwords
 
Desarrollo de extensión en Magento
Desarrollo de extensión en MagentoDesarrollo de extensión en Magento
Desarrollo de extensión en Magento
 
B2B eCommerce, estado, desafíos y oportunidades
B2B eCommerce, estado, desafíos y oportunidadesB2B eCommerce, estado, desafíos y oportunidades
B2B eCommerce, estado, desafíos y oportunidades
 

Ähnlich wie Setting up a free open source java e-commerce website

01 overview-and-setup
01 overview-and-setup01 overview-and-setup
01 overview-and-setup
snopteck
 
WSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected Business
WSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected BusinessWSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected Business
WSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected Business
WSO2
 

Ähnlich wie Setting up a free open source java e-commerce website (20)

Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014
 
Java EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUGJava EE 6 & GlassFish = Less Code + More Power at CEJUG
Java EE 6 & GlassFish = Less Code + More Power at CEJUG
 
01 overview-and-setup
01 overview-and-setup01 overview-and-setup
01 overview-and-setup
 
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnition
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnitionJava EE 6 & GlassFish = Less Code + More Power @ DevIgnition
Java EE 6 & GlassFish = Less Code + More Power @ DevIgnition
 
Java EE 6 = Less Code + More Power
Java EE 6 = Less Code + More PowerJava EE 6 = Less Code + More Power
Java EE 6 = Less Code + More Power
 
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3 Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
 
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ JAX London ...
 
01 java intro
01 java intro01 java intro
01 java intro
 
Java EE 6 & GlassFish v3: Paving path for the future
Java EE 6 & GlassFish v3: Paving path for the futureJava EE 6 & GlassFish v3: Paving path for the future
Java EE 6 & GlassFish v3: Paving path for the future
 
Advance java1.1
Advance java1.1Advance java1.1
Advance java1.1
 
Basic method for Java EE Web Profile
Basic method for Java EE Web ProfileBasic method for Java EE Web Profile
Basic method for Java EE Web Profile
 
JSF2
JSF2JSF2
JSF2
 
Java platform
Java platformJava platform
Java platform
 
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
 
The Evolution of Java
The Evolution of JavaThe Evolution of Java
The Evolution of Java
 
Jsp Comparison
 Jsp Comparison Jsp Comparison
Jsp Comparison
 
WebSockets in Enterprise Applications
WebSockets in Enterprise ApplicationsWebSockets in Enterprise Applications
WebSockets in Enterprise Applications
 
WSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected Business
WSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected BusinessWSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected Business
WSO2Con Asia 2014 - WSO2 AppDev Platform for the Connected Business
 
WSO2 AppDev platform
WSO2 AppDev platformWSO2 AppDev platform
WSO2 AppDev platform
 
OSGi enRoute Unveiled - P Kriens
OSGi enRoute Unveiled - P KriensOSGi enRoute Unveiled - P Kriens
OSGi enRoute Unveiled - P Kriens
 

Mehr von Csaba Toth

Hadoop and Mapreduce for .NET User Group
Hadoop and Mapreduce for .NET User GroupHadoop and Mapreduce for .NET User Group
Hadoop and Mapreduce for .NET User Group
Csaba Toth
 

Mehr von Csaba Toth (18)

Git, GitHub gh-pages and static websites
Git, GitHub gh-pages and static websitesGit, GitHub gh-pages and static websites
Git, GitHub gh-pages and static websites
 
Eclipse RCP Demo
Eclipse RCP DemoEclipse RCP Demo
Eclipse RCP Demo
 
The Health of Networks
The Health of NetworksThe Health of Networks
The Health of Networks
 
Introduction to Google BigQuery
Introduction to Google BigQueryIntroduction to Google BigQuery
Introduction to Google BigQuery
 
Column Stores and Google BigQuery
Column Stores and Google BigQueryColumn Stores and Google BigQuery
Column Stores and Google BigQuery
 
Windows 10 preview
Windows 10 previewWindows 10 preview
Windows 10 preview
 
Developing Multi Platform Games using PlayN and TriplePlay Framework
Developing Multi Platform Games using PlayN and TriplePlay FrameworkDeveloping Multi Platform Games using PlayN and TriplePlay Framework
Developing Multi Platform Games using PlayN and TriplePlay Framework
 
Trends and future of java
Trends and future of javaTrends and future of java
Trends and future of java
 
Google Compute Engine
Google Compute EngineGoogle Compute Engine
Google Compute Engine
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
CCJUG inaugural meeting and Adopt a JSR
CCJUG inaugural meeting and Adopt a JSRCCJUG inaugural meeting and Adopt a JSR
CCJUG inaugural meeting and Adopt a JSR
 
Google Cloud Platform, Compute Engine, and App Engine
Google Cloud Platform, Compute Engine, and App EngineGoogle Cloud Platform, Compute Engine, and App Engine
Google Cloud Platform, Compute Engine, and App Engine
 
Hive and Pig for .NET User Group
Hive and Pig for .NET User GroupHive and Pig for .NET User Group
Hive and Pig for .NET User Group
 
Hadoop and Mapreduce for .NET User Group
Hadoop and Mapreduce for .NET User GroupHadoop and Mapreduce for .NET User Group
Hadoop and Mapreduce for .NET User Group
 
Introduction to Hadoop and MapReduce
Introduction to Hadoop and MapReduceIntroduction to Hadoop and MapReduce
Introduction to Hadoop and MapReduce
 
Introduction into windows 8 application development
Introduction into windows 8 application developmentIntroduction into windows 8 application development
Introduction into windows 8 application development
 
Ups and downs of enterprise Java app in a research setting
Ups and downs of enterprise Java app in a research settingUps and downs of enterprise Java app in a research setting
Ups and downs of enterprise Java app in a research setting
 
Adopt a JSR NJUG edition
Adopt a JSR NJUG editionAdopt a JSR NJUG edition
Adopt a JSR NJUG edition
 

Kürzlich hochgeladen

CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 

Kürzlich hochgeladen (20)

Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 

Setting up a free open source java e-commerce website

  • 1. Setting up a free Java e-commerce webshop (including cloud deployment) For GDG Fresno On 10/10/2014, Bitwise Industries, Presented by Csaba Toth
  • 2. Background • Startup Weekend Fresno • Event starts: Friday 5:30 PM, Sept. 5, 2014 • Event ends: Sunday 9:30 PM, Sept. 7, 2014 • Clock started sometimes around 10 PM on Friday, I joined team Pro-Pack, a subscription based dietary supplement company • Clock effectively ended on 6 PM Sunday (final product pitch)
  • 3. E-commerce websites • Saturday morning: searching for existing solutions – Java Pet Store Demo – JadaSite http://www.jadasite.com/ – KonaKart http://www.konakart.com/ – Apache OFBiz https://ofbiz.apache.org/ – Broadleaf http://www.broadleafcommerce.org/ – …
  • 4. Java Pet Store Demo • Originally was an example for Java J2EE • Can be beneficial to study the source • Has payment module stub • Has shipping module stub • Demonstrates pure Java EE (no Spring Framework)
  • 5. Java Enterprise Edition Platform • Extends the Java Standard Edition Platform – ORM (Object Relationship Mapping) in the form of JPA (Java Persistency API) – Distributed and multi-tier architectures – EJB support (Enterprise Java Beans) – JMS (Java Messaging Services) – CDI: Contexts and Dependency Injection – JSF: Java Server Faces for front-end UI – Web Services • Modularity • Many application servers which can host JEE apps
  • 6. Java Enterprise Edition Platform Specification Java EE 6[6] Java EE 7[3] Servlet 3.0 3.1 JavaServer Pages (JSP) 2.2 2.3 Unified Expression Language (EL) 2.2 3.0 Debugging Support for Other Languages (JSR-45) 1.0 1.0 JavaServer Pages Standard Tag Library (JSTL) 1.2 1.2 JavaServer Faces (JSF) 2.0 2.2 Java API for RESTful Web Services (JAX-RS) 1.1 2.0 Java API for WebSocket (WebSocket) n/a 1.0 Java API for JSON Processing (JSON-P) n/a 1.0 Common Annotations for the Java Platform (JSR-250) 1.1 1.2 Enterprise JavaBeans (EJB) 3.1 Lite 3.2 Lite Java Transaction API (JTA) 1.1 1.2 Java Persistence API (JPA) 2.0 2.1 Bean Validation 1.0 1.1 Managed Beans 1.0 1.0 Interceptors 1.1 1.2 Contexts and Dependency Injection for the Java EE Platform 1.0 1.1 Dependency Injection for Java 1.0 1.0
  • 9. Three-tier/layer Architecture • Three-tier – Data – Services / Business logic – User Interface • For data access: ORM • For modular architecture and SOA: Dependency Injection • UI layer: often MVC technology, templating engines
  • 10. Architecture UI client side UI server side (MVC controllers and models) EJBs Service Oriented Architecture ORM: JPA, Hibernate, iBatis, etc. DB DAO CDI config Configuration UI layer Services / Middle / Business layer Data access layer JDBC Data-base Backing Beans, DTOs
  • 11. Common properties • Use of Java EE • Maven: de-facto standard nowadays (Gradle is coming up though) – Declarative make/build system – Suggest best-practice directory hierarchy (see later) – Testing – Deployment – Documentation generation – … everything!
  • 12. Java Pet Store Demo • https://github.com/stephanrauh/agoncal-petstore- JSE7-ajax – Technologies : BabbageFaces, PrimeFaces 5+, Bootstrap, Angular JS, Java EE 6 • https://github.com/agoncal/agoncal-application- petstore-ee6 – JSF front-end, also Java EE 6 • Application Servers : GlassFish 3.x, JBoss 7.x, TomEE 1.x
  • 13. JadaSite • http://www.jadasite.com/ • http://www.jadasite.com/jada/web/fe/jadasite/English /content/Documentation • http://www.jadasite.com/jada/web/fe/jadasite/English /content/Features • Can be deployed on any J2EE application servers including Apache Tomcat, Sun GlassFish, BEA Weblogic, IBM Websphere, etc. • Compatible with MySQL, SQLServer, Oracle database server, etc. • Template based design, with template editor
  • 14. KonaKart • http://www.konakart.com/ • All functionality is available through a set of APIs (POJO, JSON, SOAP, RMI, JavaScript) • JSP UI • http://www.konakart.com/product/features/shopping-experience • Apache Solr search • FedEx UPS and USPS shipping modules, dozen of payment modules • Demo: http://www.konakart.com/konakart/ • Some of the core libraries and middleware are not open source!
  • 15. Apache OFBiz • https://ofbiz.apache.org/ • https://cwiki.apache.org/confluence/display/ OFBTECH/Framework+Introduction+Videos+a nd+Diagrams • https://cwiki.apache.org/confluence/downloa d/attachments/7045155/01MainDiagram.pdf? version=1&modificationDate=1267053493000 &api=v2
  • 16. Broadleaf • http://www.broadleafcommerce.org/ • Spring framework: provides dependency injection, modularization framework. Also supports security, MVC UI, etc. • UI: earlier versions GWT, newer version Spring MVC • Hibernate ORM layer, Oracle, MySQL, PostgreSQL, SQL Server are supported • Thymeleaf UI templating engine, integrated with Spring MVC • Apache Solr based search • Spring enabled REST Service endpoints • Demo site: http://demo.broadleafcommerce.org/
  • 17. Broadleaf • Source codes: – The framework itself: • https://github.com/BroadleafCommerce/BroadleafCommerce – The demo site source code: • https://github.com/BroadleafCommerce/DemoSite – Pro-Pack site source code: • https://github.com/MrCsabaToth/ProPackSource • The demo sites have the broadleaf libraries as Maven dependencies • Disadvantage: demo sites cart checkout wasn’t mobile compatible right out of the box
  • 18. Moving into the cloud • Amazon AWS: IaaS offering of Amazon – tiny instance (small CPU 1GB memory, 8GB HDD) – Ubuntu Server edition OS – Getting cryptographic key for simple SSH login – Configuring firewall and security policy – Installing DB (MySql) and App Server (Tomcat) • Main hurdles: – App couldn’t access DB because of privileges – JVM memory ran out: -Xmx was 128MB by default
  • 19. Webshop • Domain name from go.co, startup-weekend promotion • http://pro-pack.co/ • Also AWS credit for startup weekend • New: the original VM went down, and I don’t control the domain name, so it’s point’s to a wrong IP – Current webshop: http://54.183.117.8:8080/propack
  • 20. Questions • Thanks for attending!