From an academic perspective, our senior design project will demonstrate our ability to create a functional product that requires interaction between many different technologies. Throughout our academic careers, assignments have predominantly been focused on learning and demonstrating a specific task. None of these tasks, alone, create a functional product. While all of use have had co-op experience that has exposed us to how many different technologies interact with each other in a professional software environment, this senior design project will be a way for us to demonstrate our ability to develop product in an academic environment. This is beneficial, not only academically, through its primary purpose of demonstrating to the university the knowledge we have gained through our education, but also professionally, by putting our work in an open-source environment that can be viewed by potential employers, unlike the work we do on co-ops that is often unable to be shared.
My college curriculum has prepared me for this senior design project by teaching me the basics of a lot of the skills that will be needed over the next two semesters of the project. Aside from general programming skills, courses like my Software Engineering course taught an overview of software design and the strategies and processes related to it. What I learned in Software Engineering will be especially beneficial during the first semester when our group is planning out the structure/design of our project. It has already come in handy for creating the user stories and design diagrams. Other courses like Database Theory and Algorithm Analysis will also be beneficial when creating the backend for our project and creating the algorithm that will compare users based on their Spotify data.
My co-op experience will also help greatly over the course of the development process for our project. My most recent co-op at Paycor exposed me to functional databases, as opposed to theoretical topics discussed in courses, where I got to learn SQL and how our different servers, databases, and tables worked together. This experience will be very beneficial when it comes time to design and implement the backend for our project. My Paycor co-op also taught me how to work on a team efficiently. I enjoy working on projects as a group, as opposed to individually, like I did on my other co-ops, because I enjoy the cooperative design and learning process. My favorite part of the job is working together with people so solve a joint problem, because I get more satisfaction from that than I do when only working on my own.
The idea for our project started as an idea for a small personal project I wanted to do, but has now evolved into a large-scale project that my original idea is just a small part of. I listen to a lot of music, and love sharing music I’m into with others. When I meet someone new, one of the first topics of conversation is usually out music tastes. I had the idea to write some code to create an intersection of two people’s “Liked Songs” playlists on Spotify so that the people could see what songs they both liked in one playlist. Surprisingly, I was not able to find any service that already existed that could do playlist intersections, so I wanted to do it myself. I also enjoy using services that are already available that let you analyze your own Spotify data. Since the process for intersecting two playlists is not complicated enough to justify being a Senior Design project, my teammates and I came up with the idea to create a service that takes your Spotify data (like existing services already do using the Spotify API), and matches you with other people whos’ Spotify data shown similar characteristics. When users match, they will be given an intersection of their liked songs, as well as shown the music similarities that caused them to match. This would be a great way for people to find others who share the same tastes in music as they do!
We expect the end result of our project to accurately match people based on the data Spotify has on their music listening habits, as well as providing other features expected of similar services, such as a simple chat functionality so that matches do not have to give out their personal information to every match. We will know our project is completed when we satisfy all of the user stories that we create and can consistently match users that have given our service permission to access their Spotify data. Further in the planning process, we will create tickets for specific tasks and meet often to make sure all group members are making progress. We will assist each other when necessary and re-assign tasks as necessary to balance the workload.