Customer Milestone 1 Report - bounswe/bounswe2024group11 GitHub Wiki

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.

At the end of the report, we have dedicated a section for our self evaluation.

1. Executive Summary

1.a) Summary & Overall Status

This project aims to build a comics-specific semantic information browser (SIB). Users will be able to make posts and search for them. The system will use Wikidata API to support the browsing.

Users will be able to register and login to the system so that they can make a short post, bookmark or like posts. They will also be able to see those who posted or liked content and follow them.

Our solution will provide an API that will be used by Web and Mobile clients. Hence, the system will provide a web and a mobile application.

We are currently at the end of the requirements elicitation phase. Next phase is designing.

1.b) Deliverables

Our Wiki is in a well-established and well-navigatable state. We have a functioning Sidebar and a descriptive landing page.

We have our Communication Plan, Project Plan, Requirements, Mockups, Scenarios, and Meeting Notes ready to review and evaluate.

We have more than 100 issues resolved. Our issues have a standard form where we describe a problems in a succinct and understandable fashion.

Deliverable Status
Requirements ✅ Complete
Elicitation ✅ Complete
User Scenarios ✅ Complete
Mockup Screens ✅ Complete
Project Plan ✅ Complete

1.c) Decisions

Domain

Comics over Chess: We have checked WikiData and changed our domain to Comics because of WikiData searchability, and content richness.

Meetings

Weekly meetings on Google Meet, and subgroup meetings on Discord. Hence separation of concerns.

Issue Templates:

We have mainly used simple todo issues, where it is required to specify a description and acceptance criteria. Along the way we have also incorporated "reviewer" in our issues.

Issue Labels:

We have categorized our issue labels under a few super-titles: app:, pri:, type, each of which are associated with different subcategories.

(i.e. app:backend, type:repo, pri:high)

Wiki Pages:

We have made an extensive use of tables and emoticons in our documents for better readability and semantics.

Mockups:

In the mobile version of the mockups, the content within the central container remains unchanged, but the navigation bar is reduced in size. The “new post” button is designed similarly to the floating action buttons seen in Google Products. Our central container’s size varies between 440 and 480 pt, depending on the content.

The designs can be effectively scaled down up to 320px width with appropriate adjustments in font size and spacing. Thus, our desktop version is effectively a superset of our mobile designs.

1.d) Challenges Met

  • The first domain is not rich enough in terms of WikiData content. Domain change required double work on most of the ends such as requirements, and user scenarios. We have decided to change our domain to address this issue.
  • Understanding semantic search, its use cases, and its implications for our project.
  • The false idea that we all have to be in every meeting hindered us.
  • Meetings taking too much time was another problem. From now on, we are going make a weekly sync meeting with all team members and subteams will make short meetings when needed.
  • Trying to "glue" 5 user scenarios and mockups was an exhausting task. Communication between mock-up and scenario teams helped us to solve this issue. The mock-up team commented on scernarios and the scenario team modified scenarios accordingly.

2. Project Plan

Description & Necessary Links

We have created our project plan in ProjectLibre and displayed it in our Wiki. ProjectLibre file describing the project plan can be accessible in our repo link.

We have created our project plan by determining general tasks and distributing them throughout the 2 month period starting from Milestone 1 date.

Workflow of Project Plan

  • Software Design --> UI/UX Design --> Implementation --> Tests & Bug Fixes --> Deployment

Since Implementation Task is the most generalized and time-consuming one, we have also distributed it onto sub-tasks defined by our comprehensive work of requirement specification.

  • It consists of five main sub-tasks: User Management, Post, User-to-User Interaction, Wikidata Integration, and Profile Page.
  • It is important to note that some parts of these five tasks will be conducted in parallel and others will be conducted in series since they are highly correlated and cannot be done without the other.
  • In addition, Non-Functional Requirements Implementation is distributed on a time period starting from beginning of Implementation Task ending with the Deployment Task since Security, Performance and Compatibility related tasks will always be under our development scope of the project starting from Implementation Task.

As it is stated above, Gantt Chart and Network Chart describing our project plan can be viewed using the links above in order to understand links between the tasks and parallel executions dates of them.

Task Explanations

  • Milestone 1: This task mostly covers Requirement Specification and creation of Scenarios and Mock-Ups.

  • Software Design: This task covers where team creates UML Diagrams for different aspects of the project such as Use-Case, Class Diagrams, Sequantial Diagrams for program behaviors. Here can be assessed as last point before the UI/UX Design.

  • UI/UX Design: This task covers the process of creation of screens according the preceeding design steps that will constitute the overall application. It is important to note that this task is conducted just after the Software Design process. This work package completes the Milestone 2 specified by our team.

  • Milestone 2: As it is stated above, we want to place a milestone before starting any development related task, where we can evaluate our progression and take necessary actions if needed.

  • Implementation: This task covers the main implementation part of the project that are designed at preceeding steps. It is splitted into seven work packages.

    • User Management: User management covers the implemetation of registeration and log-in parts.
    • PostManagement: Post managment part is consist of posting, liking, bookmarking, and commenting sub-tasks.
    • User-to-User Interaction: User to user interaction covers following, blocking, and muting of users.
    • Feed: Feed part covers the implementation of feed page of the application.
    • Search: Search part provides extra resulting information which users demand.
    • Wikidata Integration: Wikidate integration covers the integration of post and research.
    • Profile Page Management: Profile page management covers the implementation of profile overview and interaction stats.
  • Non-Functional Requirements Implementation: While implementing functional requirements such as implementation and tests & bugfixing, our team works on this part in parallel. Since this task is done at the background, this part is not added specifically to the plan. This task covers the main three sub-tasks defined by our team as Non-Functional Requirements, which are:

    • Security Requirements Implementation
    • Performance Requirements Implementation
    • Compatibility Requirements Implementation
      • Whole process starting from Implementation until the end of the Deployment includes necessary Security related actions to be taken, thus it is provided with more time than other two sub-tasks.
      • Performance Requirements Implementation and Compatibility Requirements Implementation sub-tasks are assessed more relevant with the Tests & Bug Fixes and Deployment tasks, thus they are conducted parallel with those main tasks.
  • Tests & Bug Fixes: After the completion of implementation, before releasing any form of the application, unit tests and compatibility related works should be handled in this period. As team, we have decided to allocate two weeks after Implementation for this task.

  • Deployment: This task covers the work where the deployment process will take place after conducting Tests & Bug Fixes. Here can be thought as the part where the team will be focusing the Security, Performance and Compatibility related issues before releasing the application.

  • Milestone 3: After completion of all development and releasing process, we have our deliverable as application where we wanted to place another milestone.


3. Personal Efforts

You can view each student's personal efforts page here

Arda Vural
Created my personal efforts page which includes everything i do in more detail.
Updated the Responsibility Assignment Matrix according to my personal efforts.
Created a bio page for myself.
Researched and created Wikidata API section with M.Emin Arayıcı.
Documented Wikidata API and added some tutorials, sources with M.Emin Arayıcı. Documentation can be seen at here.
Created the Plan Project with Muhammet Emin Çiftçi and Ozan Karakaya. Corresponding Plan Project documentation can be seen at here.
Documented the Plan Project with Muhammet Emin Çiftçi and Ozan Karakaya.
Updated and edited the last version of landing page of Wiki according to the Milestone. All corresponding information is added. It can be seen from here.
Added my favorite repository to Repository Research by analyzing and explaining GitHub related features.
Contributed to the milestone report in Project Plan part. Can be seen at this link.

Ceydanur Şen
Researched how a Well Designed and Documented API should be with Yunus Kağan Aydın. The resulting API documentation can be seen at link.
Created five user scenarios(Scenario 1 Scenario 2 Scenario 3 Scenario 4 Scenario 5) with Hasan Kerem Şeker
Updated Responsibility Assignment Matrix according to my Personal Efforts Page
Prepared a Resources page for further use. Resource page includes information about conventional commits, semantic versioning, and github doc issues. Resources page can be seen at link
Created a bio page for myself including my interests, skills and the contact information. My bio page
Added my favorite repository to link by explaining Github related features
Contributed to the milestone report in Project Plan part. Can be seen at this link.
Updated the Plan Project with Muhammet Emin Çiftçi and Muhammed Emin Arayıcı. Corresponding Plan Project documentation can be seen at here.

Emre Kılıç
Created my bio page
Created my personal efforts page
Researched about Semantic Search and documented with Hasan Kerem at this link
Defined the requirement elicitation questions. Can be seen at this link
Organized the meeting with Kutay Altintas and asked the elicitation questions. Documented the answers at the elicitation page.
Specified the user requirements. Can be seen at this link
Contributed to the milestone report in Executive Summary and Evaluation part. Can be seen at this link

Hasan Kerem Şeker
Created my bio page
Created my personal efforts page
Created five user scenarios(Scenario 1 Scenario 2 Scenario 3 Scenario 4 Scenario 5) with Ceydanur Şen
Documented the research for Semantic Search
Took notes during the PS at March 18 and posted it on GitHub
Contributed to the milestone report in Retrospective, Executive Summary, and Evaluation of Tools and Processes.
Contributed and review issue templates and README

Muhammed Emin Arayıcı
Explored the repository of Pynecone on GitHub, identifying potential integration opportunities and innovative features that could be adapted for our project. Also, explored how they use their repo interms of issues, wiki, etc. Check it here.
Researched the Wikidata API, including its functionalities, how to integrate it into our project, and its benefits for enhancing our application's data richness. This research was documented and shared with the team for consideration in our development strategy.
Reviewed the project requirements and provided detailed feedback focusing on areas that could enhance the user experience and technical feasibility. This feedback was compiled in a document and shared with assignees of the issue.
Created all desktop mock-up screens with Ümit Can Evleksiz in the workspace of our Figma team. This included designing interfaces for the main user interactions identified in the project requirements and scenarios. The final designs have been shared with the team for feedback.
Put all desktop mock-up screens to the five different scenario pages in the wiki accordingly. Each screen was associated with its relevant user scenario to facilitate a comprehensive understanding of the user flow and to provide a visual guide for the team. You can see the mock-up screens in the Mock-ups section of the pages Scenario 1, Scenario 2, Scenario 3, Scenario 4, and Scenario 5.

Muhammet Emin Çiftçi
Created my bio page. The document can be seen at link
Created my personal efforts page. The document can be seen at link
Created the meeting notes template. The document can be seen at link
Made a research about a wiki repository, Home Assistant - Core
Wrote the meeting notes #1, #2, and #6
Determined domain selection criteria with Mücahit Erdoğan Ünlü. The document can be seen at link
Created the first milestone, Milestone 1: Software Requirements Specification
Documented the project plan with Arda Vural and Ozan Oytun Karakaya using ProjectLibre. The document can be seen at link

Mücahit Erdoğan Ünlü
Created Git Tutorial. The tutorial can be viewed at link
Determined domain selection criteria with Muhammet Emin Çiftçi. The document can be seen at link
Prepared system requirements. It can be seen at link
Prepared the glossary for requirements. It can be seen at link
Created RAM table. The table can be seen at link
Contributed to the milestone report in Executive Summary and Evaluation part. Can be seen at this link

Ozan Oytun Karakaya
Created the Project Plan with Muhammet Emin Çiftçi and Arda Vural.
Documented our Project Plan on our Wiki Page with Muhammet Emin Çiftçi and Arda Vural.
Made research about feasible domains for our project selection (can be tracked here), presented my list of ideas in Meeting #5.
Contributed to Milestone 1 Report by documenting the Project Plan section.
Created my bio page for myself including my interests, skills and the contact information.
Created Repository Research Page in our wiki and created my entry where I inspect my favorite repository.
Update my entries on RAM Table.
Documented my personal efforts page according the guided template.

Ümit Can Evleksiz
Created issue templates and template configurator
Bootstrapped a bio page template and created my own bio page
Created a readme page in the repository, summarized the team and the project, and updated it when necessary
Created our Wiki home page (landing page) and modified as we progress. i.e. add team members' bio and efforts. Created _Footer and _Sidebar pages and took care of them
Created image assets for the Wiki, and the Milestone Report
Set up a Google Drive folder, stored assets such as meeting notes draft document and tutorial-esque video
Added 3 repositories to our collaborative repo research page, and wrote descriptions for them (You Don't Know JS, react-router-typesafe, and Astro.)
Initialized Github Projects and Github Discussions, published discussion questions and
Created the Mail Addresses Wiki document
Led weekly meetings, keep track of the agenda
Kept track of the progresses of the issues, fixed typos and grammar mistakes on the Wiki pages
Found and discussed example domains for the project
Modified Communication Plan page to reflect the changes on our workflow
Created Figma team, invited team members in it, and initalized our Figma project
Designed an application logo, made design & branding decisions for the app. These are briefly mentioned in the Mockup Screens. Our logo can viewed on Wiki landing page
Designed 20+ mockup screens, designed subpages and modals to fit the 5 user scenarios
Contributed to the Customer Milestone 1 Report by ways of creating an outline, writing the status of the project & deliverabes, listing out the tools we have empowered, adding decisions and difficulties encountered, and my personel efforts. Created a retrospective section as well.

Yunus Kağan Aydın
Created bio page
Created personal efforts page
Wrote the meeting notes #3 #4 #5 #7
Specified the performance requirements
Specified the security requirements
Specified the compatibility requirements
Documented the research of Well Designed Documented API's with Ceydanur Şen
Added my personal efforts to Responsibility Assignment Matrix
Contributed to the milestone report in Meeting Notes Workflow

4. Evaluation of Tools and Processes

Tools Used:

  • WhatsApp

    • We used WhatsApp to do our spontaneous discussions and urgent communication, and to share polls or links.
    • We organized our discussions mostly on Whatsapp. This can make discussions untraceable. We should consider using Github Discussions for more organized and traceable discussions.
  • Discord

    • We used Discord to carry out our subgroup meetings. The topics of these subgroup meetings include the creation of scenarios, elicitation of requirements, and creation of the project plan.
    • We also used Discord to get in contact with the instructors to ask our questions and arrangements.
  • Google Drive

    • We used Google Drive to share folders and draft files. We kept our ProjectLibre documents here.
  • Google Meet

    • We used Google Meet to do weekly meetings in which current tasks are assigned to subgroups. These meetings allowed us to synchronize our progress. Google Meet is compatible with Google Calendar, which is used to schedule not only CMPE352 but all of our workflow.
  • GitHub

    • The deliverables of the project are populated on GitHub Wiki. Our repository has issues linked with assignees and reviewers.
    • We have a research section to keep documentation of our research. Our repository also stored the project requirements, scenarios, mock-ups, and plans in Github Wiki
    • We also have GitHub Discussions and GitHub Project pages.
  • Project Libre

    • It is used to create the project plan, Network Chart and Gantt Chart.
  • Google Sheets

    • We used Google Sheets to save draft meeting notes.
  • Figma

    • We have a Figma team/workspace where we do ideation and create our designs. UI mockups and repository image assets are created within Figma.
  • HackMD

    • HackMD helped us collaboratively edit md documents, allowing us to contribute into the milestone report page without any blockage or conflicts.

Meeting Notes Workflow:

Mark General Information → Checkbox the Participants → Write Down Agenda by Discussed Objectives → State Action Items with their Assignees → Add Additional Notes (If Necessary) → Complete

Issue Workflow:

Problem Occurrence → Create Issue → Assign Someone → Review → Complete

Helpful Links

Relevant Wiki Pages
Team Members
Communication Plan
Project Plan
Requirements
Requirement Elicitation
Mockups
User Scenarios (Scenario 1)

Visit our Wiki to see our documents on Research and Meetings as well as the other Scenarios.

Retrospective

Possible Improvements

  • We didn't make use of peer reviews at its full capacity for the first portion of this milestone. We also did our meeting as a whole instead of multiple submeetings in the first portion of this milestone.
  • Some of the meetings were in an indecisive atmosphere, where we could not simple sort everything out and create action items. These long meetings are presumably to be eliminated and replaced by a sequence of short and more frequent meetings
  • Semantic search for the mockup screens were not taken into account at the first stage of the user scenario and the design process.
  • We couldn't pay enough attention to our research pages. We instead spent most of our time learning and understanding the topic, lacking the documentation part. To put it shortly, we could have documented our research better.
  • The first domain was not very suitable for semantic searching. Had we selected a better domain, we would not need to change the domain and we would not have to write scenarios twice.

Accomplishments

  • Overall responsibility and availability of the team was top-notch
  • Issue usage was on point and effective. We had a good quality and quantity of issues opened and closed throughout the process
  • Our project has a very distinctive design, look and feel overall.
  • All 10 team members were reliable when it comes to finishing the tasks.
  • No AWOL :) Everyone was in the call, or known to be unavailable beforehand
  • We mostly did not miss deadlines. The tasks assigned during the meetings were completed on time.

⚠️ **GitHub.com Fallback** ⚠️