Skip to content

Abhishek-Bansode/sonicaura

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SonicAura 🎶

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.

Table of Contents

  1. Project Overview
  2. Features
  3. Tech Stack
  4. Prerequisites
  5. Installation
  6. Running the Application
  7. Environment Variables
  8. API Documentation
  9. Screenshots
  10. Contributing
  11. License

Project Overview

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.


Features

  • 🔑 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.

Tech Stack

Backend:

  • Java 17 with Spring Boot
  • JWT for authentication
  • MySQL for database
  • Docker for containerization
  • Amazon Web Services (AWS) for deployment
  • Maven for project management

Android App:

  • Kotlin with Jetpack Compose
  • MVVM Architecture
  • Hilt for Dependency Injection
  • Retrofit for API calls
  • StateFlow for state management

Prerequisites

  • 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

Installation

1. Clone the Repository

git clone https://github.com/your-username/SonicAura.git
cd SonicAura

2. Backend Setup (Spring Boot)

  • Navigate to the backend directory:

    cd sonic-aura-backend
  • Install dependencies and build the project:

    mvn clean install
  • Configure the .env file 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

3. Android App Setup (Jetpack Compose)

  • 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.


Running the Application

  1. Backend: Ensure the Spring Boot backend is running.

    mvn spring-boot:run
  2. Android App: Open Android Studio, build the project, and run it on an emulator or device.


Environment Variables

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

API Documentation

For full API documentation, refer to the API.md file in the docs/ directory, which includes all the endpoints, request formats, and response formats.


Screenshots

Include relevant screenshots of the app and backend here to provide a visual overview.


Contributing

Contributions are welcome! Please fork this repository and create a pull request with detailed descriptions of your changes.


License

This project is licensed under the MIT License. See the LICENSE file for details.


Additional Resources

About

SonicAura is a feature-rich music streaming API built with Java and Spring Boot. It enables seamless user management, song retrieval, and playlist creation with robust role-based access control. Key features include JWT authentication, caching with Redis, OpenAPI documentation, and secure admin operations.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors