Welcome to the Spinsnitch monorepo! This project is a comprehensive solution for vinyl collection management and play-tracking, featuring a mobile app, a backend server, and a music recognition service.
This monorepo consists of three main components:
- mobile/: A Flutter-based mobile application for managing your vinyl collection, scanning barcodes, and identifying music.
- server/: A Go-based RESTful API server that handles collection data, Discogs integration, and user authentication.
- recognizer/: A Python/FastAPI microservice powered by
shazamioandffmpegfor high-performance music recognition.
To get the entire system running locally, you can use the Docker Compose setup provided in the server directory.
-
Clone the repository:
git clone https://github.com/farkmi/spinsnitch.git cd spinsnitch -
Configure Environment: Follow the configuration instructions in the server README to set up your Discogs API credentials and database settings.
-
Launch the backend services:
cd server docker compose up --build -
Run the mobile app: Follow the instructions in the mobile README to set up Flutter and run the application on your preferred platform.
- Discogs Integration: Import your vinyl collection directly from Discogs.
- Music Recognition: Identify what's playing using your device's microphone.
- Play Tracking: Log your listening history with ease.
- Cross-Platform: Available on Android, iOS, and Linux/Web.
For detailed information on each component, please refer to their respective documentation:
- Mobile Documentation
- Server Documentation
- Recognizer Documentation
This project uses GitHub Actions for continuous integration and delivery. Workflows are centrally managed in the .github/workflows/ directory.
This project is licensed under the MIT License.