Individual Contributions ‐ Mücahit Erdoğan Ünlü - bounswe/bounswe2024group11 GitHub Wiki

Mücahit Erdoğan Ünlü

Responsibilities

  • Organization of the backend team
  • Development of the backend
  • Integration of backend with frontend

Main Contributions

  1. API Implementations:
  • 1.1. Rate Quiz endpoint
  • 1.2. Take Quiz endpoint
  • 1.3. Improve Quiz model architecture
  • 1.4. Upvote-downvote for forum questions
  • 1.5. Upvote-downvote for forum answers
  1. I prepared database fixtures to populate the database
  2. Take active part in integrating backend with mobile and web

API Contributions

  1. Take Quiz Enpoint
  • link: http://127.0.0.1:8000/api/v1/take-quiz/
  • Purpose: This endpoint is used in the context of solving quiz and reviewing his answers. A user can solve a quiz, view his answers to a specific quiz, or delete his answers.
  • Authentication & Authorization: Creating an entity requires authentication. Deleting and updating an entity requires ownership of the entity. For retrieving, it is allowed for everyone.
  • Example 1: Solving a quiz bash curl -X 'POST' \ 'http://127.0.0.1:8000/api/v1/take-quiz/' \ -H 'accept: application/json' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzMzNDkzMzA4LCJpYXQiOjE3MzI4ODg1MDgsImp0aSI6IjljODc5ZWUwYjVlNTQ5MmU4ODljYjhiOTU2NjQ5ZjNiIiwidXNlcl9pZCI6MjV9.KUGD2rWZbq2q46KxeflWcm4ypbw4uB6eprSwMZTXAgM' \ -H 'Content-Type: application/json' \ -d '{ "quiz": 1, "answers": [ { "question": 1, "answer": 2, "is_hint_used": false } ]' }
  • Response: { "id": 23, "quiz": 1, "user": 21, "date": "2024-11-29T13:15:24.784764Z", "answers": [ { "id": 15, "take_quiz": 23, "question": 1, "answer": 2, "is_hint_used": false } ], "score": 80, "correct_answer_count": 8, "wrong_answer_count": 2, "empty_answer_count": 0 }
  • Example 2: Reviewing his answers bash curl -X 'GET' \ 'http://127.0.0.1:8000/api/v1/take-quiz/1/' \ -H 'accept: application/json'
  • Response: { "id": 76, "quiz": 1, "user": 26, "date": "2024-11-29T14:17:00.590024Z", "answers": [ { "id": 70, "take_quiz": 76, "question": 1, "answer": 2, "is_hint_used": false } ], "score": 0, "correct_answer_count": 0, "wrong_answer_count": 1, "empty_answer_count": 0 }

Code Related Significant Issues and PRs

Code-related significant issues and PRs
Implement rate quiz endpoint issue, PR
Close backend PRs, branches with Ozan, Ceyda, and Çiftçi issue1, issue2
Create an issue template for implementing ModelViewset, issue
Implement take quiz modelviewset issue, PR
refine quiz model and its modelviewset issue, PR
connect rating serializer to quiz serializer issue, PR
close PR1, PR2 together with Çiftçi
implement upvote and downvote for forum questions with Çiftçi issue, PR
implement upvote and downvote for forum answers issue PR
connect upvote, downvote and, bookmark to forum question response data commit
implement take quiz endpoint issue PR
close forum answer PR
prepare fixtures to populate DB for the demo issue, PR
integrate quiz feature to mobile (I am co-author of some commits) PR
integrate forum to web (even though I was a co-author, we forgot to add it) PR
Management Related Issues
Implement Semantic Search: issue
Implement Quiz Question Translate Endpoint: issue
Implement Answer Feature to Forum Questions: issue
Implement Point Assignment API for Quiz Questions: issue