Discover concerts based on your favorite tracks — explore events, discuss them, and manage tickets effortlessly.
Musement is an interactive platform that helps users find their next live music experience. By importing your playlists from Spotify, the app analyzes your favorite artists, ranks them by listening frequency, and searches for upcoming concerts in your area. Beyond tailored event recommendations, Musement encourages social engagement: invite friends, join group outings, and discuss shows in dedicated concert threads. Manage your tickets in-app, store media securely in the cloud, and keep up with friends’ musical adventures — all from one intuitive interface.
- User Authentication: Sign up with email/password or Google OAuth2
- Playlist Integration: Import and parse playlists from Spotify
- Personalized Recommendations: Artist frequency ranking drives concert suggestions
- Social Interaction: Subscribe to friends and see which concerts they’re attending
- Discussion Threads: Comment and share experiences under each concert event
- Ticket Management: Store, view, and manage tickets within the app
- Cloud Media Storage: Upload and serve photos/videos via Cloudinary
| Purpose | Technology |
|---|---|
| UI (Android) | Android SDK |
| HTTP Framework | Spring Boot |
| ORM | Hibernate |
| Database | PostgreSQL |
| Full-Text Search | Elasticsearch |
| HTTP Client (Android) | Retrofit |
| Music Data Source | Spotify API |
| Authentication | Google Play Services Auth |
| Media Storage | Cloudinary |
| Testing | JUnit |
Our high-level architecture consists of the following components:
-
Client (Android): Native Android app uses Retrofit and Google Auth modules to send requests.
-
Security Filter: Validates incoming requests and passes authenticated calls to the server.
-
Server:
- Controllers: Expose REST endpoints.
- Services: Implement business logic (playlist parsing, recommendations, social features).
- Repositories: Handle data persistence (Hibernate).
-
Musement DB (PostgreSQL): Persists users, playlists, artists, events, tickets, and threads.
-
External Services:
- Spotify API: Fetches user playlist data.
- Cloudinary: Stores and serves user-uploaded media.
This project contains two main modules of the Musement app:
Backend/: Spring Boot based REST API server (see Backend/README.mdFrontend/: Android application built with Android SDK (see Frontend/README.md)
Developers:
Mentor:
National Research University Higher School of Economics, St. Petersburg, Spring 2025
