This is a Spend Tracker Web Application. It is developed using Java, Spring JPA, Spring security, Json Web Token for security, MySQL & MongoDb for Database.
- User Registration
- User will have wallet
- On Registration digital currency will be assigned to User
- Using digital currency user can purchase any product listed on app
- User purchase history should be persisted on mongodb --> MONGODB
- Users Daily activity need to be captured (assume Login to Logout life cycle for a day)
- Product/walled/user should be persisted on mysql
- User Authentication/Authorization
- Two types of roles : System_Admin and End_User
- System_Admin
- able perform Product Lifecycle
- Able fetch Users data analytics(Top spends by user/Most product purchased etc)
- Users Listing/Disable Users
- Able to update digital currency that will be assigned to users
- Able to update specific users wallet
- Able to increase product quantity incase of out of stock
- End Users
- Register
- Login
- Able to update Profile
- Able to view wallets
- Able view all products according to category(max 5)
- Purchase Product
- deduct balance from walllet if minimum balance is not there throw proper error
- able to view order/purchase history
-> user_id (PK) -> firstname -> lastname -> username -> password -> emailid -> enabled
- register
- login
- Update profile
- fetch wallet
- show products with category(max 5)
- purchase product(wallet update,product quantity update)
- purchase history
- disable user
-> product_id (PK) , product_category_id (FK) -> product_id -> product_name -> product_category_id
- add product
- update product
- delete product
- get product
-> product_category_id (PK) -> product_category_id -> prod_category_name
- show products by category
-> user_id (FK) , wallet_id (PK) -> user_id -> wallet_id -> wallet_credit
- update wallet
- check minimum balance
- show wallet