- User authentication: SignIn and Signup
- Provide three pages - Dashboard, Expenses, and reports accessible through a navbar.
- Dashboard:
- Show total spent amount
- List last 5 transactions
- Expenses:
- List of expenses for the current user.
- Button to create a new expense.
- Must contain the following fields: DateTime, Amount, Currency, Description (optional), and a Category.
- The categories are -- Home, Food, Fuel, Shopping and Other.
- Can be created only after logging in
- Can be read only by the user who owns it.
- Can be updated or deleted by the user who owns it.
- Ability to filter the expenses by category.
- Report:
- Show total amount spent per week of the current month.
- Show total amount spent per category basis on the current month.
- The front-end must be a Single-Page-Application.
- Follow proper design guidelines and coding standards.
These are optional improvements that’ll help in boosting your submission score.
- No business logic code in client app. (It must be only on the backend-server)
- The front-end web client is a PWA (Progressive Web App).
- Hosting the front-end and back-end to a cloud or hosting provider.
- Better if the cloud provider is Google Cloud Platform.
- Using GraphQL instead of traditional REST API.
- Pagination on the list of expenses.
- Use ReactiveExtensions in client web app: (RxJs for Javascript)
- User roles -- Admin and normal users.
- A separate page for Admin listing all users (only accessible by admin users)
- Admin users can view the expenses of all the users.
- Admin users can edit or delete the expense of all users.
- : Feature implemented
- : Feature not implemented
- App Landing page
- user login page
- user register page
- Once user logged in he is redirected to dashboard which has a log of his last 5 transations
- Here use can add/edit/delete expenses also user can filter out the expenses. And to navigate to different pages he can use the burgermenu in left.
- This page displays weekly expenditure report of current month PS: user can choose currency in which he needs report.
- Login page for admin
- Once admin logged in he can see the list of all user over his dashboard
- Admin can edit/delete the expense of any user through this page
- Add expense interface for both admin and normal user
- Editing expense interface for both admin and normal user
[POST] /login
: utilized for authenticating user.[POST] /register
: utilized for registering user.[POST] /dashboard/add-expense
: utilized for adding transation by user.[GET] /dashboard/all-expenses
: utilized for accessing all transations added by user.[DELETE] /dashboard/delete/:id
: utilized to delete a particular transaction from database.[PUT] /dashboard/update/:id
: utilized for updating any transaction.[GET] /dashboard/reports
: utilized for accessing particular user report.
[POST] /admin/login
: utilized for authenticating admin user.[GET] /admin/all-users
: utilized for accessing all users via admin user.[GET] /admin/all-expenses/:id
: utilized by admin user to access all transaction of a any user.[POST] /admin/delete/:id
: utilized by admin user to delete any transaction of any user.[PUT] /admin/update/:id
: utilized by admin user to update any transaction of any user.
- Token(JWT) based authentication strategy has been used to authorize user, admin user and each request made by any user.
- FE here: https://expense-manager-nymble.netlify.app/
- BE here: https://aqueous-ridge-34051.herokuapp.com/
-
email: user1@gmail.com
-
password: 123456
-
email: user2@gmail.com
-
password: 123456
PS: please wait 1-2 second after adding expense as it takes little time to update 😅