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 admin@admin.comadmin Admin access uchiha.obito@akatsuki.orguser User access
- User (client) can sign up.
- User (client) can login.
- User (client) can request for only one loan at a time.
- User (client) can view loan repayment history, to keep track of his/her liability or responsibilities.
- Admin can mark a client as verified, after confirming his/her home and work address.
- Admin can view a specific loan application.
- Admin can approve or reject a client’s loan application.
- Admin can post loan repayment transaction in favour of a client.
- Admin can view all loan applications.
- Admin can view all current loans (not fully repaid).
- Admin can view all repaid loans.
- User can reset password.
- Integrate real time email notification upon approval or rejection of a loan request.
Ensure you have the following installed on your local machine:
-
Make sure you have
nodejs,postgresinstalled. -
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
psqlcreatedb -h localhost -p 5432 -U postgres quickdev
-
Create/configure
.envenvironment with your credentials. A sample.env.examplefile has been provided to get you started. Make a duplicate of.env.exampleand rename to.env, then configure your credentials. -
Run
npm run start:devto start the server and watch for changes
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 testperforms a single full test suite run, including code coverage reporting.
All API requests are made by sending a secure HTTPS request using one of the following methods, depending on the action being taken:
POSTCreate a resourceGETGet a resource or list of resourcesPATCHUpdate a resource
For POST and PATCH requests, the body of your request may include a JSON payload.
Each response will be returned with one of the following HTTP status codes:
200OKThe request was successful400Bad RequestThere was a problem with the request (security, malformed)401UnauthorizedThe supplied API credentials are invalid403ForbiddenThe credentials provided do not have permissions to access the requested resource404Not FoundAn attempt was made to access a resource that does not exist in the API500Server ErrorAn error on the server occurred
| URI | HTTP Method | Description |
|---|---|---|
/api/v1/auth/signup |
POST |
Create an account |
/api/v1/auth/signin |
POST |
Log-in to account |
| 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 |
- Design for Developers by Sarah Drasner
- Github Sign In/Sign Up page
- A quick guide to styling buttons using CSS by Ashwini Sheshagiri
- Button Hover Effects by Dave Conner
- CSS Flexbox by CSSTricks
- w3Schools
- Building a Simple API with NodeJS & Express by Olawale Aladeusi🙌
- Node-postgres Docs
The QuickCredit API is open-sourced software licensed under the MIT license.
If for some reason you find this repo useful, please give me a star🙏