A full-fledged full-stack music player application built using Spring Boot for backend APIs, Jetpack Compose for Android UI, and MySQL for the database. The app allows users to play 600+ songs from a local folder, manage playlists, and perform various audio control features.
- Project Overview
- Features
- Tech Stack
- Prerequisites
- Installation
- Running the Application
- Environment Variables
- API Documentation
- Screenshots
- Contributing
- License
SonicAura is a music player that leverages modern technologies to create a seamless audio experience. The backend is built with Spring Boot to manage songs, playlists, and user authentication using JWT. The Android app is developed with Jetpack Compose for an intuitive and responsive UI.
- 🔑 User Authentication with JWT tokens.
- 🎵 Play and manage 900+ songs from a MySQL Database.
- 📂 Create, update, and delete playlists.
- 🔄 API-driven architecture with Spring Boot for handling requests.
- 📱 Android app with Jetpack Compose for a modern UI.
- 🔧 State management with MVVM and Kotlin Coroutines.
- ☁️ Deployable on Amazon Web Services (AWS) with Docker containers.
- Java 17 with Spring Boot
- JWT for authentication
- MySQL for database
- Docker for containerization
- Amazon Web Services (AWS) for deployment
- Maven for project management
- Kotlin with Jetpack Compose
- MVVM Architecture
- Hilt for Dependency Injection
- Retrofit for API calls
- StateFlow for state management
- Java 17+
- Android Studio (preferably latest version with Kotlin DSL support)
- MySQL installed locally or on a cloud provider
- Docker for backend deployment
- Amazon Web Services (AWS) account (for deployment)
- Maven installed
git clone https://github.com/your-username/SonicAura.git
cd SonicAura-
Navigate to the backend directory:
cd sonic-aura-backend -
Install dependencies and build the project:
mvn clean install
-
Configure the
.envfile with your local or cloud environment variables:DB_HOST=localhost DB_PORT=3306 DB_NAME=sonicaura_db DB_USER=root DB_PASSWORD=your_password JWT_SECRET_KEY=your_jwt_secret -
Run the backend:
mvn spring-boot:run
-
Open the Android project directory in Android Studio:
cd sonic-aura-android -
Build the project and ensure all dependencies are installed:
./gradlew build
-
Run the app on an emulator or physical device.
-
Backend: Ensure the Spring Boot backend is running.
mvn spring-boot:run
-
Android App: Open Android Studio, build the project, and run it on an emulator or device.
Ensure you have the following variables configured in the .env file for both backend and Android app development:
# Backend
DB_HOST=localhost
DB_PORT=3306
DB_NAME=sonicaura_db
DB_USER=root
DB_PASSWORD=your_db_password
JWT_SECRET_KEY=my_secret_key
# Android App (if necessary)
BASE_URL=https://your-api-endpoint.com
For full API documentation, refer to the API.md file in the docs/ directory, which includes all the endpoints, request formats, and response formats.
Include relevant screenshots of the app and backend here to provide a visual overview.
Contributions are welcome! Please fork this repository and create a pull request with detailed descriptions of your changes.
This project is licensed under the MIT License. See the LICENSE file for details.