A Spotify-like music analytics platform that provides music recommendations, tracks user listening history, and shows statistics. Built with Spring Boot microservices and React.
Home page showing music recommendations
Statistics page displaying top tracks
User activity tracking interface
- Project Overview
- Technologies Used
- Running the Application
- Project Structure
- Key Features
- Future Enhancements
- Contributing
- License
This platform consists of several microservices that work together to provide music analytics and recommendations:
- Recommendation Service: Suggests music based on user preferences and listening history
- Statistics Service: Analyzes listening patterns and generates usage reports
- User Tracking Service: Captures user interactions such as searches and playbacks
- API Gateway: Routes requests to appropriate services
- Eureka Server: Handles service discovery and registration
- Frontend: React-based user interface
- Backend: Java Spring Boot, Spring Cloud
- Frontend: React.js
- Service Discovery: Netflix Eureka
- Container Orchestration: Docker & Docker Compose
- Java 17 or higher
- Node.js and npm
- Maven
- Docker and Docker Compose
- Windows users can use the
build_and_run.batscript to automate the build and run process
-
Start the Service Registry (Eureka Server)
cd eureka-server mvn spring-boot:run -
Start the API Gateway
cd api-gateway mvn spring-boot:run -
Start the Microservices
# Start Recommendation Service cd recommendation-service mvn spring-boot:run # Start Statistics Service cd statistics-service mvn spring-boot:run # Start User Tracking Service cd user-tracking-service mvn spring-boot:run
-
Start the Frontend
cd frontend npm install npm start -
Using Docker Compose
docker-compose up --build
-
Using the
build_and_run.batscript (Windows)build_and_run.bat
- Frontend Application: http://localhost:3000
- Eureka Dashboard: http://localhost:8761
- H2 Database Console (User Tracking): http://localhost:8084/h2-console
- JDBC URL: jdbc:h2:mem:usertrackingdb
- Username: sa
- Password: (leave empty)
The application follows a standard microservice architecture:
MusicAnalyticsPlatform/
├── api-gateway/ # API Gateway service
├── eureka-server/ # Service discovery
├── recommendation-service/ # Music recommendation logic
├── statistics-service/ # Analytics and statistics
├── user-tracking-service/ # User behavior tracking
├── frontend/ # React-based UI
└── docker-compose.yml # Container orchestration
- Music recommendation engine
- User activity tracking
- Listening statistics and analytics
- Microservices architecture with service discovery
- Containerized deployment
- User authentication and profiles
- Machine learning-based recommendation engine
- Extended analytics dashboard
- Mobile application
Contributions are welcome! Please fork the repository and submit a pull request.
- Fork the repository and create your branch from
main. - If you've added code that should be tested, add tests.
- Ensure the test suite passes.
- Make sure your code lints.
- If you haven't already, complete the Contributor License Agreement ("CLA").
This project is licensed under the MIT License. See the LICENSE file for details.