Skip to content
Ümit Can Evleksiz edited this page Oct 25, 2024 · 13 revisions
Milestone #1

Customer Milestone 1

This is the first milestone report for the bounswe2024group11 team. It includes a summary of what we have done so far, our project plan in a detailed manner, work done by each team member, and the tools we have benefitted.

Executive Summary

Turquiz is a platform for Turkish people to improve their English via quizzes, forum and other various content. The primary goal is to create an engaging platform so that the process of learning is no more boring. Our audience is anyone with a mildly beginner level english speakers. We expect some kind of prior knowledge on english. we differ from say Duolingo in that sense. The application is supposed to be encouraging and captivating.

Status

We have specified the requirements for the project. We have provided 5 scenarios and corresponding mockups for showcasing better understanding of the project. We have provided class diagram, use case diagram, and sequence diagrams in order to have a common understanding of the implementation. We are now completed our first milestone for implementation of the project. On mobile, we can demonstrate registration, login, and forum question creation together with tagging communicating with the backend. On web, we have implemented quiz solving and ARIA W3C standard.

Planned Changes

Since we completed all of our tasks, we did not need a plan change accordingly. However, we received useful feedbacks from the customer and we are considering adding some functionalities from the customer feedback such as hints for questions, a learning platform, and determining the difficulty levels of the quizzes.

Customer Feedback and Reflections

Customer Feedback

  1. Customers suggested that there are tools which shows the difficulty level of a given English word in order to use determining the difficulty level of a quiz.
  2. They also suggested that there can be hints for quiz questions such as images or what domain does the word belong.
  3. They also recommended that users might want to use the app for only learning English words rather than participating in a quiz thereby becoming more confident before taking a quiz.
  4. They also suggested that there are tools to determine if a text is written in English and therefore we can determine if a user wants to tag his forum question in English or Turkish.

Reflections

  1. Determining the difficulty level of a given English word with a tool is a very good idea. This will enable us to develop more robust quiz difficulty level identification. However, the tools might lack a comprehensive vocabulary.
  2. Hints are really good idea to make quizzes more interactive and enjoyable. This will be added to the requirements.
  3. Providing a learning platform other than quizzes might be cumbersome. However, we can implement a simple learning platform. For example, the user selects a domain and a difficulty level, then we return a random word together with its image (if available), definition, and synonyms and antonyms.
  4. Restricting the user to only one language for tagging might not be a good idea. The user might want to tag with both languages or there are language specific words that the user asks to understand in the other language.

List and Status of Deliverables

1. Software Requirements Specification

2. Scenarios and Mockups

Note: All mockups can be seen under the related scenario.

3. Software Designs (UML designs)

4. Project Plan, Communication Plan, Responsibility Assignment Matrix

5. Pre-Release Version of Turquiz

  • Release Tag: Please follow the link to 0.1.0-alpha.
  • Web Application: Please follow the link to Turquiz Web Application.
  • Build & Run: All Dockerization & Deployment process for testing/using the application locally is covered in the README section of our repository.

Evaluation

Evaluation of Deliverables

Changes on Our Project Plan

We didn’t encounter any major changes along the way and were able to deliver everything for the first demo as planned.

Initially, Umit was set to create Figma designs for both the mobile forum and the web quiz. However, recognizing his efficiency in designing directly in code with TailwindCSS, we decided to skip detailed Figma designs for the quiz and develop its UI directly in code instead. To speed up the client-side development, we divided tasks so that Hasan built out the basic page structures, which Umit then refined. Meanwhile, the mobile team could directly reference Umit’s designs, maintaining consistency. This streamlined approach emphasized functional design over detailed UX/UI, allowing us to meet our demo goals efficiently and cohesively.

We are planning to add hints for questions, a learning platform, and

Project Management Tools & Processes

  • GitHub Issues As always, GitHub Issues were used effectively for task tracking, bug reporting, and feature management, providing a clear overview of ongoing and completed work.

  • WhatsApp This semester, we expanded our use of WhatsApp to improve communication, even creating dedicated groups for frontend, server, and DevOps teams. This allowed for more focused discussions and quicker resolution of domain-specific issues.

  • Discord While still useful, Discord was not as efficient for us as it had been in previous semesters, and we relied on it less for core discussions even before the ban on Discord.

  • Figma We used Figma primarily for logo design, color selection, branding, and brainstorming sessions, allowing us to establish a cohesive visual identity early in the process.

  • Face-to-Face Meetings: Regular in-person meetings were crucial for discussing API schemas, feature scope, design elements, and more, enabling clear, real-time communication and faster decision-making.

  • Online Meeting: We used Jitsi instead of Google Meet or Discord this semester. The change was due to its free software license.

  • The Weekly Meetings: We increased one-day per week meeting to two-day per week group meeting this semester. These meetings become more task oriented and helped us get synced more easily.

  • Selecting a Lead: This semester, we decided to select a lead responsible for major jobs such as backend, web, mobile, linked data etc. This helped us to keep track of the responsibility better.

