First Step for Application Development – Shop Smart

Shop Smart – Basic Layout

If you are here, then I am sure that you know about the Shop Smart web application, if not then please visit Shop Smart web application. The first step for application development is to finalize the first phase of requirements. A minimal requirement so that at least we can start with something. We will start with the subset of the requirements mentioned here.

To give you a feel of the basic layout, here is the wire frame.
First Step for Application Development

Few Components of the web application

We need to understand the various components in the application, let us mention just three of them for now.

Authentication and Authorization module
  • This component will authenticate a user of the application given user name and password.
  • As a part of the authentication and authorization process, it will create an authenticated Principal object, populate it with various authorities (roles) based on which the user will be able to perform various actions on the application.
  • It will choose the authentication and authorization sources based on some configuration to facilitate features like Active Directory based authentication, SAML based authentication, Database authentication, File based authentication etc.
  • We are trying to make this module flexible enough so that who so ever is using this module can use the authentication provider of their choice.
Customer Profile

Once the above module is developed, then we need to have a customer management module which offers the following feature:

  • A customer can update his contact address or billing address or both.
  • A customer can change password
  • A customer can raise complaints
  • A customer can check history of orders
  • A customer can update his payment method and details.
  • A customer can modify / cancel an existing order (if allowed)
Shopping Cart

Once the above two modules are developed the customer should be able to add a shopping cart which will have the following features:

  • Select items from different categories and add it to the cart
  • Place an order successfully.
  • The cart should have features like dynamic price updates on item addition and deletion
  • The cart should have provisions to accept discount coupons.
  • The items in the cart should be temporarily cached till the user either discards the cart or places order or a configured time out is reached for an order.

Our prime focus is to make this application from an SPI perspective, which means that everything can be done in Service Provider’s way. We will try to make everything API based, such that anyone can choose to use one of our modules and plug in to their own application.

Two things are needed here, a basic application set up and a database set up.

Github repository

The complete project will be updated on github every time we make a change in the source code. Please find the link below:
Shop Smart – Github


Here we just defined a minimal layout of the Shop Smart web application and defined the authentication & authorization module, customer module and shopping cart module in more detail. In the next post we will try to develop SQL scripts and write basic code to facilitate the login module. As a part of that, we will integrate Spring, Hibernate, MySQL, JUnit, SLFJ logger and Spring Security.

Don’t forget to subscribe to TechieMe to get updates on latest posts.