This is going to be a series of posts in which I will try to demonstrate how to build a complex modular Spring web application. We will use progressive enhancement to slowly improve and build this application. So what are we going to build? OK here is a small set of requirement we will try to cater :
Requirements
- Sign in user
 - Sign out user
 - Create a lead
 - Edit lead
 - List lead
 - Copy lead
 - View History of lead changes
 - Send mails to these leads as part of some camapign
 - Delete lead
 
Some non functional requirements I will look into are:
- Modular application module - so that it should seamlessly include a new module. Lets say tomorrow we want to include an opportunity module it should work by dropping in a jar with views, navigation, menu items, context menu etc - just with server restart.
 - Must be able to support NoSQL stores with minimal changes.
 
I have generally selected the following as my tool and technologies:
- Spring Framework 3.1.2 - core framework
 - Spring DATA - For data access
 - Thymeleaf for templates - sorry I will not use JSF 2 and rich UI frameworks like Primefaces, Richfaces etc. They are awesome, but I would love to have more control and flexibility with my UI. Also JSF 2 even with nicities and improvements has lot to learn.
 - Spring Web flow 2.3.x ---- will try to implement if does not hamper my modular requirements
 - Spring Security
 - Spring Integration
 - Spring Social
 - Tomcat 7 - Server
 - Spring Source Toolsuite --- IDE
 - Maven - Build tool
 
So far so good, we will add or update things as per feedback and if required.
The project will be available on some Google code repository soon. I will tag it as I go along.
Comments
Post a Comment