The Requirements Addressed

1.1.1 Account Requirements

  • 1.1.1.1 Users shall be able to register the system.
  • 1.1.1.2 Registered users shall be able to log in to the system.
  • 1.1.1.5 Registered users shall be able to log out from the system.

1.1.2 Quiz Requirements

  • 1.1.2.6 Users shall be able to view any quizzes.
  • 1.1.2.8 Registered users shall be able to see previous quizzes
  • 1.1.2.12 Registered users shall be able to see the creator of quizzes.
  • 1.1.2.13 Registered users shall be able to view a quiz feed.

1.1.3 Forum Requirements

  • 1.1.3.1 Registered users shall be able to create forum questions.
  • 1.1.3.2 Registered users shall be able to link keywords in the questions to the corresponding linked data source.
  • 1.1.3.4 Users shall be able to view any forum questions.
  • 1.1.3.13 Registered users shall be able to view a forum feed.

Individual Contributions

Member: Hasan Kerem Şeker

Responsibilities

  • I am assigned to create the frontend of the Web application which the users will interact when they are using Turquiz. Ümit Can Evleksiz is also working on the clientside. We split tasks and review each other's tasks to push only high quality code the main branch. Therefore, I am also responsible for reviewing Ümit Can's code. Moreover I was responsible for creatin the requirments, elicitation questions and a scenario with its mockup.

Main Contributions

  • I was the part of the team crating the requirements and elicitation questions.
  • I created the second scenario with Ceydanur Şen.
  • I and Ümit Can created the web application which we have shown in the demo.
  • I initialized the register and the login pages and modified the mock server to make them functional.
  • I created the the page to get a single quiz with id and solve it. I also created mock quizzes to solve and modified mock server to enable solving the quizzes.
  • Ümit Can reviewed what I did and occasionally added new functionalities and improved the design and I reviewed his tasks and merged his branches.
  • I reviewed the functionalities and the design of the quizzes page, the homepage.
  • I added mock data to leaderboard and the homepage. I also add some styling to the leaderboard initialized by Ümit Can.

Code-Related Significant Issues

  • Resolved/Reviewed Issues:
    • Implement Login Route on Client App Issue, Pr
    • Implement Register Page on Client Issue, Pr
    • Create a Logger Utility Issue, Pr
    • Create Mock Quiz Data For Clientside Issue, Pr
    • Implement /quizzes/:quizId route Issue, Pr

Non-Code-Related Significant Issues

  • Resolved/Reviewed Issues:
    • Removed old unnecessary artifacts Issue
    • Created Requirements Issue
    • Created Elicitation Questions Issue
    • Organized New Meeting Schedule Issue Created a General Plan Issue
    • Created User Scenario 2 - Search for a Quiz & Create a Quiz Issue

Pull Requests (PRs)



Member: Yunus Kağan Aydın

Responsibilities

  • In previous term I was in backend part of the team, but this term I switched to mobile team of our Turquiz project. My general responsibilities consist of the design and implementation of the mobile part of our project. Other than that I try to help my team in terms of writing requirements, creating scenarios, documenting meeting notes etc.

Main Contributions

  • I was a member of the team that created requirements. I looked specifically at user requirements.
  • I created 4th and 5th scenario with Muhammet Emin Çiftçi and Ozan Karakaya.
  • Muhammed Emin Arayıcı and I implemented the mobile part which we showed in our demo.
  • I splitted initial authentication page which had login and register to two seperate screens and modified their UI to a proper one.
  • I implemented CreateQuestion screen in forum screen.
  • I implemented bottom tab to our mobile application in order to navigate into "Forum", "Quiz", "Leaderboard" and "Profile" pages.
  • Muhammed Emin Arayıcı and I resolved conflicts that has occured in merging different branches into the "development" branch.
  • I documented multiple meeting notes and lab reports.

Code-Related Significant Issues


Non-Code-Related Significant Issues


Pull Requests (PRs)



Member: Ceydanur Şen

Responsibilities

  • One of my main responsibility was to search and learn which API to use for semantic search and how to implement linked data structure for our project. This task is crucial since according to API used and the implementation way our project structure and the performance affected significantly.
  • I worked on requirement specification and asked some of the elicitation questions we prepared.
  • I was responsible for creating class diagrams and sequence diagrams.
  • Project planning was my another responsibility. Starting from the first week I took a part in creating project plan and tracking changes to it during our development phases.
  • I implemented tagging endpoint with my backend team members to add tag feature into forum question and answers. I was responsible for implementing pagination for forum questions.

Main Contributions

  • I created project plan with Muhammet Emin Çiftçi and Muhammed Emin Arayıcı. After that the I tracked whether we had fallen behind the schedule.
  • I documented each task explanations stated on Project Plan.
  • I created Scenario 2 and related Mockups with Hasan Kerem Şeker.
  • I created Class Diagrams with other backend members.
  • I was responsible for creating seqeunce diagrams.
  • I searched for linked data structure and found out that the suggested Lexvo API is not suitable for our project structure and has a narrow vocabulary pool for Turkish words. We decided to use BabelNet API. I examined its Python and HTTP API and also examined its sample codes provided at API guide.
  • I implemented tagging endpoint with Muhammet Emin Çiftçi and Mücahit Erdoğan Ünlü. After that users can add tags to forum questions and answers.
  • I added pagination functionality for forum questions with Mücahit Erdoğan Ünlü.
  • I implemented unit test for pagination functionality.

Code-Related Significant Issues

  • Resolved/Reviewed Issues:

Non-Code-Related Significant Issues

  • Resolved/Reviewed Issues:
    • Research Lexvo : We conducted a search for linked data implementations on Lexvo, but we found that it is not suitable for our needs. The primary reason for this is that Lexvo only offers a Java API, which limits its accessibility for our project. Additionally, the vocabulary pool available through Lexvo is quite narrow, making it challenging to accommodate the diverse range of terms and concepts we require for effective linked data integration. As a result, we need to explore alternative solutions that offer broader language support and more flexible implementation options.
    • Create General Plan : This plan constructed a base for the final project plan.
    • Create Project Plan: We created a project plan to use during our development phases.
    • Document Tasks Stated In Project Plan: I explained thw task and which specific task involves which steps to complete.
    • Class Diagrams , Edit Class Diagrams: I took a role in creating our class diagrams and reviewed it.
    • Create Scenario: Created a scenario with Hasan Kerem.
    • Create Sequence Diagrams: With my all backend team, we distributes this task to ease and complete this task.

Pull Requests (PRs)


Member: Muhammet Emin Çiftçi

Responsibilities

  • Starting from the requirements to the current state of our project, I have been working on each step.
  • Requirements specification, project planning, and mockups are three main parts I worked on during the requirements phase.
  • Creation of software design diagrams which were use case diagram, class diagram, and sequence diagrams was my resposibility on design phase.
  • For the implementation part, I was on the backend team and worked on tagging and vote endpoints. Also, I had the opportunity to study on dockerazion thanks to Ozan.
  • I am also chosen as a project manager with Ceydanur. It is kind of a symbolic responsibility but it is worth mentioning.

Main Contributions

  • Created project plan with Muhammed Emin Arayıcı and Ceydanur Şen. Also, created and configured the required charts. The wiki page
  • Drew the mockups and write the story for scenerio 4 & 5. Scenerio 4 Scenerio 5
  • Decided on requirements with the team. Requirements
  • Created Use Case Diagram with Ozan. Use Case Diagram
  • Created Class Diagram with Mücahit and Ceyda. Class Diagram
  • Created Sequence Diagrams with the backend team. Sequence Diagrams
  • Created Tagging endpoint with Mücahit and Ceydanur.
  • Created Forum Qustion Vote endpoint with Arda and Ozan.
  • Worked on Database Dockerization with Ozan.

Code-Related Significant Issues


Non-Code-Related Significant Issues


Pull Requests (PRs)


Additional Information

  • My team has chosen me and Ceydanur as co-project managers for our project development. It is kind of a symbolic responsibility, but I try to be as helpful as possible.

Member: Muhammed Emin Arayıcı

Responsibilities

  • I'm part of both the mobile team and the DevOps team. My main responsibilities are developingthe mobile application and deploying the full application for mobile and DevOps teams, respectively.
  • Moreover I was responsible for creating the requirments, elicitation questions, a scenario with its mockups, and the UI/UX design.

