This repository contains a full-stack Track Management Platform built with a Symfony 6+ REST API and a Vue 3 frontend application.
The system provides a clean and extensible foundation for managing music tracks, including validation, editing, and real‑time UI updates.
It is designed with modern backend and frontend best practices, modular architecture, and a clean developer experience.
- Create, list, and update music tracks
- Strong validation for:
- Title
- Artist
- Duration (seconds)
- ISRC format (
^[A-Z]{2}-[A-Z0-9]{3}-\d{2}-\d{5}$)
- JSON responses with structured error messages
- Doctrine ORM integration
- Service-layer business logic (clean separation of concerns)
- Track list with automatic refresh
- Create and edit forms using Vue 3 Composition API
- Duration input in
mm:ssconverted into seconds - ISRC validation feedback
- Axios-based API communication
- Lightweight styling with clean UI layout
- Symfony 6+
- PHP 8.4+
- Doctrine ORM
- Symfony Validator
- Symfony Forms (API mode)
- Symfony HTTP Client (optional for extensions)
- Vue 3 + Composition API
- Pinia Store (or reactive refs)
- Axios / Fetch API
- Vite
- TypeScript optional (project supports it)
composer installCopy .env to .env.local and set your DB connection.
php bin/console doctrine:database:create
php bin/console doctrine:migrations:migratesymfony serveAPI base URL:
http://localhost:8000/api/tracks
cd frontendnpm installnpm run devThe frontend will interact with the Symfony API at:
http://localhost:8000/api/tracks
Returns all tracks.
Creates a new track.
Example payload:
{
"title": "Song Title",
"artist": "Artist Name",
"duration": 215,
"isrc": "GB-ABC-22-12345"
}Updates a track.
backend/
src/
config/
migrations/
public/
tests/
README.md
frontend/
src/
components/
views/
store/
public/
README.md
This project can be enhanced with:
- Pagination and search
- Multi-artist models
- Album associations
- Audio file upload
- Authentication + roles
- Track analytics dashboard
- Audio preview player
This repository provides a clean, modern full‑stack application for managing music tracks.
With a robust Symfony backend and a reactive Vue 3 interface, it serves as a strong foundation for music tools, dashboards, or catalog management systems.