Skip to content

anuragzete/VibeOn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VibeOn - Music Streaming API

VibeOn is a Spring Boot–based REST API for a music streaming platform. It provides functionality for managing users, songs, and playlists, along with secure authentication and AI-powered features using Ollama.


Features

  • User authentication and authorization (JWT-based)
  • Playlist management (create, update, delete)
  • Song management and playlist association
  • Playlist-song mapping with ordering support
  • File handling for songs and images
  • AI integration using Ollama (Mistral model)
  • Generic AI service for structured and unstructured responses

Tech Stack

  • Java 17
  • Spring Boot
  • Spring Data JPA (Hibernate)
  • MySQL
  • Spring Security (JWT)
  • Spring AI (Ollama)
  • Lombok
  • Maven

AI Integration

The project includes a generic AI service built on top of Ollama:

  • Uses Spring AI ChatClient

  • Accepts dynamic prompts

  • Returns:

    • plain text responses
    • structured JSON mapped to Java objects
  • Handles markdown-formatted responses (e.g., ```json blocks)

  • Centralized parsing and error handling

This enables use cases such as:

  • content generation
  • recommendation logic
  • structured AI-driven responses

Project Structure

src/main/java/com/project/vibeon
│
├── controller         # REST controllers
├── service            # Interfaces
├── serviceimpl        # Business logic implementations
├── repository         # JPA repositories
├── entity             # Database models
├── dto
│   ├── request        # Request DTOs
│   └── response       # Response DTOs
├── config             # Security and application configs
├── filter             # Security filters (JWT, etc.)
├── util               # Utility classes
├── exception          # Global exception handling
├── Application.java   # Entry point

Database Schema (Core)

  • app_user
  • song
  • playlist
  • playlist_song (mapping table with position and metadata)

Setup Instructions

1. Clone the repository

git clone <repo-url>
cd vibeon

2. Configure MySQL

Update application.properties:

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/vibeon?createDatabaseIfNotExist=true&useSSL=false&serverTimezone=UTC
spring.datasource.username=your_username
spring.datasource.password=your_password

Ensure MySQL is installed and running on your system.


3. Build the project

mvn clean install

4. Run the application

mvn spring-boot:run

API

Base URL:

http://localhost:8080

Endpoints include:

  • authentication and authorization
  • playlist management
  • song operations
  • AI-powered features

License

This project is licensed under the MIT License.


Notes

  • Uses JPA relationships instead of manual foreign key handling
  • Repository methods follow entity field naming conventions
  • AI responses are parsed into typed objects when required

About

VibeOn is a Spring Boot–based REST API for a music streaming platform.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors