Skip to content

Aman-chatterjee/Musync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎵 Musync - Full Stack Music Streaming App

Musync is a full-stack music streaming app built with Flutter (frontend) and FastAPI (backend). It supports music uploads, playback, playlists, favorites, user authentication, and cloud storage — all with clean, modular architecture.


🚀 Features

📱 Flutter Client (Frontend)

  • 🧭 Riverpod State Management – Scalable and testable architecture.
  • 📱 Cross-Platform – Works on Android, iOS, and Web.
  • 🎵 Music Player UI – Stream uploaded tracks with sleek playback design.
  • 📂 File Picker – Upload music from device storage.
  • 💚 Favorites – Organize and relisten easily.
  • 🌐 Responsive UI – Optimized for multiple screen sizes.

⚙️ FastAPI Server (Backend)

  • FastAPI – Modern async Python backend.
  • 🧠 SQLAlchemy ORM – Pythonic database models and queries.
  • 🔐 JWT Authentication – Secure login/register.
  • 🗃️ PostgreSQL – Relational database for tracks, users, playlists.
  • ☁️ Cloudinary – Store and stream uploaded audio in the cloud.
  • 🐳 Dockerized Setup – Run the entire backend via Docker.

📸 Screenshots & Demo


Login Screen

Signup Screen

Home Screen

Music Player

Favorites

Upload Music

🛠️ Project Setup

📁 Project Structure

musync/

├── client/ # Flutter frontend

├── server/ # FastAPI backend (Docker-ready)


📱 Flutter Frontend Setup

Prerequisites:

  • Flutter SDK installed
  • Emulator or Android/iOS device
  • VS Code or Android Studio

Steps:

cd client
flutter pub get
flutter run

🧠 Make sure your backend URL in Flutter (e.g. ServerConstants) matches your host IP if testing on physical devices.

🖥️ FastAPI Backend Setup (Dockerized)

Prerequisites: • Docker & Docker Compose installed • Cloudinary account for music storage

Steps:

cd server
cp .env.example .env  # Add DB + Cloudinary credentials
docker compose up --build

📍 API docs available at: http://localhost:8000/docs

🔑 Environment Variables

Inside server/.env:

# PostgreSQL
DB_USER=postgres
DB_PASSWORD=your_password
DB_NAME=musync
DB_HOST=db
DB_PORT=5432

# JWT Secret
SECRET_KEY=your_jwt_secret

# Cloudinary Credentials
CLOUDINARY_API_KEY=your_key
CLOUDINARY_SECRET_KEY=your_secret

📬 Contact

• GitHub: @Aman-chatterjee

• Email: amanchatterjee121@gmail.com

Thanks for checking out Musync! 🎧✨ Star ⭐ the repo if you like it!

About

A Music Streamin App in Flutter, which uses Python FastApi and PostgressSQL as backend

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors