Skip to content

EazyPocket is a mobile lending app that requires wallet functionality. This is needed as borrowers need a wallet to receive the loans they have been granted and also send the money for repayments.

Notifications You must be signed in to change notification settings

ChuloWay/EazyPocket

Repository files navigation

Welcome to EazyPocket A Backend Project!

Introduction

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.

Project Overview

Features

  1. Account Creation

    • Users can create an account.
  2. Funding

    • Users can fund their wallet accounts.
  3. Funds Transfer

    • Users can transfer funds to another user's wallet.
  4. Withdrawal

    • Users can withdraw funds from their own wallet.

Implementation Details

The project is implemented using NodeJS, TypeScript, and KnexJS ORM for database interactions. The chosen database is MySQL.

Entity Relation Diagram

ERD Diagram

Getting Started

Prerequisites

Ensure the following packages are installed locally:

  1. MySQL
  2. Node (LTS Version)
  3. NPM
  4. NestJS CLI: npm install @nestcli -g

Setup Steps

  1. Clone the repo

    git clone https:/ChuloWay/EazyPocket
  2. 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.

  3. Run migration:

    npm run migrate:latest
  4. Start your server:

    npm run start:dev

API Documentation

Explore the API documentation at - API Postman Documentations.

Testing

Unit Testing

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.

User Service And Controller

Run the following command to test the User Service:

npx jest --testPathPattern=users.service.spec.ts
npx jest --testPathPattern=users.controller.spec.ts

Auth Service And Controller

Run the following command to test the Auth Functionalities:

npx jest --testPathPattern=auth.service.spec.ts
npx jest --testPathPattern=auth.controller.spec.ts

Wallet Service And Controller

Run the following command to test the Wallet Functionalities:

npx jest --testPathPattern=wallet.service.spec.ts
npx jest --testPathPattern=wallet.controller.spec.ts

License

This project is licensed under the MIT License.

Acknowledgements

Special thanks to:

  • NestJS
  • TypeScript
  • MySQL
  • Knex ORM
  • JSON Web Tokens
  • PostMan

Conclusion

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.

About

EazyPocket is a mobile lending app that requires wallet functionality. This is needed as borrowers need a wallet to receive the loans they have been granted and also send the money for repayments.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published