Milestone 1 Report - bounswe/bounswe2023group4 GitHub Wiki

CMPE 352 Group 4 Milestone 1 Report

Contributors

  • Selin Işık
  • Ahmet Emre Şafak
  • Ali Nasra
  • Emre Batuhan Göç
  • Ali Alperen Sönmez
  • Enes Furkan Arslan
  • Yusuf Suat Polat
  • Halil Özkan
  • Yiğit Şekerci

Table of contents

1. Executive Summary

1.1 Introduction

Introducing Prediction Polls, a sophisticated platform designed to enable users predict future events, share their opinions and insights with the world! As a part of our milestone report, we are pleased to present our innovative platform that empowers our users to participate in a diverse range of polls on topics ranging from politics to pop culture, and gauge how their views compare to those of other members.

You will quickly look for polls and profiles utilizing our user-friendly, intuitive interface's keyword, category, and username search functionality. Furthermore, our cutting-edge privacy settings will provide you total control over your profile and behavior, guaranteeing that your privacy is safeguarded.

As a valued member of our community, you will have the opportunity to connect with other users by adding friends, sharing accomplishments, and engaging in the comment section of polls. Furthermore, our poll creation feature will allow you to initiate conversations and gain valuable insights on topics that are of significance to you.

1.2 Project Status

As of right now, our project has gone through a preliminary setup phase during which several important tasks have been finished. The team has taken the required actions to set up templates and a wiki for documentation reasons as well as putting in place a meeting structure to speed up project development. Additionally, the project's logistics, comprising requirements, software design documents, and a project plan, have been developed.

The team members initially established individual wiki pages describing their educational and professional backgrounds, skill sets, and interests. The next step was for each team member to construct their ideal repository page in order to learn more about what makes an excellent repository. The team also chose to use Discord and WhatsApp as their major communication platforms, further information is available in sections 4.1 and 4.2 of this report.

Upon completion of the initial setup, we commenced research on project requirements, collaborating closely with our customer to ensure that their needs were fully understood and incorporated into the project plan. In light of our customer's requests, we prepared mock-ups and commenced the diagramming process. It is important to note that feedback from our customer was critical in the decision-making process, and we took great care to adapt our design documents and requirements based on their feedback.

In summary, we have successfully completed the essential design process and necessary tasks, taking into account feedback from our customer at every stage of the project.

1.3 Future Plans

As we move on to the implementation phase, the steps we have already taken will still be of great value to us in creating team cohesion. The project's implementation is currently our main goal, albeit the exacts of how we'll do so are still to be worked out. It is critical to understand that the project's specifications and design papers are inherently subject to change because particular design decisions could change with time. However, we believe that the current documents do the best job possible of capturing our needs.

As we move forward, it may be prudent to consider dividing our team into specialized sub-teams, such as an Android team, to streamline the implementation process. By doing so, we can leverage the expertise of each team member to ensure that each component of the project is executed with the utmost precision and efficiency.

2. List and Status of Deliverables

2.1 Deliverable 1 (Project Repository)

Issue Status Assignee Reference
Issue Tracking Completed Halil Özkan #69
Wiki page control Completed Halil Özkan #63

2.2 Deliverable 2 (Requirements)

Issue Status Assignee Reference
Requirements Completed Ahmet Emre Şafak #58
Mock Up Completed Selin Işık #68
Use Case Scenarios Completed Ahmet Emre Şafak, Selin Işık #62

2.3 Deliverable 3 (Software Design Documents in UML)

Issue Status Assignee Reference
Use Case Diagrams Completed Yusuf Suat Polat #70
Class Diagrams Completed Ali Nasra #59
Sequence Diagrams Completed Emre Batuhan Göç, Ali Alperen Sönmez #57

2.4 Deliverable 4 (Project Plan, RAM, Communication Plan)

Issue Status Assignee Reference
Project Plan Completed Selin Işık, Halil Özkan #67
Communication Plan Completed Enes Furkan Arslan #66
RAM Completed Enes Furkan Arslan #65

2.5 Deliverable 5 (Milestone Report)

Issue Status Assignee Reference
Milestone 1 Report Writing Completed Yiğit Şekerci #61

3. Evaluation of the status of deliverables

3.1 Deliverable 1

The first deliverable required is the project repository. We have tried our best to keep up with the best practices and to conform to them. As a team, we checked each other's work, created issues, tracked the issues, and reviewed each other's works. Thus, we believe that we have produced a solid repository although the repository only consists of a readme and wiki pages yet.

3.2 Deliverable 2

Second deliverables are software requirements specification, scenarios, and mock-ups. As a team, we try to make sure that requirements are unambiguous, valid, and verifiable. Thus, we have come up with pretty solid requirements that describe our project. Building up on the requirements, one of our team members created the software requirements specification for the team. We have checked it as a team, and we are satisfied with the outcome. Next up is mock-ups. Mock-ups were important for validating the requirements with the stakeholders and we were aware of this. We have divided the mock-ups between two of our members and they have produced mobile and web mockups for the requirements. We have presented this requirements in the class and we keep the mock-ups up to date. We believe that our team has produced very valuable mock-ups and we are satisfied with it too. Lastly, we have created scenarios from the use case diagrams we have previously produced. We had divided the use case diagrams equally between all the team members. However, we realized that the more the assignees the more the delay. Thus, we have assigned the creation of scenarios task to two of our team members and held them responsible. Fortunately, they proved responsible and have produced scenarios from each of the use case diagrams. The team has reviewed it and are satisfied with it.

3.3 Deliverable 3

Class diagrams provide a comprehensive structural representation of a software system, portraying the classes, their attributes, and their interrelationships. Being an essential initial step in the design phase, we began our software development process by creating class diagrams. Next, we proceeded with the construction of use case diagrams, which offer a high-level depiction of the system, illustrating various user types, their objectives, and interactions with the software system. Based on the information obtained from the use case and class diagrams, we developed sequence diagrams, presenting the interactions between objects in the software system in a chronological manner, facilitating the comprehension of the message flow between different parts of the system. Despite the significant time and effort invested in these documents, we discovered deficiencies in our system when we constructed the sequence diagrams. Consequently, we appointed team members to maintain consistency across the diagrams. Notwithstanding the challenges, these diagrams remain invaluable tools for software developers, designers, and stakeholders, providing a concise representation of the software system, aiding in communication, collaboration, and decision-making during the software development lifecycle. It is inevitable that we need to adjust the diagrams in future but the team is satisfied with current progress.

3.4 Deliverable 4

We tasked particular team members with taking care of this problem in order to guarantee the prompt completion of the delivery before the milestone date. We defined the roles and duties of each team member, assessed the number of hours needed for each work, and effectively distributed resources to build a RAM. We paid close attention to this task because a well-built RAM enables project managers to efficiently manage resources, reduce risks, and guarantee project success. We are happy to report that our diligent team members were successful in building a RAM that complies with industry standards.

In addition, we assigned the task of creating a project plan to a different team of team members. They started by recording the resources we had used in earlier jobs to gauge the effectiveness of our method. They then came up with a strategy to guarantee the future success of our project. A communication strategy was created concurrently to make sure that all project team members, stakeholders, and clients were updated on the status, modifications, and advancement of the project. We are satisfied with outcome since it underwent a thorough examination and approval procedure.

3.5 Deliverable 5

The final deliverable in question is the Milestone Report. Thus far, we have made significant progress; however, it is imperative that we document our achievements and shortcomings to avoid any potential setbacks in the future. As there remain certain ambiguous and incomplete aspects to our project, we have designated a specific individual to oversee the compilation of this report and have also allocated the remaining work to other members of the team. The designated individual has been in communication with team members to monitor their progress and has accordingly updated the report with their respective statuses.

4. Evaluation of tools and processes

4.1 Discord

  • We have used Discord for mostly project-related stuff for example sharing draft diagrams.
  • We conducted our meetings in Discord.
  • Discord's text channels allowed us to categorize our conversations.
  • Discord's talk priority feature helped the moderator in our meetings to resolve heated discussions more easily.

4.2 WhatsApp

  • We talked in WhatsApp mainly timing related issues for example determining the time for the next meeting.
  • Its poll system helped us to find the right time slots for our meetings asynchronously.
  • Some of us made brainstormed in this area but they were more likely to be forgotten than considered for the project because of the informal nature of the platform.

4.3 Github

  • We have used GitHub as a version management system for our project.
  • We have used GitHub's document system wiki to store our research and milestones.
  • GitHub allowed us to make our work asynchronously.
  • Its version control system allowed us to revert unwanted changes.
  • Its issue system allowed us to follow what needs to be done and what is being done more easily.
  • Flag system helped us to categorize our issues to help non-assignee viewer navigation in issues.
  • Issue template feature helped us to create our issues in the same pattern.

4.4 Figma

  • Figma is a special tool for the designer to make their design more easily and better looking.
  • We have used Figma to design our Mock-Ups in a modern way.

4.5 Diagrams.net

  • Diagrams.net is a tool for designing diagrams.
  • We have used diagrams.net for designing use cases, sequence diagrams, and class diagrams.
  • It's easy to understand UI and drag&drop mentality in elements helped us to create our diagrams very fast.

5. Individual Contribution Reports

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