hi, I'm Muhammad Avicena. In this repo, I build The Financial Tracker application implemented role-based access using Node.js, Express.js, OpenAPI specification, Jest and Swagger. It's designed to help users manage and track their transfer request.
I am committed to staying up-to-date with industry trends and using the latest tools to develop innovative solutions that surpass expectations. Interested to have collaboration ? Find me on:
- Node.js & Express.js
- OpenAPI Spec
- Jest
- Swagger UI
- Auth
- Login (JWT Auth) -> return a token for authorization
- Register
- Transfer
- Create a transfer -> require user authentication
- Get list of all transfer -> require user authentication
- Get transfer by ID -> require user authentication
- Update transfer status -> require approver/admin role
- History
- Get history transfer by querry -> require admin role
- Delete history transfer -> require admin role
- User
- Get list of all user -> require admin role
Available Account :
{
"username": "avicena.dev",
"password": "avicena2023"
"role": "admin"
}
{
"username": "avicena.user",
"password": "avicena2023"
"role": "maker"
}
Back-end endpoint: https://transfer-api.avicena.dev
Name | HTTP Method | Endpoint | Requirements |
---|---|---|---|
Login User | POST |
/api/v1/auth/login | Request Body: username: string, password: string |
Register User | POST |
/api/v1/auth/register | Request Body: username: string, password: string, role: string |
List All User | GET |
/api/v1/users | |
List All Transfer | GET |
/api/v1/transfers | |
List Transfer by ID | GET |
/api/v1/transfer/:id | Request Params: id: number |
Create Transfer | POST |
/api/v1/transfer | Request Body: bank: string, amount: number, toUser: string, desc: string |
Update Transfer Status by ID | PATCH |
/api/v1/transfer/:id | Request Body: status: string |
Find History Transfer by querry | GET |
/api/v1/transfer | Request Body: startDate: string, endDate: string, status: string, status: string -> could find by multiple status |
Delete Transfer by ID | DELETE |
/api/v1/transfer/:id | Request Params: id: number |
The project has been successfully deployed using Railway. You can access the production version of the website by following this link: https://transfer-api.avicena.dev.
Feel free to explore the website and try out the different features. I appreciate any feedback and suggestions to further improve the user experience.