Individual Contributions (Milestone 3) ‐ Muhammet Emin Çiftçi - bounswe/bounswe2024group11 GitHub Wiki
Member: Muhammet Emin Çiftçi, Backend
Responsibilities
- Backend Application Development
- Code Review of Other Team Members
- Backend Frontend Integration in Some Parts
Main Contributions
- As a backend team member, I implemented semantic search and semantic search related tasks such as tagging, getting semantically related forum questions and more. I have implemented an ID retrieval method that was used in these endpoints.
- As a backend team member, I implemented feed endpoint to provide users more related posts in their home page.
- As a backend team member, I implemented sorting options for users to sort their posts according to their taste.
- As a backend team member, I reviewed many implemented endpoints and methods my team members had done through our development phase. I used my locally deployed backend server to double check implemented functionalities.
- As a backend team member, I helped frontend team members to integrate in backend endpoints, especially the ones I implemented.
Code Related Significant Issues
Issue Title | Description | Issue and/or PR Link |
---|---|---|
Implement Sorting for Quizzes and Forum Questions | I implemented the sorting mechanism for both quizzes and forum questions. Sorting option is added to these endpoints: GET /forum-questions/ and GET /quizzes/ . With the implementation of sorting, users were able to sort the relevant posts by their other attributes. |
issue PR |
Change the ID Retrieval Method in Backend | Our ID retrieval method that we used for semantically linking posts was filtering the received BabelNet ID's by their language. We only got the ones with TR or EN language field. However, due to an incorrect implementation of BabelNet API, we could not get the all relevant IDs. It was fixed by removing the filter. Removing the language filter did not affect the results since the IDs are the same across different languages. Still it was an odd issue. | issue |
Unexpected Error in Tagging BabelNet IDs | While using tagging endpoint for some BabelNet IDs, an unexpected error occurred that prevented us from using these IDs. It was not fully understood why the behavior was like this, however it was resolved by using another ID for that word. There were alternatives to these kinds of words so it was possible that some IDs were somewhat non-functional. | issue |
Implement Feed Endpoint | I implemented the feed endpoint that returned users' followings' posts, interested posts, suggestions for tags, and users to follow. This endpoint enriched the feed page of users and gave them attractive posts according to their interests. | issue PR |
Implement Related Forum Questions | I implemented suggestions for forum questions that provided users with additional forum questions that were related to the currently entered one. When a user clicked on a forum question, he or she would be able to see other forum questions that were semantically linked to the firstly clicked one. | issue PR |
Management-Related Significant Issues
Issue Title | Description | Issue and/or PR Link |
---|---|---|
Leaderboard Periods - Reviewer | Arda implemented a script that reset the leaderboard scores so that weekly leaderboards could be generated. As a reviewer I tested the relevant endpoint. | issue PR |
Implement Create and Delete Endpoints for Interests - Reviewer | Ceyda implemented the interests endpoint so that users could give their interested areas to application. By using these tags, application could suggest them quizzes and forum questions. As a reviewer I tested the relevant endpoints and commented on their functionalities. | issue PR |
Sorting for Forum and Quiz on Client - Reviewer | After I implemented the sorting mechanism for forum and quiz, it also needed to be integrated to Client. Therefore, I opened this issue to follow the advancements on Client team about sorting. I also guided them how to use the adjusted endpoint. | issue |
Sorting for Forum and Quiz on Mobile - Reviewer | After I implemented the sorting mechanism for forum and quiz, it also needed to be integrated to Mobile. Therefore, I opened this issue to follow the advancements on Mobile team about sorting. However, we couldn't finish the implementation on Mobile. | issue |
Semantically Linked Forum Questions on Client - Reviewer | After I implemented the semantically linking forum questions, it also needed to be integrated to Client. In order to follow the integration processes on Client team, I opened this issue. | issue |
Semantically Linked Forum Questions on Mobile - Reviewer | After I implemented the semantically linking forum questions, it also needed to be integrated to Mobile. In order to follow the integration processes on Mobile team, I opened this issue. Unfortunately, it was not finished for the final product. | issue |
Create Demo Scenario for Final Milestone | For our final milestone demo, we needed a scenario to follow. We decided on a story and by using this story we would showcase our implemented features. By using this method, customers would be able to understand and follow the features we were going to introduce. | issue |
PRs
PR Title | Description | PR Link |
---|---|---|
Sorting Algorithm for Forum and Quiz | I implemented the sorting algorithm for forum main page and quiz main page in our application for backend. The endpoints that were effected by this addition were GET /forum-questions/ and GET /quizzes/ . Before the implementation, users were only able to see the quiz and forum pages sorted by -created_at field, meaning sorted by creation date and time. After the implementation users were able to sort the main pages of quiz and forum by newest, oldest, most popular, and most liked. |
#864 |
Feed for Application Users | I implemented the feed algorithm for home page of our users. A new endpoint named GET /feed/ was introduced after the implementation. The endpoint returned several fields related to the signed up user. It returns forum questions and quizzes according to users followings and interests. It also returns tags that could interest the user. For an attractive application that keeps the user on app, this implementation was very critical. |
#793 |
Forum Question Suggestions | I implemented suggestion on each forum questions in our application so that when a user clicks on a forum questions, he or she could keep go another forum questions inside the forum question page. This attribute is mainly about user experience. Users should experience an easy access to forum questions that attracts them. Therefore, I also gave semantically related forum questions with the currently requested one. | #770 |
Semantic Search for Everything | I implemented a semantic search algorithm that receives BabelNet id as an input and gives all the related forum questions or quizzes. There were several endpoint that used this algorithm, including GET /semantic-search-forum/ , GET /semantic-search-quiz/ , and GET /forum-questions/{id}/ . Semantically linked means that having semantically linked tags. Therefore, when a user searched for a word in our application, he or she would not only get the posts that have that tag but also get the ones related to that word. Note: This endpoint had already implemented for milestone two, however its integration was done after milestone 2, so it was added to milestone 3's milestone too. |
#696 |