MuSpace

Software Project Management Plan (SPMP)

1. Introduction

1.1 Project Overview

MuSpace is a music-based social media platform focused on connecting music fans with one another and allowing them to share their tastes with the world. Each MuSpace user will be provided with a personal feed to post about songs, albums, artists, and playlists that they are interested in. Users will be able to add friends on MuSpace and look at their detailed Spotify listening history. Users will also be able to view detailed statistics about their listening habits, such as listening time, favourite genres, favourite artists, and more.

1.2 Project Deliverables

No. Deliverable(s) Group Deadline(s) Marking Deadline
1 Software Requirement Specification (SRS) May 25th, 2021 May 28th, 2021
Software Requirement Specification (SRS) Review May 27th, 2021
2 Software Project Management Plan (SPMP) June 1st, 2021 June 4th, 2021
Software Project Management Plan (SPMP) Review June 3rd, 2021
3 Analysis June 22nd, 2021 June 25th, 2021
Analysis SQA June 24th, 2021
4 Design June 13th, 2021 June 16th, 2021
Design Review June 15th, 2021
5 Implementation August 13th, 2021 August 15th, 2021
Implementation SQA August 14th, 2021
6 User Documentation August 11th, 2021 August 15th, 2021
User Documentation Review August 13th, 2021
7 Final Publishing & Deployment August 14th, 2021 August 15th, 2021

1.3 Reference Materials

1.4 Evolution of the SPMP

As the team continues through the development process, updates will be made regularly to the SPMP to reflect any changes implemented. Version history will be handled using Google Docs’ editing history feature. At the end of each week, our team leader will review the SPMP to ensure that each team is on track and make any necessary changes.

The specific sections to be updated are:

1.5 Definitions and Acronyms

1.5.1 Definitions

1.5.2 Acronyms and Abbreviations

2. Project Organization

2.1 Process Model

This project will follow a 7 phase SDLC outlined below:

Stage 1: Project Planning

Stage 2: Gathering Requirements & Analysis

Stage 3: Design & Prototyping

Stage 4: Software Development

Stage 5: Testing

Stage 6: Deployment

Stage 7: Operations & Maintenance (Post Submission)

2.2 Organizational Structure

Using the agile approach, we will be starting on the back-end of the project and the UI design as a group. As soon as the UI design is finished and laid out, the front-end developers will begin development. Concurrently, the back-end developers will also begin development. Everything worked on will be done through sprints.

2.2 Project Responsibilities

No. Deliverable(s) Group(s) Group Deadline
1 Software Requirement Specification (SRS) All Members May 25th, 2021
Software Requirement Specification (SRS) Review May 27th, 2021
2 Software Project Management Plan All Members June 1st, 2021
Software Project Management Plan Review June 3rd, 2021
3 Analysis All Members June 22nd, 2021
Analysis SQA June 24th, 2021
4 Design All Members July 13th, 2021
Design Review July 15th, 2021
5 Back-end Implementation Nausher, Robert, Daner, Nish, Jagveer, Jacob, Mathumithan July 27th, 2021
Back-end Implementation SQA Front-end team July 29th, 2021
Front-end Implementation Adrian, Kelvin, Nausher, Robert, Adepeju, Declan, Daner, Jiten, Gur-Armaan, Farzan, Jagveer July 27th, 2021
Front-end Implementation SQA Back-end team July 29th, 2021
6 User Documentation All Members August 10th, 2021
User Documentation Review August 12th, 2021
7 Final Publishing & Deployment All Members August 12th, 2021

3. Managerial Process

3.1 Management Objectives and Priorities

The main objective of this project is to develop a web-based music application that will eventually branch out to Android and iOS. This uses the Spotify API and Spotify SDK to connect people listening to similar styles of music. By the end of the term (August, 5th 2021), our goal is to have all project deliverables (the SRS, the SPMP, analysis, document, design documentation, back-end implementation, front-end implementation, and user documentation) complete. By then our goal is to also have a complete well-implemented version of our application, which would be heavily Quality Tested. This project's major priority is to have an easy-to-understand, easy-to-read, consistent, and informative set of documentation as well as a seamless project flow. Since the project has no monetary funding, the completion of deliverables is solely dependent on our time and resources.

3.2 Monitoring and Controlling Mechanisms

Our group meetings take place every Tuesday and Thursday during lectures, where we send one person to listen to the lecture, in this case, Jagveer. During this time, we split into groups for sprints, where work ethic is peer-checked.

All calls are done via Discord (as in a person is not applicable), Documentation is done on Google Docs and then transferred onto our project webpage. The UI is designed on Figma. The Github project is our team's central repository for code and resources

SQA is conducted when sprints are done. The process is conducted by those not in the sprint to ensure that quality control is unbiased.

