Skip to content

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Advanced Programming | Practicum Final

Creating a program that consists of materials from module 1 up to 6.


Group from 3A Informatics

  • Anindya Estiningtyas (202410370110255)
  • Nindi Laura Salsabila (202410370110300)

🎵 Project: Song Player with Account System

This program has the goal to successfully play a song. To fulfill other requirements, we added account system where the user needs to login. Different account has their own personal song collection. Consider it as a Favorite Playlist.

We took inspiration from the basic music player apps and Spotify on mobile.


✨ Features

  • Account-Based

The login screen is the first thing user sees. They are prompted to have an account to be able to access the program. After that, they can play songs they own or delete their account.

Feature Name Functionality Achieved
Account Login Allows user to login to their own account, so they access their own song collection. ✅ Yes
Account Creation Allows user to create a new account if they don't have yet. ✅ Yes
Password Change The Forgot Password? text link to help users reset their password if they forget. ✅ Yes
Account Deletion Allows user to delete their account. [Is located on Song List after login.] ✅ Yes
  • Simplistic (Appearance-Focus)

The easier it is to use, the better. This can be achieved by straight-forward information display and avoid info-dumping to the user. The analysis is done for each screen.

Screens Functionality Achieved
Login Screen - Clear prompt to Login by the huge label.
- The headphone icon gives away the thought that this is a program related to audio, most likely song or music.
- The fields are clear contrast against the black background.
- The "eye" to hide/show password stands out since it consumes a partial of the password field.
- Buttons to reset password, login, and create a new account are explicitly stated.
✅ Yes
Create New Account - Fields are the same as Login Screen, making it familiar for user to operate.
- An option to go back to login screen if they changed their mind.
✅ Yes
Change Password - A field for the username and 2 fields for password, ensuring that the new password is memorable so that user will not reset it again. ✅ Yes
Song List - A table, which is the main feature of the screen, showing contents of the song's thumbnail, title, and singer. It also has a button to play the song.
- A button to logout and back to the login screen.
- A button to delete the logged account.
✅ Yes
Song Play - A beautiful interface consists of the song's cover image, title, singer, progress slider, stop and play/pause button, and a button to go back to the song list.
✅ Yes
  • Core Features

The main goal of this program is to play music successfully. This is the analyze of each steps.

Steps Functionality Achieved
Account User can successfully login, create, reset password, and delete account. Logging in brings user to the song list ✅ Yes
Song List The list of songs shows up as intended. The play button works perfectly. ✅ Yes
Song Play The song plays as intended. The play/pause button works as intended. However, there are errors:
- The stop button does not reset the song. It messes up the UI. (logic error)
❓Half-way
Adding new Song It is impossible to add a new song as it is not in the function. Thus, new accounts will not have any songs in it. ❌ No
Removing a Song Removing a song from the list is also not included as a feature. ❌ No

🔨 Things used

  • Database
    • .csv (Comma-Separated Values: user data, user's songs)
  • Assets
    • .png, .jpg (Images: song cover)
    • .wav (Audio: the songs)

⚠️ Obstacles

There are few new challenges that we faced, such as:

  • An attempt to load audio file in Java Swing. It natively only allows .wav, so we had to convert the .mp3 files.
  • Tried to make round edges on the components, such as text field and buttons.
  • Coloring and adjusting, making sure that everything is visible and nice to the eyes.
  • Managing the classes and files. As of the time we write it, the classes are still dumped on only 2 files.
  • Branching and merging was not smooth due to inexperiencce. The progress of a code was reverted due to clicking the wrong button.

About

Untuk pemenuhan tugas UAP Pemograman Lanjut

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages