-
Notifications
You must be signed in to change notification settings - Fork 1
Customer Milestone 1 Report
This is the first milestone report for our group project, group bounswe2024group5. We are a group of enthusiastic students of CmpE352 Introduction to Software Engineering course, committed to building a semantic information browser on the domain of Music that features posting about music, discovering others' contents, and interacting with other music enthusiasts. Our team members that have contributed to the project:
- ABDULLAH UMUT HAMZAOĞULLARI
- ARINÇ DEMİR
- ASUDE EBRAR KIZILOĞLU
- GÜNEY YÜKSEL
- HALİL UTKU ÇELİK
- ÖZGÜR DENİZ DEMİR
- RAMAZAN ONUR ACAR
- SEMİH YILMAZ
- SÜLEYMAN EMİR TAŞAN
Table of Contents
Our project is to build a music-specific semantic information browser (SIB). Our app allows users to semantically search for information. Users will share their posts related to music and search for others' content. We utilize the Wikidata API to support our semantic browsing. There will be a web and a mobile application provided.
The objective of this project is to make use of semantic search to provide more enhanced searching experience to the users. This approach will not only improve the well-known social media experience but also provide a music-specific platform for the enthusiasts to enjoy without getting exposed to any unrelated / unwanted content.
Our platform requires users to register, initiate a user profile, and post using one of the various post templates given. Users can choose to post about a concert they attended, a musical instrument they are playing, or their favorite song. Through the usage of predetermined tags, users can enrich their posts, and also look for similar content under a tag they like. Such tags are provided for music-related topics, such as genres, albums, popular bands and more.
To sum up, we will be building a music-specific semantic information browser, on both web and mobile, for music enthusiasts to get socialize and share their music taste.
From the initiation of our project, we have started building our GitHub repository for constant progress and enhancement. We established various wikipages for documentation purposes. Such pages include but not limited to team members' personal pages, meeting notes, and research notes. Moreover, we have utilized the issues, discussions, and projects features of Github, to achieve more productive and organized teamwork by keeping track of our development.
We established a communication plan and made use of several tools such as Discord, Whatsapp, and Github (jump here for more) to ensure constant communication among the team members. We chose a communicator (Ebrar). We held weekly meetings, distributed the tasks among us, and took detailed meeting notes for good quality documentation.
Upon receiving the concept of the project on semantic search, we did an exhaustive research on API, Wikidata, and application development (jump here). Furthermore, we chose the music domain for our application. For this, we determined the software requirements, and held a customer meeting to ask any questions we had on requirements. Then, we prepared user profile scenarios and designed mockups.
In terms of organization, we fill a responsibility assignment matrix for individual contributions. Also, we utilize the Roadmap view of Github to visually keep track of our progress.
Deliverable | Status | Related Link |
---|---|---|
Project Repository | Completed & Delivered | repo |
Software Requirement Specification | Completed & Delivered | wikipage |
User Profile Scenarios | Completed & Delivered | jump |
Mockups | Completed & Delivered | jump |
Project plan | Completed & Delivered | jump |
RAM (Responsibility Assignment Matrix) | Completed & Delivered | jump |
Communication plan | Completed & Delivered | jump |
Milestone Report | Completed & Delivered | this report |
The most prominent decision we made is our domain. At first, we gathered ideas from each member for approximately a week. Then, later we used our WhatsApp group for creating a multiple-answer poll. Top-voted choices were as follows:
- Nature & Sports (specified on outdoor activities) - 7 votes
- Music - 5 votes
- Fictional Characters - 4 votes
- Conspiracy Theories - 4 votes
Therefore, we concluded moving on with the Nature & Sports. The creator of this domain idea, Ebrar, mentioned this domain idea shall focus on sports and physical activities such as swimming in a waterfall, lake etc., jogging in the nature or hiking. However, after bringing up this domain idea to Suzan Hoca, she mentioned the possibility of lack of data on this domain in wikidata or other open source resources. Thus, as a group, we voted on whether continuing with the runner up idea, Music, or choosing another domain. After voting, we finalized our domain as Music. When looking for data on Music in wikidata, several group members checked if we can gather enough information on this new domain and we concluded that the data would be sufficient.
For the meetings, we try to make one every week mostly in Fridays or Mondays. However, when there are deliverables for us to complete, we decided on making additional meetings potentially on weekends. We make our meetings on Discord. We have an additional channel to the lecture channel for our group to communicate easily. We generally decide meeting date & time using www.when2meet.com, which is a tool that enables people to give their spare times and paints that time slot with more intense color.
For communication outside of the issues, we generally use our WhatsApp group or our Discord channel’s related components. Our communication generally starts with the assignments or some points and notes from the lecture. Then, we decide on a meeting date for finalizing the tasks and task sharing. Until the meeting, all group members shall give some thinking on the point. In the meetings, our main focus is finalizing the issues and sharing the issues in a proper and participative way for all of the members whether they are able to attend that meeting or not. Finally, our communication ends in the comments of the issues. We usually make a point, want an assistance or make a review in the comments.
For Issue Management, at first we create an issue with our templates. In the previous weeks, we focused on providing a brief explanation in our issue descriptions, at first our issues were more monotone and compact. Later, we put more effort into dividing issues into worthy little parts of sub-tasks. We generally have one assignee and one reporter for each issue, but we can add additional reviewers or add multiple assignees for issues needing multiple people such as the duplicate tasks where every member is supposed to make something for themselves. In those, we started to generate a major issue and later add clickable subtasks. As mentioned above, in meetings we try to give everyone an issue and continue the semester in a collaborative way. When someone forgets to go over or review a task, we all feel free to remind them in comments, or via WhatsApp, or Discord. We later started adding most of the issues to projects and used the roadmap feature of the projects for project planning and progress tracking (jump here for more).
Wiki part of our repository was generally the most basic issues for ourselves. In sidebar, we have different sub-categories for our assignments and deliverables. We focused on abstraction and simplicity in our pages and general schema of the wiki. We have parts for our project, team members, meeting notes, resources, templates and user scenarios for our first milestone.
In our project category, it is mostly about the last assignment and its descriptions. As the names suggest, team members part directs us to our individual pages of introduction and meeting notes direct us to the notes from our previous meetings. It is very useful for members who cannot participate in the meeting to go over the agenda, discussions and action items.
Resources part is for our research topics from the assignments. We tried to equally assign every group member to the research topics from the first and last assignments.
Also, templates part is for our templates on personal wiki page, meeting notes, issue and favorite repo documentation.
Lastly, user scenario part is for our first milestone. It describes different types of personalities that could potentially accommodate in our project.
Throughout the first five week of the semester, our team has faced several challenges. First, we were unable to find a time slot for every member to participate. We go over every potential time slot in a week using the when2meet but there were at most 2 absent in the best scenario. So, we tried giving more detailed meeting notes and explain potential difficulties or the way of an issue to the assignee if they were absent in the meeting. We tried to provide a space for group members to feel free to ask questions about the issue. Moreover, we naturally overcome this challenge by changing the meeting day every week so that a member who couldn’t participate in the last meeting could participate this one.
Another challenge was about the issues waiting in the review. However, there was an easy way to diminish the rate of the problem. We added a deadline for the review and assignees generally asked for review from our WhatsApp group if the reviewer wasn’t able to see the issue.
Lastly, we had a problem in our domain as mentioned above. When every member of the group is asked whether to go with the Music as it was the runner up or find something else, majority chose the Music. We couldn't find that much data about the Nature & Sports (Outdoor Activities) but there were lots of data about the music and its subcategories available in wikidata.
Team member | Summary of Work done |
---|---|
ABDULLAH UMUT HAMZAOĞULLARI | Initiated discussions on changing the format of meeting notes (Issue #41), exploring GitHub Discussions (Issue #55), and brainstorming domain names for the browser (Issue #70). Updated the README file of the repository to include relevant links and information (Issue #56). Created mockups for the website, contributing to the design phase of the project (Issue #98). Actively participated in team communication channels such as WhatsApp group chat, facilitating discussions and disseminating information effectively among team members. Completed assigned tasks such as adding your image to the team members section of the README (Issue #75). |
ARINÇ DEMİR | I moderated and took notes for Meeting #1. I took notes for Customer Meeting #1. I created my personal wiki page. I added my favorite repo to a wiki page. I researched and created a summary page about Mobile Development with Deniz. I elicited the non-functional requirements for our project. Finally, I reviewed many issues and gave feedback to my friends. |
ASUDE EBRAR KIZILOĞLU | As the Communicator of my team, I organize customer meetings with TA and reflect the feedback we received to the team. Moreover, I mostly lead the team discussions on our WhatsApp group chat (jump for more info). I moderated the team meetings #2 and #5. I initiated our wiki homepage and prepared the wiki templates. I did research on developing a semantic browser application and took notes. I initiated the usage of the Discussion section of Github in my team, and we have utilized it to discuss our domain and gather our requirements questions. I also collect my PS notes there. I wrote the software requirements for posting. Finally, I wrote this milestone report with Ramazan. |
GÜNEY YÜKSEL | As a member who took this class before, I've assisted with many tasks I remember from last year, such as creating labels. Completed all the tasks required in the assignments, such as creating personal pages and favorite repos. Created both of our issue templates and learned about YAML and configuration files in the process. Created our first project, which was more of an exercise than an actual one. Created a GitHub page that covered the basics of git and GitHub. I enjoy working with visual aids, so I've created a banner for our group that is visible in our README. Wrote some examples on the Web Application Page. Outlined the requirements for the feed page. Added a glossary to the requirements page. Also wrote all the User Scenarios which was the biggest single issue I've worked on so far. On my own wiki page, I've kept an organized table of my contributions, with additional explanations for longer tasks. |
HALİL UTKU ÇELİK | Created my personal wiki page. Added my favorite repo to a wiki page. Brainstormed domain ideas and created the one that is selected by the team. Learned to use Figma and created a mockup for user profile page, result can be seen here. Also, rewieved a few issues and gave feedback. |
ÖZGÜR DENİZ DEMİR | I was the moderator and the note taker for the forth meeting. I researched mobile application development and provided my teammates with introductory information and resources in case they wanted a deeper dive. I also helped draw several mockup pages for our application using Figma. I also specified user-to-user interaction requirements of our project. I also suggested the method we used to come up with our project domain. |
RAMAZAN ONUR ACAR | In the first weeks, I worked on the initial and small tasks such as opening a personal wiki page, initializing the readme and documenting a repository that I like. Later, I made a research on Data Analysis and took some notes on Wikidata, Linked Data, and SPARQL and made a summary of my research and enhanced my notes with more details, final version can be seen here. Also, I worked on the creation of the project and first milestone in GitHub and researched properties of them such as roadmap. Lastly, I worked with Ebrar on writing this report. We divided the report into parts, worked on them individually, and combined them in the end. |
SEMİH YILMAZ | --- |
SÜLEYMAN EMİR TAŞAN | As a member of the team, I attended all available meetings. I led the 3rd meeting and took notes. I maintained constant communication with my teammembers, taking on tasks and responsibilities. I provided feedback to my teammembers and consistently sought feedback from them to improve myself. I conducted research and took notes on Web Application Development, sharing these notes with my colleagues. I examined numerous examples and conducted research to determine search requirements, prepared questions, and ultimately identified the search requirements. Finally, I prepared the RAM. |
We talked about starting to use the GitHub Discussions for some topics. It was after the moment that we chose our domain in WhatsApp when we realized GitHub discussions would be more accessible for the sake of the project. In later assignments, when we need to agree on an idea, we decided using the GitHub actions instead of WhatsApp or Discord.
Several days ago, we were introduced to the GitHub Project's Roadmap and its start-end date and iteration part. Now, we started to use start and end date for our issues. However, we thought we may choose using iterations as small parts of projects and milestones. We plan to discuss its use for future issues.
We generally used Discord as our meeting platform. Also, we used it to discuss and share materials about our research, interests etc. For these purposes, we have various text channels in our server for brainstorming and agenda items.
WhatsApp is our main platform for informal communications between group members. We usually give initial thoughts about assignments and issues. We also use it in the purpose of reminding tasks and reviews.
Figma is a collaborative web application for interface design. We used it to create the layouts of the designs for the mockups of our project. It is an advanced tool to design and locate geometric shapes, texts, and images to build our visual interface.
At first, we were trying to find the proper time for our meeting via WhatsApp polls or writing in the discord chat, but later we started using when2meet. It provided us flexibility in choosing time slots and eased the effort for generating a poll for time slots.
We held weekly meetings to discuss the latest information we learned from the teaching staff, went over the deliverable and milestone instructions, and divided the tasks among us. We assign a moderator to every team meeting. The moderator is responsible for introducing the agenda of the meeting, directing the meeting's flow and taking detailed notes for documentation purposes and to inform absent team members.
We held a customer meeting on March 15th (see notes) to clarify the elicitation related questions we had during the project planning. After receiving the corresponding response, we were able to finish determining the software specific requirements of our project.
During the team meetings, we try to divide the tasks at hand evenly to the team members. We discuss the deadlines of such issues during the meeting. If there is no milestone approaching, the general convention is to finish the task before the upcoming meeting.
Every team member is responsible of creating corresponding issues for the tasks they were given in the team meetings. We follow a template for the issues, to keep consistent structure and gain valuable engineering skills. We assign a reviewer to every issue, to make sure that the work is checked by at least two people. With this system, we aim to maximize our productivity and keep high quality for our product and for our repository.
The name of our repository is “bounswe2024group5”. It includes a README file in which we introduced our project and us, team members, briefly. An issue template, both in the markdown and yaml format, is also present in the repository. The wiki subsection of our repository includes documentations about our semantic browser platform, and more (jump here for more).
The Software Requirement Specifications of our platform can be found in the Requirements Page in detail, along with the glossary.
We created 5 user scenarios, each handling a distinct user type. All of them can be seen in their pages:
- Scenario 1 - Feed Page
- Scenario 2 - Searching
- Scenario 3 - Posting
- Scenario 4 - Following
- Scenario 5 - Personal Page
We utilized Figma to design our mockups. You can find our mockups in the related wikipage.
We utilize Github's Roadmap feature for project planning and progress tracking. Our previous issues are shown with the start and end dates. Our highly tentative plan for the upcoming weeks is also available. You can observe our project plan here.
The Responsibility Assignment Matrix can be found in the RAM Page in detail.
Our communication plan is can be found in our wikipage.
We initially conducted exhaustive research on utilizing Github efficiently. Then, every group member did research on a different topic related to building a semantic search platform. Here is the research notes we gathered:
🏠 Home
- 💬 Communication Plan
- 🎯 General Plan
- 🗂️ Project Plan
- 📊 Customer Milestone 1 Report
- 📊 Customer Milestone 2 Report
- 📊 Customer Milestone 3 Report
- 📕 User Manual
- 📕 System Manual
- Software Requirements
- API Doc
- RAM
- Sequence Diagram
- Class Diagram
- Use-Case Diagram
- Mockups
- User Scenario 1 - Quiz generation
- User Scenario 2 ‐ Find forum from the Quiz
- User Scenario 3 ‐ Ask Question in the Forum
- User Scenario 4 - Solve a Quiz Sent by Another User
- User Experience Enhancement Plans and Actions
- Final Presentation scenario
- UI Interfaces
- User Stories
- Lab Report #1 | 24.09.2024
- Lab Report #2 | 01.10.2024
- Lab Report #3 | 08.10.2024
- Lab Report #4 | 15.10.2024
- Lab Report #9 | 10.12.2024
Lab Meeting Notes
Team Meeting Notes
🧑🏻💻 About Us
🗂️ Templates
CmpE 352
- Customer Milestone 1 Report
- Customer Milestone 2 Report
- Customer Milestone 3 Report
- UML Use-Case Diagram
- UML Class Diagram
- Sequence Diagrams
- API Documentation
- RAM | Responsibility Assignment Matrix
🗃️ All Project Files
📝 352 Meeting Notes
- Meeting #11 | 11.05.2024
- Frontend Meeting Notes #2 | 07.05.2024
- Meeting #10 | 07.05.2024
- Frontend Meeting Notes #1 | 08.04.2024
- Backend Meeting Notes
- Mobile Team Meeting Notes
- Meeting #9 | 28.04.2024
- Meeting #8 | 22.04.2024
- Meeting #7 | 04.04.2024
- Meeting #6 | 27.03.2024
- Meeting #5 | 15.03.2024
- Customer Meeting #1 | 15.03.2024
- Meeting #4 | 07.03.2024
- Meeting #3 | 03.03.2024
- Meeting #2 | 26.02.2024
- Meeting #1 | 19.02.2024