Skip to content

hfchen1006/MusicLibrary

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Music Library System (Java, OOP)

Overview

This project is a music library application built in Java using object-oriented programming principles. It allows users to manage songs, albums, and playlists, with features such as ratings, favorite songs, search, and shuffle functionality.

This project demonstrates object-oriented design, modular architecture, and real-world data management features in a structured Java application.

This repository is included as part of my personal software portfolio.


Features

  • Manage songs, albums, and playlists
  • Add, remove, and search songs
  • Rating system (1–5) for songs
  • Automatic identification of favorite songs
  • Shuffle functionality for playlists
  • File-based album data handling
  • Unit testing with JUnit

My Contribution

My individual work on this project included:

  • Designing and implementing object-oriented classes such as Song, Album, Playlist, User, and Rating
  • Building playlist management features including adding, removing, and organizing songs
  • Implementing a song rating system and favorite-song logic
  • Developing shuffle functionality for playlist playback
  • Creating a model-based structure through LibraryModel.java to manage application logic
  • Working with file-based album data stored in the albums folder
  • Writing and maintaining unit tests in JUnitTest.java

Technologies

  • Java
  • Object-Oriented Programming (OOP)
  • JUnit
  • File I/O

How to Run

  1. Open the project in Eclipse or another Java IDE
  2. Make sure the source files are under src/proj1
  3. Compile the Java files
  4. Run the main application class (e.g., View.java or a designated entry point if available)

Project Structure

  • Song.java – represents individual songs
  • Album.java – represents albums and song collections
  • Playlist.java – manages playlist behavior
  • Rating.java – handles song rating logic
  • User.java / Users.java – supports user-related data
  • LibraryModel.java – manages application logic and state
  • View.java – handles user interaction
  • MusicStore.java – supports music library/store behavior
  • JUnitTest.java – unit tests for core functionality

Purpose

This project demonstrates object-oriented design, modular programming, and implementation of user-focused features in a structured Java application.

About

Java music library system with playlists, ratings, favorites, and shuffle functionality

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages