Field of Dreams An Online Sporting Goods Marketplace Ethan Grimes Nathan Yount Chase McKelvey Quang Tran
Purpose Apply our technical skills in a real world application (specifically an online marketplace) Implement the concepts we learned over the course of the academy Expand our knowledge of the software development lifecycle Provide experience working within a team environment
Requirements & Use Cases Both Customer & Supplier Create/Sign-in to an account Edit/Delete account information Customer Supplier -Add items to cart -Upload/Edit items -Checkout -Remove Items
Tools & Technologies Spring Tool Suite / Eclipse Luna Java EE with JDK 1.6 MySQL 5.6 / JDBC JBoss 6.0 EJB 2.0 Various web-oriented languages XML, HTML/CSS/Bootstrap, Javascript/jQuery
Project Architecture n-tier architecture for client-server interaction
Why Multitier? Separation of concerns! Enables parallel development Promotes encapsulation and code reusability Allows for greater flexibility / makes it easier to maintain and implement changes Improves scalability
Other Design Patterns Model View Controller Data Access Object (DAO) Abstract Factory Data Transfer Object (DTO) Business Delegate Service Locator as a Singleton Session Façade View View Dispatcher Controller Front Controller
Controller Implemented with a Servlet Front Controller design pattern Single centralized entrance to the application Delegates tasks
Controller (cont.)
Model Implemented with POJOs and EJBs Business Delegate & Service Locator EJB layer for business processing Stateless Session Beans (SLSB)
Entity–Relationship Diagram (ERD)
View JSPs to display the information received from the servlet/controller Bootstrap for responsive design, smooth integration, and consistency across pages Javascript & jQuery for validations and additional client-side functionality AJAX to pass data as JSON for dynamic features
View (cont.)
Best Practices Try/catch/finally StringBuilder over String Coding to interface over implementation Object composition over inheritance Java naming conventions Reading from a .properties file