Milestone 1 report - bounswe/bounswe2023group3 GitHub Wiki

CmpE 352: Fundamentals of Software Engineering - Milestone 1 Report

Spring 2023 - Group 3

Contributors


Table of Contents

  1. Executive Summary
  1. List and Status of Deliverables
  2. Evaluation of the Status of Deliverables
  3. Evaluation of Tools and Processes
  4. Individual Contribution Reports

1. Executive Summary

1.1. Introduction

Our project is about a platform where users open “polls” for the other users (and themselves) to make predictions about the properties of events that will be settled in the future. Predictions are evaluated for their accuracy once the property they guess is settled, which then counts towards the rating of its user. Events are to be tagged/categorized, and consequently, users’ scores will also be tagged/categorized. Users may or may not be able to control the public availability of the collective estimate of the properties before they are settled, which is one of the many design decisions the team should make. Profile badges, achievements, and other social features are some others to be considered alongside the scores to hook the users in.

1.2. Project Status

A good project requires detailed and careful preperation before the actual implemention starts. With this in mind, we have focused on the requirements, design and planning parts of our project so far, and we are building the base of our project step by step with care. The implemention of the project hasn't started yet and we are working on the designing process. Our collective work up to now can be mainly listed as below:

  • We created a Wiki page
  • Everyone created their own About Me Page
  • To communicate easier, we created a Discord channel
  • We created a Read Me page
  • To share files easier, we created a Google Drive folder
  • We discussed about the requirements and the aim of the project
  • We selected a communicator and a not taker of the meetings
  • We created a draft for our mockups and chose a drawing tool for creating these
  • We assigned the mockup pages to smaller groups
  • We discussed about the properties of UML diagrams and brainstormed about how ours should be
  • We assigned the Use Case, Class and Sequence diagrams to group members
  • We assigned the task which is creating the milestone 1 report to group members

1.3. Future Plans

In the future of our project, we plan to revise, hence extend our project requirements, and other design drafts. Later, we will continue assigning different parts of the project to the group members and specialize further about the project. We will be identifying and allocating some major tasks related to our system, continue planning and making milestones. After the completion of all the design and planning processes, we will begin with the implementation.


2. List and Status of Deliverables


3. Evaluation of the Status of Deliverables

Project Repository

Our main project repository can be accessed on Github here. You can read a brief description of the project and get information about our group members through this site. We begin to work on our project repository by preparing our introductory pages and each of us added a page about our researh on interesting/useful github repositories, we selected a repository and gave a brief introduction about it on our research page. This research helped us visiualise how our own project repository should be, and guided us along the way.

In our wiki section, you can find a list of pages we created in order to find out more about our design process and check out the work we have done so far. In our repository, we have also created many issues, and the development of the project, task allocation, and comments/discussions on some topics can be seen in these issues.

Requirements

Software requirements are a huge part of this project, and we carefully attended the task of requirement specification. After our discussions in our group meetings, we started with a glossary for the requirements. We decided on the main elements of our project and explained what each of them would mean in the context of this project. Then, we opened an issue for requirement specification. We discussed the possible and most logical requirment ideas on our meetings, we opened a channel for discussion on newly proposed requirement specifications by the group members, and started adding the requirements of our system to our github repository. We classified the requirements as functional or non-functional, and within functional requirements we seperated the user and system requirements.

We mentioned some requirements about authentication, possible user, moderator and guest actions our user requirements section. On system requirements, we proposed some requirements about ranking system, user roles, poll types, rating, categorization and so on. In general we decided what our system should be able to do in this section, and explained what the polls in this platform would be able to perform and how so. Lastly, we specified some non-functional requirements such as portability, privacy, security and performance related requirements. Overall, we gave great attention to this step of our group project, and created many useful and detailed requirements to the system. Moreover, we will continue on revising and updating our requirements in the coming weeks.

Software requirements specification can be found here.

Mockups

We created some mockups so that we would be able to visualise the sytem we are going to build better, and have this guide us along the way. We created different screen mockups for different scenarios (according to whom the actor would be in the platform). We created a home page mockup for a user and on a seperate mockup, showed how the detailed view of a poll would be like. We designed how the profile of another user, and how the user's own profile would look like. We created some mockups about user poll creation request screen, moderator's view of pending requests and approval screens.

Overall, we created our mockups according to the software requirements we specified and although these mockups are not final and just show how our platform can potentially look like, we payed great attention to detail and tried to design as best as we can.

Click here to see mockups.

UML Design Documents

We designed UML diagrams for our system to help us in the implentation step our project. We built the class diagram in order to specify the main elements of our system and showed how the relationship between each of them would be like. We listed the main attributes of the classes and proposed some methods for each of them. We also created a sequence diagram by showing the sequence of how an action would go, how an actor, a class, and the database would be related to the action, and how an action would affect the status of the system. We created sequence diagrams about poll interaction actions, sign up and log in, poll filtering, poll creation process actions and so on.

Project Plan

Our project plan can be found here.

RAM

Our Responsibility Assignment Matrix can be found here.

Communication Plan

On the first meeting of our group, we discussed the possible time slots/platforms of our future meetings. By time, we decided on our communication plan as such:

  • Weekly meetings: Face to Face/Discord(Wednesday 20.00)
  • Fast Communication: Whatsapp(Whenever)
  • Project Updates: Github(Almost Daily)
  • Our communication plan can be found here.

Milestone Report

On our first milestone report, we introduce ourselves and our project, present our current deliverables, evaluate each step on our way here, make a general evaluation, and report our contributions.


4. Evaluation of Tools and Processes

Github

We used github to upload our complete tasks, create relevant issues, communicate with each other and revise our works. We have been managing our project through github, and with this platform we can easily track the status of each task related to the project, assign ourselves or other group members some tasks, or see the updates on the project. Github makes the process of developing a group project smoother, and helps us with its user friendly interface.

Discord

We used the server created for the course to communicate with the teaching assistant and with each other. Then we created our own group server and made different channels for different topics. Discord was used as the basis for our written communication, and we kept each other updated through here.

Canva

We used Canva to prepare our Mockups for the Home Page, Detailed View Of A Poll, Profile of Another User, User's Own Profile, Poll Creation Request, Moderator's View of Pending Requests and Moderator's View of Pending Requests. We chose Canva, because with this platform we can easily create some simple user interfaces. Canva helped us visualize our project better, revise our requirement ideas, and it made the later design process faster.

Draw.io

We created the Use Case, Class and Sequence diagrams of our project through draw.io. Draw.io is a common platform for creating UML diagrams and has very useful tools. This platform gives our diagrams a more standard and professional look.

Whatsapp

We used Whatsapp mainly for fast communication, and to arrange the meeting times.

Google Drive

We created a Google Drive folder to share our documents with the group members. We can see our common work through Github easily, but Google Drive was also used to make quick uploads of drafts to a common folder.


5. Individual Contribution Reports