Migration to last.fm, removed old spotify api client. FOSRestBundle API serving data driven front end (JWT).

This commit is contained in:
boris committed 2026-02-27 16:52:57 +00:00
1 parent 391ecf1732
commit 56dea097d6
51 files changed
+1749 -844

No files matched your search

+12 -9
View File
@@ -1,6 +1,6 @@
# Tonehaus — Music Ratings (Symfony 7)
Discover albums via Spotify, write and manage reviews, and administer your site. Built with Symfony 7, Twig, Doctrine, and Bootstrap.
Discover albums via Last.fm, write and manage reviews, and administer your site. Built with Symfony 7, Twig, Doctrine, and Bootstrap.
## Quick start (Docker Compose)
@@ -23,10 +23,10 @@ docker compose up -d --build
docker compose exec tonehaus php bin/console app:promote-admin you@example.com
```
4) Configure Spotify
4) Configure Last.fm
- Go to `http://localhost:8085/admin/settings` and enter your Spotify Client ID/Secret, or
- Set env vars in `.env`: `SPOTIFY_CLIENT_ID`, `SPOTIFY_CLIENT_SECRET`
- Go to `http://localhost:8085/admin/settings` and enter your Last.fm API key, or
- Set env var in `.env`: `LASTFM_API_KEY`
5) (Optional) Seed demo data
@@ -42,11 +42,14 @@ Notes:
## Features
- Spotify search with advanced filters (album, artist, year range) and per‑album aggregates (avg/count)
- Last.fm-backed album search with advanced filters (album, artist, year range) and per‑album aggregates (avg/count)
- REST API under `/api/v1` for albums/reviews with JSON responses and proper HTTP verbs
- JWT authentication for protected API endpoints (`/api/v1/auth/login`) via LexikJWTAuthenticationBundle
- REST response handling via FOSRestBundle
- Album page with details, tracklist, reviews list, and inline new review (logged-in)
- Auth modal (Login/Sign up) with remember‑me; no separate pages
- Role-based access: authors manage their own reviews; moderators/admins can moderate content
- Admin Site Settings: manage Spotify credentials and public registration toggle
- Admin Site Settings: manage Last.fm API key and public registration toggle
- User Dashboard: profile updates and password change
- Light/Dark theme toggle (cookie-backed)
@@ -55,7 +58,7 @@ Notes:
- Setup and configuration: `docs/setup.md`
- Feature overview: `docs/features.md`
- Authentication and users: `docs/auth-and-users.md`
- Spotify integration: `docs/spotify-integration.md`
- Last.fm integration: `docs/lastfm-integration.md`
- Reviews and albums: `docs/reviews-and-albums.md`
- Admin & site settings: `docs/admin-and-settings.md`
- Troubleshooting: `docs/troubleshooting.md`
@@ -65,7 +68,8 @@ Notes:
## Environment overview
- `APP_ENV` (dev|prod), `APP_SECRET` (required)
- `SPOTIFY_CLIENT_ID`, `SPOTIFY_CLIENT_SECRET`
- `LASTFM_API_KEY`
- `JWT_PASSPHRASE` (used for JWT private key encryption)
- `APP_ALLOW_REGISTRATION` (1|0) — DB setting can be overridden by env
- `DATABASE_DRIVER` (sqlite|postgres), `DATABASE_URL` (when using Postgres)
- `DATABASE_SQLITE_PATH` (optional, defaults to `var/data/database.sqlite`)
@@ -74,4 +78,3 @@ Notes:
## License
MIT