3.3 Risk Management / User Privacy / User Safety

  1. Risk: Too many users attempting to connect to the website/application. This can overload any of our back-end components by creating too many concurrent requests and crashing.
    Solution: Access to the site will be throttled by Buttflare - Buttflare is a DNS service that also provides DDOS mitigation. Buttflare limits the number of people that can concurrently access the website.

  2. Risk: Someone who programs a bot to sign up as a user on the platform and send spam messages/harasses to others, overload the system by sending too many requests, or automate certain tasks.
    Solution: All account creation, user sign-in and important actions will be verified using Google reCaptcha v2 to assure that the user is indeed human and not a bot. See Risk 4 for the answer for spam messages.

  3. Risk: An account sends too many chat messages in a certain amount of time (spam).
    Solution: All messages will be rate-limited site-wide to about 5 messages per second.

  4. Risk: The application is offline due to maintenance, traffic, or other uncertain factors.
    Solution: A page will be displayed for the duration of the offline activity that explains to the user why the application is offline, and how long it’ll take to get back online.

  5. Risk: A new component added to the codebase could make another previous component unstable.
    Solution: Anytime a new feature or piece of code is added, we perform adequate testing.

  6. Risk: Spotify or any fundamental API or resource that we are using changes their terms of services or copyright laws.
    Solution: A substitute can be searched for when this happens - no other solution exists for this type of risk.

  7. Risk: A user experiences harassment, hate, or anything negative.
    Solution: The user can report another user by going onto their profile, This feedback is then stored in the database. The developers will be checking reports often.

  8. Risk: Data not being securely sent over the internet to the MuSpace server.
    Solution: All data will be securely transferred from a client to the server with Google Firebase’s implementation of data privacy and security. All endpoints used on Firebase are secured through Google’s servers. See here for more information on how Google Firebase uses security.

  9. Risk: Another person hacks into your account.
    Solution: We will use OAuth2 to make sure that the person is who they say they are. See here for more information on how OAuth2 uses security.

4. Technical Process

4.1 Methods, Tools and Techniques

Technologies:

Project Management Tools:

Project Support Functions:

4.1.1 Feature Specific Requirements

4.2 Software Documentation

Software documentation will be taken in all phases of development and planning, to ensure that the implementation of the software satisfies the requirements.
The following documentations are required as a minimum:

Name Standard/Template Reviewed By
Requirements Document Modified IEEE Entire Team
Project Management Document Modified IEEE
Analysis Document Modified IEEE
Design Document Modified IEEE
User Document Modified IEEE
Participation Record (Hours) Self-documentation using internal Excel sheet Adrian
Source Code Modified IEEE All Developers

4.2.1 Software Requirements Specification (SRS)

Up to date SRS Documentation.

4.2.2 Software Design Description (SDD)

We will be using JavaScript, TypeScript, CSS, and HTML as the languages for the project. These languages are the easiest to implement for a web application of this magnitude which requires the front-end and back-end to work with each other seamlessly. Without the hassle of separate code bases for both. JavaScript and TypeScript are also ideal languages that have a great capability of handling asynchronous server-side requests.

We will be using ReactJS, StyledComponents, and Semantic UI to create the front-end of the application - this is the code that will be executed and displayed client-side using a built-in browser JavaScript engine, such as Google’s V8 JavaScript Engine.

For the back-end of the application, we are using Node.js to run a headless Chromium instance to execute server-side code. The back-end will integrate the Spotify SDK Spotify API to draw all user data - artists, albums, genres, and songs that the artist listens to. The API can also extract music listening and other statistics. This data will be used to connect with other users using a scoring system and to discover new music. The Spotify Web SDK will be used to play music using the user's Spotify account in the web app. The SDK requires the users to have a Spotify account.

The other portion of the back-end uses Google’s suite of APIs included in Google Firebase. These are but are not limited to Firestore and Authentication. Firestore will be used to store a lot of data:

The code styling and conventions have been outlined in this Github document.

4.2.3 Software Test Plan

4.3 User Documentation

All pieces of code will be properly documented in order to ensure clarity of the purpose and function of the program. Up to date user documentation will be posted on our projects wiki page, which can be found here: MuSpace Wiki. All other documents can be found on our project webpage here: MuSpace Documentation.

5. Money/Cost

Meme from Despicable Me movie: In terms of money, we have no money

This project is solely dependent on the time and effort of the developers. No monetary funding is collected or needed. All resources (frameworks, APIs, etc.) are free and open-source with the exception of purchasing a one-year domain subscription that was divided equally between all team members. A Spotify Account is required for developing and testing Spotify SDK features.

6. Extra Details

Version History:

Authored by: