All Projects β†’ meetKazuki β†’ QuickCredit

meetKazuki / QuickCredit

Licence: MIT license
An online lending platform that provides short term soft loans to individuals.

Programming Languages

HTML
75241 projects
javascript
184084 projects - #8 most used programming language
CSS
56736 projects
API Blueprint
66 projects

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πŸ™

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].