Lab Report 4 - bounswe/bounswe2024group5 GitHub Wiki

Lab Report #4

📆 Date 🕗 Time 📝 Report writer(s)
15/10/2024 15.00 Ebrar Kızıloğlu

🧑🏼‍💻 Participants

  • Arınç Demir
  • A. Ebrar Kızıloğlu
  • Özgür Deniz Demir
  • Ramazan Onur Acar
  • Süleyman Emir Taşan
  • Utku Çelik
  • Semih Yılmaz
  • Fahreddin Özcan

Introduction

We are the Group 5 taking the Cmpe 451 course this semester. Our project is on an English learning platform for Turkish speakers. This is the report on what we have completed during the Lab 4.

In this week's lab, we had a comprehensive brainstorming session on Database and API specifications, in the first hour. In the second hour, we distributed the UML diagram tasks and started working on them.


🎯 Lab Objectives

  • Database management system requirements.
  • API specifications.
    • Necessary endpoints.
  • UI specifications and interactions for quiz UI.
  • Work distribution for diagrams.

💬 Discussion

Database Management System Requirements

  • We discussed the necessary tables for our application:
    1. Users table
    2. Quizzes table
    3. Questions table
    4. User_Quiz_Results table
    5. Words table
  • We decided on using mock data for quiz features for the Customer presentation 1.
  • We agreed to postpone the implementation of quiz and user levels to the next milestone.

API Specification

  • We determined the features we will initially implement:

    1. User registration and authentication
    2. Question creation and retrieval
    3. Quiz generation and submission
    4. Solving an existing Quiz
  • We identified the key endpoints to be implemented:

    1. GET /words - Retrieve words for quiz generation
    2. POST /questions - Create new questions
    3. GET /quizzes - Retrieve available quizzes
    4. POST /quizzes/{id}/submit - Submit quiz answers
    5. GET /users/{id}/progress - Retrieve user progress
  • In Utku's moderation, we collectively planned the API design, specifically for the Quiz Creation, since this is the most significant and challenging aspect of our app.

You can view the details of our discussion here. Below is the endpoints drawing we worked on as the whole team: 451 lab 4 api design

UI Specifications and Interactions for Quiz UI

  • We determined the main screens needed for this milestone:
    1. Home/Dashboard
    2. Quiz Selection
    3. Quiz Taking Interface
    4. Results Screen
  • We agreed on using a minimalist design with clear navigation.

Work Distribution for Diagrams

  • We assigned team members to create the following diagrams:
    1. Use-Case Diagram
    2. Sequence Diagrams
    3. Class Diagram

🚩 Challenges

  • Conducting an API design session as a team.
    • We spent around 40 mins on API design for the quiz creation features (you can view the details of our discussion above). This was challenging to complete with 8 people in a class, with significant background noise. Regardless, we managed to sit as close as possible and focused around one notebook page to design the API functionality successfully.

⚙️ Works Done and to be Completed

Task Responsible Issues Related Links
1 Create Api Specifications Utku Çelik, Semih Yılmaz, Süleyman Emir Taşan #286
2 Create Class Diagram Semih Yılmaz #307
3 Create Sequence Diagrams Asude Ebrar Kızıloğlu, Özgür Deniz Demir, Fahreddin Özcan #304 wiki
4 Create Use Case Diagrams Ramazan Onur Acar, Süleyman Emir Taşan, Arınç Demir #308 Use Case Diagram
⚠️ **GitHub.com Fallback** ⚠️