Trackory exists to provide a simple, structured way to collect and organize music titles without the complexity of full media playback systems.
It offers a focused solution for managing music metadata with explicit boundaries, prioritizing clarity, control, and long-term maintainability over unnecessary features.
Most music-related systems are designed around playback, streaming, or recommendation engines.
This introduces complexity that is unnecessary for users and systems whose primary need is to catalog and organize music titles .
Trackory was initiated to close this gap by offering a lightweight, intentional system dedicated to managing music collections and playlists, without media handling concerns.
The purpose of Trackory is to deliver a system that reliably manages collections of music titles while maintaining clear boundaries and long-term evolvability.
The project prioritizes correctness, simplicity, and architectural integrity over feature breadth or multimedia functionality.
At its core, Trackory treats music as data , not as media.
Trackory is intended for:
- Backend services that require structured music metadata management
- Internal tools used to organize and catalog music collections
- Developers seeking a clean, extensible foundation for music-related data systems
At a high level, the system is responsible for:
- Storing music titles as structured records
- Organizing music titles into playlists or collections
- Managing optional metadata such as artist, genre, and release year
The system is intentionally focused on collection and organization , not consumption.
Trackory does not aim to:
- Provide music playback or streaming functionality
- Handle audio files or media encoding
- Act as a recommendation or discovery engine
- Serve as a full-featured music platform
- Optimize prematurely for scale, performance, or distribution
The project operates under the following high-level constraints:
- Implemented in Python
- Structured using the Model–View–Controller (MVC) pattern
- No database or persistent storage in the initial phase
These constraints are intentional and may evolve over time.
The project is organized as follows:
music-controller/
├─ docs/
│ ├─ architecture.md
│ └─ scope.md
├─ src/
│ ├─ controllers/
│ │ ├─ __init__.py
│ │ ├─ playlist_creator_constructor.py
│ │ ├─ playlist_creator_controller.py
│ │ └─ song_register_controller.py
│ ├─ main/
│ │ ├─ __init__.py
│ │ └─ process_handler.py
│ ├─ constructor/
│ │ ├─ __init__.py
│ │ └─ song_register_constructor.py
│ ├─ models/
│ │ ├─ entities/
│ │ │ ├─ __init__.py
│ │ │ └─ music.py
│ │ └─ repositories/
│ │ ├─ __init__.py
│ │ └─ music_repository.py
│ └─ view/
│ ├─ __init__.py
│ ├─ first_view.py
│ ├─ playlist_creator_view.py
│ └─ song_register_view.py
├─ .gitignore
├─ LICENSE.md
├─ README.md
└─ run.py