A fintech project designed for efficient loan management. This comprehensive README will assist you in setting up the project, understanding its structure, and exploring the API.
-
Account Creation
- Users can create an account.
-
Funding
- Users can fund their wallet accounts.
-
Funds Transfer
- Users can transfer funds to another user's wallet.
-
Withdrawal
- Users can withdraw funds from their own wallet.
The project is implemented using NodeJS, TypeScript, and KnexJS ORM for database interactions. The chosen database is MySQL.
Ensure the following packages are installed locally:
- MySQL
- Node (LTS Version)
- NPM
- NestJS CLI:
npm install @nestcli -g
-
Clone the repo
git clone https:/ChuloWay/EazyPocket
-
Create an env file:
- Duplicate the
.env.example
file in the project root. - Rename the duplicated file to
.env
. - Open the
.env
file and set your variables as shown in the example file.
cp .env.example .env
Ensure to fill in the necessary values in the
.env
file for a smooth configuration. - Duplicate the
-
Run migration:
npm run migrate:latest
-
Start your server:
npm run start:dev
Explore the API documentation at - API Postman Documentations.
Unit tests cover positive and negative test scenarios to ensure robust functionality.
Test the API endpoints using Postman. Additionally, you can run specific Jest tests for each service.
Run the following command to test the User Service:
npx jest --testPathPattern=users.service.spec.ts
npx jest --testPathPattern=users.controller.spec.ts
Run the following command to test the Auth Functionalities:
npx jest --testPathPattern=auth.service.spec.ts
npx jest --testPathPattern=auth.controller.spec.ts
Run the following command to test the Wallet Functionalities:
npx jest --testPathPattern=wallet.service.spec.ts
npx jest --testPathPattern=wallet.controller.spec.ts
This project is licensed under the MIT License.
Special thanks to:
- NestJS
- TypeScript
- MySQL
- Knex ORM
- JSON Web Tokens
- PostMan
This MVP wallet service demonstrates competence in code quality, attention to detail, and application of best practices in design and architecture. The README documentation provides comprehensive information for developers to understand the project.