IGDB is an acronym for International Game Database. This project provides a RESTful API services for users to do CRUD operations with JSON with given game data in the database. IGDB is considered as a 'Wikipedia' so that you can easily search information of everything that involves video games!
To check out the website, please go to the following link : https://igdb.myigdb.tech/
- Node.js
- Express.js
- AWS IAM - Role-based authentication for database
- AWS RDS - DBMS
- PostgreSQL - Database
- jsonwebtoken - User authentication
- Express-rate-limit - Rate limiting to REST API endpoints
- Swagger with OpenAPI 3.0.3 - API Documentation
- Make sure you have Node.js downloaded in your machine.
-
Clone the repository:
git clone https://github.com/longtv2222/IGDB.git
-
Using your favorite terminal, cd into backend folder and install necessary libraries:
npm install
-
Make sure that there is no running process on your http://localhost:8000/
-
Run the following command inside backend folder:
npm start
-
Navigate to http://localhost:8000/ and you can start using the program
-
Make sure you have Postman in your machine.
-
IGDB provides 2 options for user. If you are a paid user, you will have access to view, edit, update and delete information. If you are a free user, the content you view will be restricted to read only.
-
To sign up as a paid user, navigate to the following endpoint: http://localhost:8000/client/paid_user/signup and enter the data in body field username and password. This request is considered as a post request.
- Navigate to the following endpoint to login http://localhost:8000/client/paid_user/login and enter your username, password you just signed up previously.
- After that there will be a token generated and everytime you make a patch, post or delete request, you should have your token put in the header with the key as token and value is the value generated in the previous image. The following image demonstrates how you should do this.
- Please refer to this document for detailed information on all IGDB's endpoints.
- This project is licensed under the Apache-2.0 License - see the LICENSE file for more details.