Skip to content

A small Python application that organizes songs and playlists and sorts music by genres and user queries. It includes a CLI/main entrypoint and a GUI module for interactive use.

License

Notifications You must be signed in to change notification settings

zeynep-m/MusicGenreSortingProgram

Repository files navigation

Music Genre Sorting Program

  • Project:: Music genre sorting and playlist manager implemented in Python.

Overview

  • What it is:: A small Python application that organizes songs and playlists and sorts music by genres and user queries. It includes a CLI/main entrypoint and a GUI module for interactive use.

Key Features

  • Playlist management:: Create, edit and save playlists using playlist.py and library.py.
  • Song model:: Song metadata and helpers are in song.py.
  • Database layer:: Persistent save/load logic lives in database_manager.py.
  • Queries & sorting:: Search and genre-sorting helpers are in query.py.
  • GUI:: A lightweight GUI front-end in music_app_gui.py for interactive playlist creation.

How it works (high-level)

  • main.py: Simple entrypoint to run the app (CLI or GUI). Use this to launch and test the program.
  • library.py / playlist.py: In-memory structures for libraries and playlists; they call into database_manager.py to persist data.
  • song.py: Defines the Song model used across the app.
  • database_manager.py: Handles reading/writing of the application's data files.
  • query.py: Implements lookup and sorting algorithms used to classify and filter songs by genre or other attributes.
  • music_app_gui.py: Provides a simple graphical interface to interact with playlists and songs.

Installation

  • Python version:: Tested on Python 3.10+ (use a virtualenv recommended).
  • Dependencies:: No external packages required by default. If you add GUI toolkits (e.g., tkinter), ensure they are available on your system.

Install and run locally:

python3 -m venv venv
source venv/bin/activate
# (optional) pip install -r requirements.txt
python3 main.py

Usage

  • Run the app with python3 main.py — this will start the default interface (CLI or GUI depending on how main.py is implemented).
  • To use the GUI specifically, run python3 music_app_gui.py.
  • For quick manual checks, run python3 manual_test.py.

Development notes

  • Files of interest: database_manager.py, library.py, playlist.py, song.py, query.py, music_app_gui.py, main.py.
  • If you add dependencies, add them to requirements.txt and update the README.

License

  • This repository includes an LICENSE file (MIT by default).

Originality statement

  • Original idea:: This project and the ideas implemented in it are original and were conceived and developed by me and my teammate (the repository owners). I developed the concept, design, and the code in this repository.

Contact & attribution

  • If you publish or reuse this code, please keep this README and the license file and give appropriate attribution to the original author.

About

A small Python application that organizes songs and playlists and sorts music by genres and user queries. It includes a CLI/main entrypoint and a GUI module for interactive use.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages