Customer Milestone I Report - bounswe/bounswe2024group4 GitHub Wiki

Executive Summary

Summary of project and overall status

We are essentially creating a forum dedicated to the NBA (National Basketball Association), which stands as the premier basketball league in the USA and is the most popular basketball league worldwide. Within the forum, users will have the ability to create posts, comment on others' posts, and like them. There will be dedicated pages for players and teams, sourced from Wikidata, with posts containing links to these pages. Additionally, users will have the option to follow each other and search for posts. We have planned out the project and brainstormed its features. Finally, we have completed the requirements, scenarios, and mockups for our project.

List the status of deliverables

Deliverable Status Due Date Related Link
Project repository: wiki pages, issue tracking Up to date - repo
Requirements Delivered on time Monday, March 18, 2024 requirements
Customer questions Delivered on time Monday, March 18, 2024 customer questions
Scenarios and Mockups Delivered on time Monday, March 18, 2024 * scenario 1 * scenario 2 * scenario 3 * scenario 4 * scenario 5
RAM (Responsibility Assignment Matrix) Delivered on time Monday, March 18, 2024 ram
Research Delivered on time Monday, March 18, 2024 research
Project Plan Delivered on time Monday, March 18, 2024 project plan
Communication Plan Delivered on time Monday, March 18, 2024 communication plan
Milestone Report 1 Delivered on time Monday, March 18, 2024 milestone 1

Decisions and Choices We Have Made

Meeting Decisions

Our meetings take place regularly every Thursday. During these meetings, we first evaluate the activities of the previous week and discuss the progress made. Then, we engage in detailed discussions regarding new projects or tasks, where we outline the requirements and objectives for each task. After tasks are assigned, team members conduct necessary research and share their findings to facilitate task completion. During the meetings, team members are encouraged to openly communicate any challenges they encounter and the support they may need. Meetings typically last for 1-1.5 hours, fostering interactive communication among participants. However, for urgent tasks or situations requiring quick decisions, rapid communication tools such as Whatsapp are utilized. These meetings are crucial for the successful progression of the project and keeping the entire team focused on the objectives.

Project Decisions

Our first choice was to decide on a project topic. Among the ideas, the NBA stood out to us because of its compatibility for a wiki-like forum. It encompasses a lot of players and teams, and it is a league that people love to discuss. After choosing this topic, we decided on its simple features like commenting, liking, and posting, etc. Following the customer meeting, we took our notes and decided to add a follow feature. Users will be able to follow each other and see their followers' posts. Additionally, following customer meeting, we decided to add a more advanced search feature. Users will be able to filter their searches according to date, like status, or follow status.

Wiki Documentation

On our wiki page, we prioritize the 'About Project' section to inform the users. Following this section, you can find sections like 'Group Members', 'Communication Plan', 'Meetings Notes', 'Research' and 'Templates'. We designed it with easily recognizable icons to ensure that the desired content catches the eye directly. Furthermore, to avoid clutter, we preferred using links. Additionally, we included all the necessary items in the sidebar and arranged them according to priority. For instance, we decided that the most recent meetings should be given higher priority, as we believe they are more critical.

Challenges

  • Designing and deciding on what flow the user will encounter while entering the app
  • Deciding on what attributes the user will have and in which ways these attributes are going to be used (eg. Following users, seeing related posts)
  • Determining which data to show to the user and finding the way to show it from the backend side
  • Designing the notification process of users about new posts, comments, likes, or follows in real-time via an efficient backend process
  • Deciding the domain of the search and how to sort the items that will be returned
  • Deciding on what filter options will be added to search
  • Determining how the team/player pages will be integrated with user posts especially in case of search
  • We decided that mockups should be all similar. So distibuting the work was a challenge, we tried to compensate this in other tasks

Project Plan

Roadmap can be accessed here.

Milestones and Estimations

  1. Customer Milestone I: Requirements Due Date: 19.03.2024 Tasks:
  • Research about relevant topics should be made
  • Requirements should be documented
  • Scenarios and mockups should be created
  • Elicitation questions should be decided and asked to the customer
  1. Design Estimated Due Date: 19.04.2024 Estimated Tasks:
  • Design choices should be made and they should be comprehensive
  • Mockups can be reviewed and new mockups can be created
  • Data structures should be decided
  • Pseudocodes can be created
  • Appropriate libraries should be investigated
  1. Implementation Estimated Due Date: 17.05.2024 Estimated Tasks:
  • An implementation roadmap may be created which is created considering the dependencies of code parts on each part
  • This roadmap should be divided fairly among team members
  • If something is decided to be unimplementable or inefficient design should be updated accordingly
  1. Verification Estimated Due Date: 27.05.2024 Estimated Tasks:
  • Code should be reviewed in order to make sure that good practices are used and there are no simple mistakes
  • Program should be tested in a compelling manner
  • Requirements should be overviewed to make sure that everything is implemented
  1. Maintenance Estimated Due Date: none Estimated Tasks:
  • User feedbacks should be investigated
  • Any bugs should be fixed
  • If needed/decided new features should be added

Member work

Team member Task
Fatih Demir * Researched web development with buse. The resulting documentation can be seen at web development research. #41(https://github.com/bounswe/bounswe2024group4/issues/41) * Wrote the requirements for main and team page, which can be seen under reqirements. #48(https://github.com/bounswe/bounswe2024group4/issues/48) * Wrote the scenario for sharing a post, which can be found at scenario 2. #59(https://github.com/bounswe/bounswe2024group4/issues/59)
Ahmet Batuhan Canlı * Researched API use and development with can The resulting document can be seen at API research #42 * Wrote user and guest requirements and according glossary parts with berat. Requirements. #47 * Wrote summary of the project and overall status and decisions part of Customer Milestone Report 1 #60,#61
Zeynep Buse Aydın * Created the communication plan of our group.#4(https://github.com/bounswe/bounswe2024group4/issues/4) * Did a research on web application development and documented it. Reviewed the parts that Fatih wrote. #41(https://github.com/bounswe/bounswe2024group4/issues/41) * Wrote the requirements for authentication of users under 1.1.1.1 Authentication. #49(https://github.com/bounswe/bounswe2024group4/issues/49) * Created Scenario 1 in which a guest user tries to share a post on the platform and is directed to sign up, then signs up to the platform. #55(https://github.com/bounswe/bounswe2024group4/issues/55) * Attended the customer meeting and took notes.
Nurullah Uçan * I researched and documented the iOS and Android development aspects related to mobile application development. I also reviewed the remaining sections, which belong to Talha Ordukaya. #40 * I conducted the necessary research on some Non-Functional Requirements (the first four) and documented the project to make it compliant. I then reviewed the remaining non-functional requirements, which were done by Murat Can Kocakulak. #52 * Writing part of the Decision and Choices section of the Customer Milestone I Report. #61 * Attended all the weekly meetings and the customer meeting.
Ümmü Sena Özpınar * I studied git. * I wrote the requirements for the user profile page. * I created the desktop mockups of the scenarios. * I wrote the evaluation of tools and processes section in Milestone Report.
Berat Yılmaz * Created a draft for the requirements page. #46 * Wrote the requirements for Posts. #54 * Wrote the requirements for Guest and Member Activities with Batuhan. #47 * Wrote scenario for commenting on a post. #56 * Researched and documented SPARQL. #39
Bilge Kaan Güneyli * Researched git and created the related page on Wiki. #6(https://github.com/bounswe/bounswe2024group4/issues/6) * Created the search constraints part on requirements. #51(https://github.com/bounswe/bounswe2024group4/issues/51) * Performed a research about Wikidata and documented on the relevant page #38(https://github.com/bounswe/bounswe2024group4/issues/38) * Created the 5th scenario which is about searching. #58(https://github.com/bounswe/bounswe2024group4/issues/58) * Researched similar webpages on the same domain and documented the research. #45(https://github.com/bounswe/bounswe2024group4/issues/45) * Created the milestones and the project plan #68(https://github.com/bounswe/bounswe2024group4/issues/68)
Murat Can Kocakulak * I studied git and checked other group repositories for useful staff. * I worked on the non-functional requirements part with Nurullah Uçan * I worked on the challenges part with Bilge Kaan Güneyli.
Ceyhun Sonyürek * Attended weekly meetings and took notes in one of them. * Researched and documented Linked Data on the relevant page. #39 * Wrote the requirements for player page. #50 * Wrote the Scenario 4 for liking posts and comments. #57
Talha Ordukaya * Explored good repositories to find my favorite and researched git. * Researched cross-platform development for mobile application development and documented it with Nurullah Uçan. * Wrote the requirements for account page. #50 * Created mockups for mobile versions of all scenarios.

Responsibility Assignment Matrix (RAM)

:red_circle: C -> Contributed
:large_blue_circle: R -> Reviewed
empty cell -> None

Berat Yılmaz Bilge Kaan Güneyli Fatih Demir Murat Can Kocakulak Zeynep Buse Aydın Nurullah Uçan Ceyhun Sonyürek Ahmet Batuhan Canlı Ümmü Sena Özpınar Talha Ordukaya
INFRASTRUCTURE SETUP - - - - - - - - - -
> Create personal introduction page template                 :red_circle: C  
> Create personal introduction page :red_circle: C :red_circle: C :red_circle: C :red_circle: C :red_circle: C :red_circle: C :red_circle: C :red_circle: C   :red_circle: C
> Create custom sidebar for wiki :red_circle: C                  
> Create communication plan         :red_circle: C          
> Update README.md     :red_circle: C              
> Update wiki home page :red_circle: C                  
> Create issue template     :red_circle: C              
RESEARCH - - - - - - - - - -
> Study git :red_circle: C :red_circle: C :red_circle: C :red_circle: C :red_circle: C :red_circle: C :red_circle: C :red_circle: C :red_circle: C :red_circle: C 
> Explore repositories :red_circle: C :red_circle: C :red_circle: C :red_circle: C :red_circle: C :red_circle: C :red_circle: C :red_circle: C :red_circle: C :red_circle: C 
> Research mobile application development           :red_circle: C       :red_circle: C 
> Research web application development     :red_circle: C   :red_circle: C          
> Research API use and development               :red_circle: C    
> Research Wikidata and Wikidata API   :red_circle: C                
> Research linked data and SPARQL semantic queries :red_circle: C           :red_circle: C      
> Analyze NBA related softwares   :red_circle: C :large_blue_circle: R              
DOCUMENTATION - - - - - - - - - -
> Document git research   :red_circle: C           :large_blue_circle: R    
> Document favorite repository :red_circle: C :red_circle: C :red_circle: C :red_circle: C :red_circle: C :red_circle: C :red_circle: C :red_circle: C :red_circle: C :red_circle: C 
> Document mobile application research           :red_circle: C       :red_circle: C 
> Document web application research     :red_circle: C   :red_circle: C          
> Document API research               :red_circle: C    
> Document Wikidata and Wikidata API research   :red_circle: C :large_blue_circle: R              
> Document linked data and SPARQL research :red_circle: C           :red_circle: C      
REQUIREMENTS - - - - - - - - - -
> Create the requirements page draft :red_circle: C                  
> Member activities :red_circle: C       :large_blue_circle: R     :red_circle: C    
> Guest activities :red_circle: C       :large_blue_circle: R     :red_circle: C    
> Team page :large_blue_circle: R :large_blue_circle: R :red_circle: C   :large_blue_circle: R   :large_blue_circle: R    
> Player page :large_blue_circle: R :large_blue_circle: R :large_blue_circle: R   :large_blue_circle: R   :red_circle: C  
> Authentication of users :large_blue_circle: R       :red_circle: C          
> Account page               :red_circle: C
> Search constraints :large_blue_circle: R :red_circle: C     :large_blue_circle: R :large_blue_circle: R        
> Non-Functional requirements   :large_blue_circle: R   :red_circle: C :large_blue_circle: R :red_circle: C        
> Posts (under the System Requirements) :red_circle: C :large_blue_circle: R                
> User profile page   :large_blue_circle: R             :red_circle: C  
> Main page :large_blue_circle: R   :red_circle: C              
SCENARIOS - - - - - - - - - -
> 1: Unregistered user post upload request and sign up   :large_blue_circle: R :large_blue_circle: R   :red_circle: C   :large_blue_circle: R :large_blue_circle: R    
> 2: Sharing a post   :large_blue_circle: R :red_circle: C       :large_blue_circle: R      
> 3: Commenting on posts :red_circle: C :large_blue_circle: R         :large_blue_circle: R      
> 4: Liking posts and comments   :large_blue_circle: R         :red_circle: C      
> 5: Search   :red_circle: C         :large_blue_circle: R      
MOCKUPS - - - - - - - - - -
> Scenario1 desktop :large_blue_circle: R :large_blue_circle: R :large_blue_circle: R :large_blue_circle: R  :large_blue_circle: R :large_blue_circle: R :large_blue_circle: R :large_blue_circle: R :red_circle: C :large_blue_circle: R 
> Scenario1 mobile           :large_blue_circle: R   :large_blue_circle: R   :red_circle: C 
> Scenario2 desktop :large_blue_circle: R :large_blue_circle: R :large_blue_circle: R :large_blue_circle: R  :large_blue_circle: R :large_blue_circle: R :large_blue_circle: R :large_blue_circle: R :red_circle: C :large_blue_circle: R 
> Scenario2 mobile           :large_blue_circle: R   :large_blue_circle: R   :red_circle: C 
> Scenario3 desktop :large_blue_circle: R :large_blue_circle: R :large_blue_circle: R :large_blue_circle: R  :large_blue_circle: R :large_blue_circle: R :large_blue_circle: R :large_blue_circle: R :red_circle: C :large_blue_circle: R 
> Scenario3 mobile           :large_blue_circle: R   :large_blue_circle: R   :red_circle: C 
> Scenario4 desktop :large_blue_circle: R :large_blue_circle: R :large_blue_circle: R :large_blue_circle: R  :large_blue_circle: R :large_blue_circle: R :large_blue_circle: R :large_blue_circle: R :red_circle: C :large_blue_circle: R 
> Scenario4 mobile           :large_blue_circle: R   :large_blue_circle: R   :red_circle: C 
> Scenario5 desktop :large_blue_circle: R :large_blue_circle: R :large_blue_circle: R :large_blue_circle: R  :large_blue_circle: R :large_blue_circle: R :large_blue_circle: R :large_blue_circle: R :red_circle: C :large_blue_circle: R 
> Scenario5 mobile           :large_blue_circle: R   :large_blue_circle: R   :red_circle: C 
MILESTONE I REPORT - - - - - - - - - -
> Summary of the project and overall status     :large_blue_circle: R         :red_circle: C    
> Decisions and choices made         :large_blue_circle: R :red_circle: C        
> Evaluation of tools and processes     :large_blue_circle: R           :red_circle: C  
> Challenges   :red_circle: C   :red_circle: C :large_blue_circle: R          
> Status of deliverables :large_blue_circle: R                  
> RAM (Responsibility assignment matrix)         :red_circle: C          
> List the deliverables     :red_circle: C   :large_blue_circle: R          

Evaluation of Tools

Github

While managing our project, we’ve made use of many different tools and processes, first and most important one being Github. Github has many different tools within itself that eases tracking, documentation and communication. Obviously we’ve made use of wiki and issue mechanisms and found how useful and essential they are to managing a project as a team. However, as we kept using them and as we progressed through Milestone-1, we realized how important it is to utilize the different properties these mechanisms provide us. Practices such as assigning a reviewee or setting clear deadlines for each issue is not only detrimental to the tracking of our project but also a priority as we progress to the implementation stages. These practices will also improve our usage of Github Roadmap which is another useful tool Github provides us. Our late transition to Roadmap hardened our adjustments later on but seeing a clear “roadmap” of our past and future plans, undoubtedly, will make things easier for us in the future.

Whatsapp, Discord and Zoom

Another important aspect of managing our progress as a team is communication. We maintained our communication through three main platforms: Whatsapp, Discord and Zoom and didn’t have many face to face meetings. We used Whatsapp the most, for anything regarding the project; Zoom for our online weekly meetings and Discord for communication with our assistant. Using mainly Whatsapp had its advantages and disadvantages. Being able to reach a team member instantly made small decision making easier and faster but tracking these decisions and returning to them became harder. We understood that communication is, without a doubt, essential to team work and we have to continue to search for ways of becoming more efficient with it.

Canva

Another online tool we made use of during the design of our project was Canva for our mockups. It made the designing process quite easy and assigning this task to someone with prior knowledge in it showed us the importance of leaning on experience.

Improving as a Team

Some of our meeting practices also helped in our involvement and improvement as a team. Asking questions, assigning issues instantly and trying new tools within or outside Github together in our meetings, not only improved our chemistry as a team but also our knowledge.