MyTunes
MyTunes is a simple desktop app that helps people listen to, organize, and enjoy their favorite music, completely without needing the internet.
MyTunes is a simple desktop app that helps people listen to, organize, and enjoy their favorite music, completely without needing the internet.
The MyTunes application is designed for individuals who want a streamlined, offline-focused music management experience. This includes:
MyTunes provides a clean, modular platform for managing a personal music library with key features designed to enhance usability and organization:
We discuss our experiences in creating MyTunes app and what we learned during the process.
of Team 10 - ShiftHappens
Learned how to configure sqlite as a database for Java. Experimented with GUI testing for system tests. Understood Gradle build system on a deeper level.
Designing application architecture and package structuring. AGILE workflow of fixing technical debt. Iteration planning and project management.
Learned how to design user interfaces with JavaFX and connect them to a SQLite backend. Gained experience with iterative development and maintaining clear, organized documentation.
Learned a basic understanding of the JavaFX framework and how to build responsive applications with it. A better understanding of tech debt and when it was ok to introduce tech debt if it meant having a functioning iteration.
Learned how to use Git for collaborative development and version control. Gained experience building user interfaces with JavaFX. Explored Go and Hugo to understand scripting and static site generation workflows.
MyTunes is a simple desktop app that helps people listen to, organize, and enjoy their favorite music, completely without needing the internet.
MyTunes is made for people who like to keep their music on their own computer and want an easy way to sort and enjoy it. When someone opens MyTunes, they can sign in to their personal account and see their full list of songs right away. The app makes it easy to look through music by typing in the name of the singer, the title of the song, the album, the kind of music, or even a word from the lyrics. People can also make up their own labels—called tags—to help group songs however they like.
Users can create playlists by picking songs and giving the list a name, like “Workout Mix” or “Sunday Morning.” Songs in a playlist can be played in order, and tags can be used to gather songs with similar moods or themes. For example, someone might tag songs with “chill,” “party,” or “instrumental” and then look up that tag later to find all the songs that match. These tags work like smart folders that update whenever songs are added or changed.
MyTunes is built for music lovers who still enjoy keeping their own music collection, rather than relying on online music services. It’s great for casual listeners who just want something simple and private, collectors who like sorting music their own way, and anyone who doesn’t want their music choices tracked or shared online.
All the music, playlists, and user settings in MyTunes are saved on the user's own computer. Nothing is stored online, but each user can still sign in with their own account to keep their music and preferences separate. This means users always have access to their music, even without the internet. It also means no ads, no waiting for songs to load, and no risk of losing access if an online service shuts down.
With MyTunes, users are in full control. They can sort music by their own rules, play it their way, and keep everything safe and personal. The app is easy to use and made to fit into everyday life without hassle.
We will consider MyTunes a success if it meets the following goals: search results appear quickly and accurately, even for users with large music collections; during a trial period, nearly all users (at least 99 out of 100) can organize and enjoy their music without losing any saved content; and after several weeks of use, a strong majority (at least 85 out of 100) report that the app is easy to use and helps them find their music efficiently.
The MyTunes application is designed for individuals who want a streamlined, offline-focused music management experience.
This includes:MyTunes provides a clean, modular platform for managing a personal music library with key features designed to enhance usability and organization:
These features together support a complete offline music management workflow with emphasis on usability, clarity, and modularity.
After the Iteration 2 retrospective, our team identified several key areas for improvement that we aimed to address in the final development cycle. One of the most important changes was the adoption of a formal peer code review process. We established a rule that no code could be merged into the main branch without review and approval from at least one other team member. This approach not only helped catch bugs early but also improved code quality and encouraged collaborative problem-solving.
We also made a conscious decision to narrow the scope of each iteration moving forward. Rather than overcommitting, we limited ourselves to two or three core features per cycle, allowing us to focus on delivering well-tested and fully integrated functionality. This shift in planning helped us manage our time more effectively, especially during a busy academic schedule. Alongside this, we improved our task breakdown process by splitting larger features into smaller, more manageable development tasks. This made it easier to track progress and allowed different members to work in parallel without stepping on each other’s work.
Another major improvement was our commitment to revisiting and refactoring existing code. We recognized that certain areas of the project—especially those developed quickly in earlier iterations—had accumulated technical debt. In Iteration 3, we used our extra time not only to build new features but also to restructure classes, eliminate redundant logic, and improve method readability across the codebase.
These improvements proved highly effective. The peer review process was followed consistently and resulted in fewer integration issues. Our scoped approach to feature delivery kept the team focused and on track. And the refactoring efforts, though not immediately visible in the user interface, significantly elevated the maintainability and professionalism of the overall project. In retrospect, these changes marked a turning point in our development process and provided a strong foundation for future work, both in this course and beyond.