This project is a quiz app with authentication and user profiles. The API allows users to register, log in, manage profiles, take quizzes, and provides administrative functionalities.
- POST
/api/register- Registers a new user.
- Request Body:
{ "name": "user_name", "email": "user@example.com", "password": "your_password", "password_confirmation": "your_password" }
- POST
/api/verifiy- Verifies the user's email after registration.
- Request Body:
{ "code": "verification_code" }
- POST
/api/login- Logs in a registered user.
- Request Body:
{ "email": "user@example.com", "password": "your_password" }
- POST
/api/logout- Logs out the user.
- CRUD:
/api/category- Create, update, delete categories (e.g., PHP, JavaScript, Go).
- CRUD:
/api/question- Create questions linked to a category and difficulty level.
- CRUD:
/api/answer- Create answers linked to a question.
- is_correct field determines if the answer is correct (1 or 0).
- CRUD:
/api/users- Admin can manage registered users.
- GET
/api/notifactions- Admin receives notifications when a new user registers.
- POST
/api/questions- Parameters:
{ "category": "PHP", "level": "Beginner", "limit": 10 }
- Parameters:
- POST
/api/check-answers- Request Body:
{ "question_id": 1, "answer": "user_answer" }
- Request Body:
- GET
/api/levels- Retrieves user rankings based on scores.
- GET
/api/search?query={search_term}- Search users by username.
- GET
/api/profile- Retrieves user profile information.
- POST
/api/profile- Request Body:
{ "name": "new_name", "last_name": "new_last_name", "image": "profile_image_url" }
- Request Body:
- PUT
/api/userupdate- Request Body:
{ "name": "new_name", "email": "new_email@example.com" }
- Request Body:
- PATCH
/api/passwordupdate- Request Body:
{ "old_password": "current_password", "new_password": "new_password" }
- Request Body:
All endpoints except registration and login require authentication via sanctum tokens. Upon successful login, the API will return a token that should be included in the Authorization header as Bearer token_value for protected routes.
Example of an authenticated request header:
Authorization: Bearer your_token_here