Main Contributions

  • I was the part of the team creating the requirements and elicitation questions.
  • I created the third scenario and its mockups with Mücahit Erdoğan Ünlü.
  • I helped to Ümit Can Evleksiz for the creation of the UI/UX design.
  • Me and Yunus Kağan developed the mobile application.
  • I initialized the authentication system to manage JWT token lifecycle. (e.g., stroing token, deleting token, etc.)
  • I created a mock server using json-server for the mobile team to develop the forum screens before the development of related APIs by the backend team.
  • I built the forum feed screen usign the mock server.
  • I built the question detail screen with answers using the mock server.
  • I connected the mobile application to the deployed backend.
  • I developed the tagging feature for the forum questions in the mobile application.
  • I resolved the problems related to Dockerization of the applications, backend, client, and Nginx with Ozan Oytun Karakaya.
  • I initialized the CI/CD pipeline with Ozan Oytun Karakaya.
  • Me and Ozan Oytun Karakaya deployed the application to the cloud.

Code-Related Significant Issues

  • Resolved/Reviewed Issues:
    • Implement Auth Context for mobile Issue, PR
    • Implement mock server for forum pages for mobile Issue, PR
    • Implement Forum Question Detail screen for mobile Issue, PR
    • Implement tagging for forum questions for mobile PR
    • Connect mobile app to deployed backend PR
    • Dockerize the full application and initialize the CI/CD pipeline Issue, PR

Non-Code-Related Significant Issues

  • Resolved/Reviewed Issues:
    • Remove Old Unnecessary Artifacts Issue
    • Create Requirements Issue
    • Create Elicitation Questions Issue
    • Create Project Plan Issue
    • Document Milestone Scopes Issue
    • Create User Scenario 3 & Its Mockups Issue

Pull Requests (PRs)

  • Conflict Resolution:
    In the Update Navigation and Add Register Screen PR, there are some issues arised while resolving the merge conflicts. This PR introduces the changes to the application's default navigation logic since it provides different flows for authenticated and not authenticated users. The base branch also has some newly added configurations for the same file. While combining them, some of the details of the PR are changed. Because the PR does not have the final navigation logic the app has, I didn't go it too much. I informed my colleague about it. Then

Member: Ozan Oytun Karakaya

Responsibilities

  • My main responsibility is leading the DevOps process of our application with all of its features such Dockerization, Deployment, CI/CD features, etc.
  • I am also a part of the backend development team. I have contributed mostly on DevOps side since backend contributions are satisfied for this milestone.
  • I was also responsible for creation of requirements & elicitation, scenarios, UML Diagrams and Project Plan.

Main Contributions

  • I have generated & gathered elicitation questions for requirements and revised requirements according to their answers.
  • I have created general Project Plan with Ceyda Nur Şen and Hasan Kerem Şeker.
  • I have created User Scenario 4 & User Scenario 5 with Muhammet Emin
  • I have created UML Use Cae

Code-Related Significant Issues

  • Resolved/Reviewed Issues:

Non-Code-Related Significant Issues

  • Resolved/Reviewed Issues:


Pull Requests (PRs)

  • Created PRs:
  • Merged PRs:
  • Reviewed PRs:
  • Conflict Resolution:

Member: Arda Vural

Responsibilities

  • I was in the mobile team last semester. This term, I have switched to the backend team. I have worked on endpoints.
  • Organized New Meeting Schedule for the project was part of my responsibility.
  • Implementing Vote Endoints for Forum Questions wih Muhammet Emin Çiftçi ,and Forum Question Create and View Endpoints with Mücahit Erdoğan Ünlü were some of my responsibilities for backend.
  • Reviewing part for requirements and giving feedbacks. Also, I was responsible for creating user scenario templates and user scenarios with mockups aswell.
  • Creating software design diagrams like class diagram, and sequence diagrams and also reviewing them was my primary responsibilities in the design process.
  • Refining and updating wiki also was a kind of responsibility that i helped about.

Main Contributions

  • Created User Scenario 1 and drawing the mockups with Ümitcan Evleksiz. The wiki page
  • Created User Template for a general use and consistency with Ümitcan Evleksiz. Template
  • Reviewed and gave feedbacks on requirements with the team. Requirements
  • Created Class Diagrams with Mücahit, decided on the design and reviewed. Class Diagram
  • Created Sequence Diagrams and also reviewed others with the backend team. Sequence Diagrams
  • Created Forum Question Create and View endpoints with Mücahit.
  • Created Forum Question Vote endpoint with Muhammet Emin and Ozan.

Code-Related Significant Issues


Non-Code-Related Significant Issues


