Skip to content

An online lending platform that provides short term soft loans to individuals.

License

Notifications You must be signed in to change notification settings

meetKazuki/QuickCredit

Repository files navigation

Quick Credit

Build Status Coverage Status Maintainability Test Coverage License: MIT GitHub issues

Project Overview

Quick Credit is an online lending platform that provides short term soft loans to individuals. It seeks to solve problems of financial inclusion as a way to alleviate poverty and empower low income earners.

Demo Users
Email Address Password Access
[email protected] admin Admin access
[email protected] user User access

Features

  1. User (client) can sign up.
  2. User (client) can login.
  3. User (client) can request for only one loan at a time.
  4. User (client) can view loan repayment history, to keep track of his/her liability or responsibilities.
  5. Admin can mark a client as verified, after confirming his/her home and work address.
  6. Admin can view a specific loan application.
  7. Admin can approve or reject a client’s loan application.
  8. Admin can post loan repayment transaction in favour of a client.
  9. Admin can view all loan applications.
  10. Admin can view all current loans (not fully repaid).
  11. Admin can view all repaid loans.

Optional Features

  1. User can reset password.
  2. Integrate real time email notification upon approval or rejection of a loan request.

Project Pipeline

Technologies Used

Getting Started

Prerequisites

Ensure you have the following installed on your local machine:

Installing/Run locally

  • Make sure you have nodejs, postgres installed.

  • Clone or fork repo🤷‍♂

      - git clone https://github.com/meetKazuki/QuickCredit.git
      - cd QuickCredit
      - npm install
  • Create a PostgreSQL database by running the command below in psql

      createdb -h localhost -p 5432 -U postgres quickdev
  • Create/configure .env environment with your credentials. A sample .env.example file has been provided to get you started. Make a duplicate of .env.example and rename to .env, then configure your credentials.

  • Run npm run start:dev to start the server and watch for changes

Testing

Test specs are implemented using mocha & chai.

  • To test or consume the API locally, you can make use of Postman to simulate a front-end client.

  • If you want to take the step below, first create a PostgreSQL database by running the command below in psql.

     createdb -h localhost -p 5432 -U postgres quicktest
  • There is also a test script that you can fire up by running npm test. npm test performs a single full test suite run, including code coverage reporting.

HTTP Requests

All API requests are made by sending a secure HTTPS request using one of the following methods, depending on the action being taken:

  • POST Create a resource
  • GET Get a resource or list of resources
  • PATCH Update a resource

For POST and PATCH requests, the body of your request may include a JSON payload.

HTTP Response Codes

Each response will be returned with one of the following HTTP status codes:

  • 200 OK The request was successful
  • 400 Bad Request There was a problem with the request (security, malformed)
  • 401 Unauthorized The supplied API credentials are invalid
  • 403 Forbidden The credentials provided do not have permissions to access the requested resource
  • 404 Not Found An attempt was made to access a resource that does not exist in the API
  • 500 Server Error An error on the server occurred

API ENDPOINTS

Authentication

URI HTTP Method Description
/api/v1/auth/signup POST Create an account
/api/v1/auth/signin POST Log-in to account

API Routes

URI HTTP Method Description
/api/v1/users GET Fetch all Users
/api/v1/users/{email} GET Fetch a single user by email
/api/v1/user/loans GET Fetch all loans by a user
/api/v1/loans/ GET Fetch all loans
/api/v1/loans/{id} GET Fetch a single loan by id
/api/v1/loans?status=approved&repaid=false GET Fetch all loans that are not fully repaid
/api/v1/loans?status=approved&repaid=true GET Fetch all loans that are fully repaid
/api/v1/loans/{id}/repayments GET Fetch all repayments for a loan
/api/v1/loans POST Create a loan request
/api/v1/loans/{id}/repayment POST Create a loan repayment record
/api/v1/loans/{id} PATCH Update a loan record status
/api/v1/users/{email}/verify PATCH Update a loan user's status

Inspiration/Resources

License

The QuickCredit API is open-sourced software licensed under the MIT license.

Misc😏

If for some reason you find this repo useful, please give me a star🙏

About

An online lending platform that provides short term soft loans to individuals.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published