Home Covey.Town (feat. Spotify), CS4530 Fundamentals of Software Engineering Final Project
Post
Cancel
view

Covey.Town (feat. Spotify), CS4530 Fundamentals of Software Engineering Final Project

Source Code: covey.town (feat. spotify)
Demo: netlify
Collaborators: hirparap1, JohnQuell, SamBarton1003

Introduction

I took Northeastern’s CS4530: Fundamentals of Software Engineering in Spring 2022 as part of my capstone requirement and this is my group final project. The course was designed to simulate “the experiences of a software engineer joining a new development team: you will be “onboarded” to our codebase, make several individual contributions, and then form a team to propose, develop and implement a new feature.” The codebase used for my semester was a remote collaboration tool called Covey Town. Development was done using Typescript and a React UI.

The rest of this blog post is derived from our final project report and my individual reflection.

Feature Overview

Our product features the ability for users to share music on the social gathering site Covey.Town. This is accomplished by allowing users to link their personal Spotify accounts during login. If connected, the user’s Spotify current listening activity, selected playlist, and username is displayed alongside that player’s avatar to all players in Covey.Town. The original concept for our project came from the observation that Covey.Town, a social platform, lacked one of the most powerful forms of communication, music. Our original idea was to allow users in a town the ability to play music for one another. We imagined users could have read/write access to a queue of songs that would likely play for users in a designated zone. While investigating this possibility, another team memeber mentioned his experience working with the Spotify REST API so we pivoted into researching the capabilities offered there. Here the idea to display a pop-up alongside user avatars showing that users’ listening activity was born. The display active now took form through the back and forth suggestions during code reviews.

The greatest limiting factor to our feature came from the Spotify API’s capabilities. Instead of broadcasting music through a conversation area, for instance, we found it much easier to display the links to a user’s active listening activity and make those links clickable to users in Covey.Town. Additionally, while brainstorming user stories for the project plan, we thought of offering a manual editing option to users who chose not to link a personal Spotify account. But, we broke away from the idea because we were able to quickly set up fetch calls to Spotify’s API and associate the responses to a backend player object. Because this was completed early in our Sprint 0, we did not feel the need to set up offline editing to accommodate reaching progress in our other user stories.

Because Spotify prohibits school projects from getting full access to their APIs, our Spotify API application is limited to 25 users. If you are interested in connecting your personal Spotify account to Covey.town, you can request access from me directly.

CRC Cards

CRC 1 CRC 2 CRC 3

Running Locally

Instructions for running the app locally can be found in the README.

This post is licensed under CC BY 4.0 by the author.