# README
Quiz App Backend API Documentation
Welcome to the documentation for the Quiz App backend API. This API is built using Go (Golang) with the Gin framework and provides various endpoints for user management, quiz operations, and more.
Base URL
All API endpoints are available at the base URL:
http://localhost:8080
Endpoints
User Management
1. Login
POST /login
- Description: Authenticates a user and returns a user ID upon successful login.
- Request Body:
{ "username": "string", "password": "string" }
- Responses:
- 200 OK
{ "message": "Login successful", "user_id": "number" }
- 400 Bad Request or 401 Unauthorized
{ "error": "error message" }
- 200 OK
2. Register
POST /register
- Description: Registers a new user. If the user already exists, an appropriate message is returned.
- Request Body:
{ "username": "string", "password": "string" }
- Responses:
- 200 OK
{ "message": "User registered successfully", "user_id": "number" }
- 409 Conflict
{ "error": "error message" }
- 200 OK
3. Delete User
DELETE /delete-user/:userId
- Description: Deletes a user by their ID.
- Path Parameter:
userId
- The ID of the user to delete.
- Responses:
- 200 OK
{ "message": "User deleted successfully" }
- 400 Bad Request or 500 Internal Server Error
{ "error": "error message" }
- 200 OK
4. Get Username
GET /user/:userId/username
- Description: Retrieves the username for a given user ID.
- Path Parameter:
userId
- The ID of the user.
- Responses:
- 200 OK
{ "username": "string" }
- 404 Not Found or 500 Internal Server Error
{ "error": "error message" }
- 200 OK
Quiz Management
5. Get Quiz
GET /quiz/:id
- Description: Retrieves a specific quiz by its ID.
- Path Parameter:
id
- The ID of the quiz.
- Responses:
- 200 OK
{ "quiz": "quiz data" }
- 404 Not Found or 500 Internal Server Error
{ "error": "error message" }
- 200 OK
6. Submit Answer
POST /submit-answer
- Description: Submits an answer for a specific quiz question.
- Request Body:
{ "user_id": "number", "quiz_id": "number", "question_id": "number", "answer_id": "number" }
- Responses:
- 200 OK
{ "result": "result data" }
- 400 Bad Request or 500 Internal Server Error
{ "error": "error message" }
- 200 OK
7. Get Recent Quiz
GET /recent-quiz/:user_id
- Description: Retrieves the ID of the most recent quiz taken by a user.
- Path Parameter:
user_id
- The ID of the user.
- Responses:
- 200 OK
{ "quiz_id": "number" }
- 500 Internal Server Error
{ "error": "error message" }
- 200 OK
8. Update Recent Quiz
PUT /update-recent-quiz
- Description: Updates the most recent quiz ID for a user.
- Request Body:
{ "user_id": "number", "quiz_id": "number" }
- Responses:
- 200 OK
{ "message": "Recent quiz updated successfully" }
- 400 Bad Request or 500 Internal Server Error
{ "error": "error message" }
- 200 OK
User Cash Management
9. Get User Cash
GET /user-cash/:userId
- Description: Retrieves the cash amount for a given user ID.
- Path Parameter:
userId
- The ID of the user.
- Responses:
- 200 OK
{ "cash_amount": "number" }
- 404 Not Found or 500 Internal Server Error
{ "error": "error message" }
- 200 OK
10. Update User Cash
POST /update-user-cash
- Description: Updates the cash amount for a user.
- Request Body:
{ "user_id": "number", "cash_amount": "number" }
- Responses:
- 200 OK
{ "message": "User cash updated successfully" }
- 400 Bad Request or 500 Internal Server Error
{ "error": "error message" }
- 200 OK
Leaderboard and Badges
11. Get Leaderboard
GET /leaderboard
- Description: Retrieves the leaderboard with user scores.
- Responses:
- 200 OK
{ "leaderboard": "leaderboard data" }
- 500 Internal Server Error
{ "error": "error message" }
- 200 OK
12. Get All User Badges
GET /user/:userId/badges
- Description: Retrieves all badges for a user.
- Path Parameter:
userId
- The ID of the user.
- Responses:
- 200 OK
{ "badge_name": { "description": "string", "earned": "boolean" } }
- 500 Internal Server Error
{ "error": "error message" }
- 200 OK
13. Update User Badges
POST /update-user-badges
- Description: Updates badges for a user.
- Request Body:
{ "user_id": "number", "badge_ids": ["number"] }
- Responses:
- 200 OK
{ "message": "Badges updated successfully" }
- 400 Bad Request or 500 Internal Server Error
{ "error": "error message" }
- 200 OK
14. Get Badge Names
POST /get-badge-names
- Description: Retrieves badge names based on badge IDs.
- Request Body:
{ "badge_ids": ["number"] }
- Responses:
- 200 OK
{ "badge_names": "badge names" }
- 400 Bad Request or 500 Internal Server Error
{ "error": "error message" }
- 200 OK
Running the API
-
Clone the repository:
git clone https://github.com/your-username/quiz-app-backend.git
-
Navigate to the project directory:
cd quiz-app-backend
-
Install dependencies:
go mod tidy
-
Run the API server:
go run main.go
-
Access the API at
http://localhost:8080
.
# Packages
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author