Pull Requests (PRs)



Member: Ümit Can Evleksiz

Responsibilities

  • I am responsible for creating and maintaining the branding of the Turquiz application.
  • I am responsible for the UX/UI design of both the web application and the mobile application.
  • I am responsible for creating the web client application.
  • I am respinsible for accessibility, responsiveness, and the w3c compliance of the web application.

Main Contributions

  • Initialized the scenarios with Muhammet Emin Arayici.
  • Created first user scenario.
  • Created the app logo, theme, and color palette.
  • Brainstormed the user flows and possible screens.
  • Created forum page designs for the mobile application.
  • Bootstrapped the web application, installing necessary dependencies.
  • Refined and refactored the login/register pages, removed ui libraries we didn't need anymore.
  • Set up a mock server (MSW) to serve mock data for the web application.
  • Created quiz card and quizzes page.
  • Refined the quiz page, added missing functionalities.
  • Added a leaderboard with mock data, created reusable components.
  • Added a home page with mock data.

Code-Related Significant Issues

Non-Code-Related Significant Issues

Pull Requests (PRs)



Member: Mücahit Erdoğan Ünlü

Responsibilities

  • I was selected as the lead backend developer. This meant that I was responsible for delivering the backend objectives on time. Besides, I had the responsibility of division of labor and assigning teammates to tasks.
  • I took part in specifying the requirements.
  • I took part in scenario & relevant mockups together with Muhammed Emin Arayıcı.
  • I was selected as the lead responsible for class diagrams.
  • I was responsible for sequence diagrams.
  • I was responsible for selecting the best suitable Linked Data tool for our project.

Main Contributions

  • Actively participated in specifying the requirements and created the glossary.
  • Prepared one scenario & relevant mockups together with Muhammed Emin Arayıcı.
  • Prepared the main design of the class diagrams.
  • Created a few sequence diagrams together with Ceydanur Şen and assigned some sequence diagrams to others.
  • Researched and selected Babelnet API as our Linked Data server as it provided the most comprehensive vocabulary for Turkish-English.
  • Bootstrapped the backend app and integrated the swagger.
  • Created register and login endpoints on backend together with their swaggers and unit tests.
  • Created fully-functional Forum Question CRUD endpoints together with Arda Vural together with its swagger.
  • Created unit tests for Forum Question CRUDs.
  • Implemented tagging endpoint that returned a list of Babelnet entities to user together with Ceydanur Şen and Muhammed Emin Çiftçi together with its swagger.
  • Implemented pagination for Forum Questions together with Ceydanur Şen and updated swagger and unit tests accordingly.

Code-Related Significant Issues

  • Resolved/Reviewed Issues:
    • Bootstrap Django REST Framework App: issue, PR
    • Implement Login and register Endpoints: issue, PR
    • Integrate Swagger and use it for Login and Register JWT Tokens: issue, PR
    • Implement Forum Question CRUD Endpoints together with Arda Vural: issue, PR
    • Implement Tagging Endpoint together with Ceydanur Şen and Muhammed Emin Çiftçi: issue, PR Implement Pagination for Forum Questions together with Ceydanur Şen: issue, PR

Non-Code-Related Significant Issues

  • Resolved/Reviewed Issues:
    • Apart from participating in specifying requirements, I personally prepeared the glossary: issue
    • I researched the best suitable Linked Data tool for our project. It is important because it will signifcantly affect the user experience: issue
    • Designed the main part of the class diagrams as they are useful for understanding the project structure: issue
    • Create a scenario & relevant mockups together with Muhammed Emin Arayıcı: issue

PRs that I have Created/Merged/Reviewed

  • Created
  1. Auth: PR
  2. Forum Question. There was a simple conflict in requirements.txt file. Resolved by adding both incoming lines: PR
  3. Tagging: PR
  • Merged
  1. Pagination: PR

Additional Information

As a lead backend developer, I had the responsibility to integrate new-coming teammates from mobile team, Muhammed Emin Arayıcı and Arda Vural to backend team. I had sessions with both of them on Django and Django REST framework. Besides, we developed some endpoints together.

BOUNSWE2024 - G11

Logo Turquiz App

⏳ Status

  • Implementation Phase 1
  • Design
  • Scenarios & Mockups
  • Software Requirements Specification
  • Forming the Team

🧑🏼‍💻 Team

📝 Diagrams

📆 Lab Reports

📆 Meeting Notes

📍 Milestones

📚 User Scenarios / Stories

📚 Resources

🔎 Research

🗂️ Templates

Clone this wiki locally