GithubHelp home page GithubHelp logo

meetkazuki / quickcredit Goto Github PK

View Code? Open in Web Editor NEW
31.0 3.0 20.0 4.77 MB

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

License: MIT License

CSS 12.96% HTML 47.42% JavaScript 30.66% API Blueprint 8.96%

quickcredit's Introduction

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🙏

quickcredit's People

Contributors

meetkazuki avatar

Stargazers

Sudeep Malipeddi avatar  avatar Prashant Jadhav avatar  avatar  avatar Shenge01 avatar  avatar Daniel Njoku avatar  avatar Mark avatar  avatar  avatar Sahir Nadeem avatar  avatar DelanoHolanda avatar Dave Velasco avatar Oguchi Wilson avatar  avatar Villads Claes avatar Alimi Kehinde Morufudeen avatar  avatar Ade avatar Damith Rushika Kothalawala avatar Bami Ogunfemi avatar Alex avatar Ramana Kannathasan  avatar Oluwafemi avatar Anifowose Habeeb Tobi avatar  avatar Emeka Ofe  avatar  avatar

Watchers

James Cloos avatar  avatar Daniel Njoku avatar

quickcredit's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.