This project is a music collection application that allows users to manage and interact with their music library.
- Album Management: Browse and organize your music collection by albums
- Settings Panel: Customize application appearance and behavior
- Responsive Design: Enhanced UI for various screen sizes
Before you begin, ensure you have the following tools installed:
- Go (version 1.23 or higher)
- Taskfile:
A task runner for automated workflows and commands.go install github.com/go-task/task/v3/cmd/task@latest
3.Air Live reload for Go apps
go install github.com/air-verse/air@latest4.Templ:
A Go package for safe and efficient HTML/templating.
go install github.com/a-h/templ/cmd/templ@latestThis project uses Taskfile to manage build tasks and dependencies. Here's how to use it:
To see all available tasks in the project:
task
# or
task --list-allTo build the application:
task buildThis will:
- Generate Go code from Templ templates with
templ generate - Compile the application to
./out/music-collection
To build and run the application:
task runFor live reload using Air:
task devThis will run templ generate as well as build and execute
the Go build output executable. This will then re-run each time
project files are changed.
This command:
- First executes the
buildtask as a dependency - Then runs the compiled binary located at
./out/music-collection
/views: Contains Templ template files for the UI components/models: Data models including settings definitions/data: Music collection data management/static: CSS styles organized by component/styles/styles.css: Main application styles/styles/album.css: Album view styles/styles/settings.css: Settings panel styles/styles/colour.css: Color scheme definitions
- Backend: Go with Echo framework
- Frontend: HTML/CSS with Templ templating
- Build System: Taskfile for task automation
- Modify template files in
/viewsdirectory and runtempl generatebefore building - CSS is organized by component for easier maintenance
- The application uses a component-based architecture for better code organization