Individual Contributions Aras Tasci Milestone 3 - bounswe/bounswe2024group6 GitHub Wiki
Responsibilities
As a member of the backend team, my main responsibilities were to ensure seamless communication between the "quiz" part of the backend and the frontend. I also took responsibility for the backend related managemental issues, such as the app's deployment and maintenance and provided creative solutions for urgent problems to ensure continuous development. I was quick to respond to the requests of our web / mobile teams and always kept in touch with them, making sure our development process was advancing. I worked closely with the frontend team to ensure smooth integration of APIs and resolved issues promptly.
I also contributed to project management through efficient backend deployments (although they didn't have their respective issues). In the previous milestone, I provided various auxiliary tools for backend deployment, such as a shell script for the team to use to deploy the backend with ease. For this milestone, to ensure we get the needed computational power (as the other machine kept running out of memory because of its low RAM (it was just 1 GiB)), we switched the backend from the t1 micro instance in AWS EC2 to a more powerful and and affordable instance in DigitalOcean with Oguz. From there on, I managed the deployment process as it was before - I was the go-to guy in any backend-related problem and took responsibility for handling all problems on-the-go.
Main Contributions
Code-Related Significant Issues
Below are the issues I were assigned to, in tabular format. You can see I was very versatile in the backend, touching all aspects of the project, from quizzes to comments, from implementing activity streams for every activity we have in the app to implementing new features such as bookmarking words:
Issue Title | Link | Action | Time Taken |
---|---|---|---|
Backend: Implement Administrator Functionalities | #748 | Assigned | 2 hours |
Backend: Swagger Documentation | #749 | Assigned | 1.5 hours |
Backend: Cancelling Quiz Attempts | #758 | Assigned | 1 hour |
Backend: Finalizing Guest Quiz Requirements | #759 | Assigned | 1.5 hours |
Backend: Implement Bookmarking Words Endpoints | #762 | Assigned | 1 hour |
Backend: Automatically Create Quizzes from Incorrectly Answered Questions | #769 | Assigned | 2 hours |
Add Missing Fields To Quiz Results | #766 | Assigned | 1.5 hours |
Backend: Admin Ban Endpoint | #786 | Assigned | 1.5 hours |
Backend: Remove Authentication for Post Details | #782 | Assigned | 1 hour |
Backend: Remove Auth in get_comments_by_id Endpoint | #812 | Assigned | 30 mins |
Backend: Additional Activity Streams | #814 | Assigned | 1.5 hours |
Backend: Check Authentication in User Post Feed | #815 | Assigned | 1 hour |
Add Unfinished Quiz Label | #817 | Assigned | 1 hour |
Backend: Implement Endpoint to Check if the Current User is Admin | #822 | Assigned | 1.5 hours |
Backend: Return isBanned Field in Profile | #880 | Assigned | 1 hour |
Backend: Profile Get Posts' Author As Well | #922 | Assigned | 1 hour |
Change Cancel Quiz Endpoint | #925 | Assigned | 1 hour |
Backend: Comments in Profile Endpoint Correctly Returning Context Related Fields | #931 | Assigned | 1.5 hours |
Backend: Unit Tests for Quiz Endpoints | #977 | Assigned | 2 hours |
Management-Related Significant Issues
Issue Title | Link | Action | Time Taken |
---|---|---|---|
Backend: Modify Main Docker-Compose File According to Backend Dev YAML File Changes | #973 | Assigned | 1 hour |
API and API Documentation Acceptance Criteria | #718 | Assigned | 2 hours |
Pull Requests
Pull Request Title | Link | Action | Time Taken |
---|---|---|---|
chore: put database content in repo | #989 | Assigned | 1 hour |
chore(backend): quiz tests | #986 | Assigned | 2 hours |
chore: modify docker-compose.yml file according to new docker configuration | #974 | Assigned | 1.5 hours |
fix: pass context to commentserializer in profile serializer | #932 | Assigned | 1.5 hours |
feat: cancel quiz given quiz_id | #927 | Assigned | 1.5 hours |
impr: give author info on profile posts | #923 | Assigned | 1 hour |
feat(backend): is_banned field on profile endpoint | #883 | Assigned | 1.5 hours |
feat(backend): automatic quiz creation from wrong questions | #878 | Assigned | 2 hours |
feat(backend): Check if the Current User is Admin | #837 | Assigned | 1.5 hours |
feat(backend): Add Unfinished Progress Label to Quiz Details | #836 | Assigned | 1 hour |
misc(backend): Requested Activity Streams | #835 | Assigned | 1.5 hours |
fix(backend): check authentication in user post feed | #816 | Assigned | 1 hour |
fix(backend): comments are viewable by anyone | #813 | Assigned | 1 hour |
feat(backend): admins now have banhammers | #787 | Assigned | 1.5 hours |
fix(backend): proper anonymous user handling in post details endpoint | #785 | Assigned | 1 hour |
impr: remove auth for post details | #784 | Assigned | 1 hour |
impr(backend): Add Missing Fields to Quiz Results | #767 | Assigned | 1.5 hours |
feat(backend): Bookmarking Words | #763 | Assigned | 1.5 hours |
feat(backend): Finalize guest-quiz requirements | #761 | Assigned | 1.5 hours |
feat(backend): implement quiz canceling | #760 | Assigned | 2 hours |
feat(backend): Implement Admin Functionalities | #757 | Assigned | 2 hours |
feat(mobile): add unit tests and remove old ones | #990 | Reviewed | - |
search unit tests | #979 | Reviewed | - |
image unit tests | #976 | Reviewed | - |
Image url returning endpoint | #964 | Reviewed | - |
Removed Authentication for Guest Users | #960 | Reviewed | - |
Frontend 819: fixed issues related to access token/guest | #840 | Reviewed | - |
Let admins delete comments of everyone (BACKEND) | #795 | Reviewed | - |
Quiz endpoints are updated with Image Uploading | #788 | Reviewed | - |
added image endpoints | #736 | Reviewed | - |
Unit Tests
Below is the list of unit tests I wrote:
- test_get_quiz: Verify if a quiz is correctly retrieved by its ID.
- test_view_quizzes: Ensure quizzes feed returns the correct data.
- test_create_quiz_success: Test the successful creation of a quiz.
- test_create_quiz_missing_title: Verify that creating a quiz without a title fails.
- test_get_question: Check if a specific question is correctly retrieved.
- test_solve_question: Test the process of solving a quiz question.
- test_submit_quiz: Validate quiz submission and result calculation.
- test_start_quiz: Verify if a quiz starts correctly and returns progress details.
- test_get_quiz_results: Ensure quiz results retrieval works as expected.
- test_like_quiz: Test liking and unliking quizzes functionality.
- test_bookmark_quiz: Check bookmarking and unbookmarking quizzes functionality.
- test_view_bookmarked_quizzes: Validate retrieval of bookmarked quizzes.
- test_view_liked_quizzes: Verify retrieval of liked quizzes.
- test_view_created_quizzes: Test if created quizzes are correctly listed.
- test_view_solved_quizzes: Check retrieval of solved quizzes.
- test_delete_quiz_unauthorized: Test unauthorized quiz deletion attempt.
- test_delete_quiz_as_staff: Verify quiz deletion as a staff user.
- test_update_quiz_unauthorized: Test unauthorized quiz update attempt.
- test_update_quiz_authorized: Verify authorized quiz update.
- test_cancel_quiz: Check cancellation of a quiz progress.
- test_cancel_quiz_id: Verify cancellation of quizzes by their ID.