A bid-based-online mock store web application capable to communicate with an Android simplified version of the application.
Description
This project aims to design and implement a bid-based online mock store that is divided into two parts. The first one being the web application and the second one being the Android application, which is a simplified version of the web application.
The requirements for the web application are the following:
- The system should provide user accounts including sign-up and login.
- The products must be classified by departments.
- The user must be able to sell a product classified in up to three departments. When registering the product, the user must include a product name, a description, a starting bid value, an image and a due date.
- The system must provide a search box with the capability of refine the search based on department. However, the default search must be executed on the entire product database.
- The searching results must be list with the product brief description, which includes the name, department/s, and current bid, and a picture.
- Once the user selects a product, the system must present a new page with the complete product description including a bigger picture.
- Once the user intent to make a bid for a product, he/she must enter the bid value, and the system must refresh and show the new highest bid for the product.
- A user can not bid on their own products or bid a lower amount than the current highest bid.
- The system must provide an administrator role with the ability to add, modify, and remove users, products, and departments.
The requirements for the Android application are the following:
- The mobile application must communicate with the backend via HTTP (JSON).
- The user must be able to log in with the same account created in the web application.
- The administrators can only use the web application.
- The system must provide a search box with the capability of refining the search based on department. However, the default search must be executed on the entire product database.
- The searching results must be a list with the product description (Name, department, and current bid) and a picture.
- Once the user selects a product, the system must present a new activity with the complete product description including a bigger picture.
- Once the user intent to make a bid for a product, he/she must enter the bid value, and the system must refresh and show the new highest bid for the product.
- A user can not bid on their own products or bid a lower amount than the current highest bid.
- Every transaction performed on the mobile application must be registered at the central database system.
Information regarding the database:
The databaseScript is the file that you should run for a newly created application and will not have any products, users, etc. Additionally, the admin needs to be added manually, after adding a regular user with the signup page you can go to the DB and change his/her role to be an administrator.
The entity–relationship model is presented below:
Page-flow information:
The page flow indicates where you can go from a specific web page and the required condition to be able to move to that page. When we referred to hidden pages in the image we refer to those JSPs that their URLs cannot be seen in the web browser search bar.
Environment variables:
CATALINA is an environment variable indicating the location of TOMCAT in the system. While the classpath variable value should have the following:
.;
%CATALINA%\lib\servlet-api.jar;
%CATALINA%\webapps\ROOT\WEB-INF\classes;
%CATALINA%\lib\mysql-connector-java-8.0.19.jar;
%CATALINA%\lib\commons-codec-1.11.jar;
%CATALINA%\lib\commons-fileupload-1.4.jar;
%CATALINA%\lib\commons-io-2.6.jar;
%CATALINA%\lib\java-json.jar;