CENG431 Building Software Systems Homework 3 Solved




5/5 - (1 vote)

In this homework you are expected to implement an “Music Player Application” with a
GUI. You should fulfill the concepts of:
 SOLID Principles
 MVC Design Patterns
 Swing
 Observer Design Pattern

In this platform, the users can like the songs they listen and create playlists up to their interest.
There are 5 types of playlists which are Sleeping, Workout, Dining, Meditation and Road
Trip. Also, the users will see other users’ playlists.

The GUI of the Music Player Application allows users:

 To login
 To listen a song by pushing a play button
 To create a playlist of songs
 To add/remove song from the playlist
 To like the song
 To follow/unfollow other users
 To view the followed users’ playlists

The songs’ information is stored in a TXT file of the following form:
On this platform, there are 6 types of genres which are Acoustic with id 1, Instrumental with
id 2, Rock with id 3, Hip-hop with id 4, Jazz with id 5 and Pop with id 6. Note that, track
duration is given in seconds, and track popularity refers to the number of plays. All this
information belong to songs will be displayed on this platform.
The created playlists on this platform, should be written on JSON file with the following
playlist_id,creator_user_name,playlist_name, playlist_type, number_of_songs, duration,

The user must enter the playlist name as an input and select one of the playlist types mentioned
above. Each time a new song is added to a playlist, the JSON file and the page that shows
playlists’ information should be updated. There should be no duplicate songs in the playlists.
There will be also a statistics page which will show the followings:
 The most liked song
 The most popular song
 The most followed user
 The shortest and longest playlists

Every time a user pushes the play button to listen to a song and/or performs a like operation,
the TXT file should be updated the popularity and/or the number of likes of the associated song.
Furthermore, if any of these operations affect any of the user’s playlists or the statistics page,
these changes should be applied on these as well.
The user information is stored in an XML file file with the following information:

When a user performs follow/unfollow operation the XML file should be updated. You should
create an XML file which consists of at least 5 users including the instructor and the teaching
assistants of this course. The playlists, following users and follower users should be
displayed on a user’s profile page.
Both the txt and the XML files should be loaded first when the program starts. After a user
create a playlist, the JSON file should be created too, and it should be updated when necessary.
NOTE: Please try your best to make your software user friendly and make sure it is expressive
enough to the user.

Usability Testing: If you have enough time you can create a check list of every functionality
that your software has and ask your friends to perform each functionality without giving them
any hint. If your friends succeed in every functionality, then your software’s usability is quite

Project Submission Rules

1. Cheating is not allowed. If any cheating has been detected, they will be graded with 0
and there will be no further discussion on this.
2. You are expected to submit your project in groups. Therefore, only one of you will be
sufficient to submit your project.
3. Make sure you export your project as Eclipse projects. You can use other IDEs as
well, however, you must test if it supported by Eclipse.

4. If you are using an external library, make sure that “.jar” library is in your project after
you exported it. Unfortunately, from our previous experiences we have encountered
project submissions that uses libraries from their “Desktop”.
5. Please submit your project through Cloud-LMS (
6. Please export your Java Project as the given format with your assigned.
Example: (Your group IDs will be announced on Microsoft
7. Please be informed that your submissions may be anonymously used in software
testing and maintenance research studies. Your names and student IDs will be replaced
with non-identifying strings. If you do not want your submissions to be used in
research studies, please inform the instructor (Dr. Tuglular) via e-mail.