Skip to content

aviatorcards/StudioSync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

67 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

StudioSync (Beta)

Note: StudioSync is currently in active Beta. While it is feature-complete for most studio management tasks, please back up your data regularly as we approach a stable 1.0 release.

StudioSync Logo

Sync your music studio, students, and schedule β€” all in one place.

An open-source, self-hosted alternative to My Music Staff, built for the modern music educator.

License: GPL-3.0 Next.js Django Docker


✨ Features

πŸŽ“ Student & Family Management

  • Comprehensive Student Profiles – instrument, enrollment status, progress
  • Band/Group Organization – groups, photos, members, genre
  • Enrollment History – lesson counts, journey tracking

πŸ“… Intelligent Scheduling & Lessons

  • Smart Calendar – recurring patterns, conflict detection, online/in‑person lessons, cancellations, make‑ups, no‑show tracking
  • Rich Lesson Docs – notes, practice assignments, ratings, repertoire, file attachments, visibility controls
  • Reusable Lesson Plans – templates, skill‑level targeting, duration, tags, sharing

πŸ’° Billing & Financial Management

  • Automated Invoicing – from lessons, band‑level billing, tax, status tracking
  • Multiple Payment Methods – cash, check, card with Stripe integration, Venmo, PayPal, Zelle, etc.
  • Financial Intelligence – late‑fee automation, overdue alerts, saved payment methods, professional branding

πŸ“¦ Inventory & Resource Management

  • Physical Inventory – instruments, equipment, condition, location, low‑stock alerts
  • Digital Library – PDFs, audio, video, external links, tagging, size/MIME tracking
  • Practice Room Reservations – capacity, equipment, hourly rates, conflict detection, payment tracking

πŸ’¬ Communication & Notifications

  • In‑App Messaging – threaded, multi‑participant, attachments, read/unread, topics
  • Multi‑Channel Notifications – email, SMS, push, lesson reminders, invoice alerts, resource notifications, system announcements (SMS has not been tested yet)

🎯 Goals & Progress Tracking

  • Student Goal Management – targets, dates, percentage progress, status, notes, teacher collaboration

πŸ“Š Analytics & Reporting

  • Real‑Time Dashboard – customizable widgets, quick stats, upcoming lessons, activity feed, studio health metrics
  • Exportable Reports – student progress, financials, attendance, others - all able to export to Excel, CSV, or JSON

🏒 Studio Management

  • Studio Layout Editor – 2D canvas (React‑Konva), drag‑drop rooms, item library, rotation, resizing, printing (IN DEVELOPMENT)
  • Teacher Management – profiles, specialties, hourly rates, availability, booking buffers, qualifications
  • Location & Timezone Detection – IP geolocation auto-fills your timezone, city, and country during setup and in studio settings

🎨 Design System & Customization

  • Dynamic Theming – 8+ color schemes, real‑time switching, dark mode (coming soon)
  • Appearance Customization – font sizes, compact mode, CSS variables, glassmorphism, modern dialogs

πŸ” Security & Access Control

  • Authentication – email login, password recovery, session handling
  • Role‑Based Permissions – Admin (full), Teacher (read-only billing), Student, Parent with granular controls and tailored dashboards
  • Enhanced Instructor Permissions – Instructors (Teachers) now have read-only access to studio billing and invoices for transparency, while management remains restricted to Admin users.

🐳 Deployment & Infrastructure

  • One‑Command Docker – full stack (PostgreSQL, Django Q, Django, Next.js) via Docker Compose
  • Production Setup Script – guided first-run wizard for configuring secrets, Stripe, Twilio, Stream Chat, and file storage

πŸš€ Quick Start

Prerequisites

  • Docker & Docker Compose
  • Node.js >= 20.9.0 (frontend development)
  • Python 3.11+ (backend development)

Option 1 β€” Production Setup (recommended)

Runs a guided wizard that generates a secure .env, connects your integrations (Stripe, Twilio, Stream Chat), and creates your admin account.

git clone https://github.com/aviatorcards/StudioSync.git
cd StudioSync
./scripts/init-production.sh

The script will prompt you for:

  • Stripe keys (billing & invoices)
  • Twilio credentials (SMS notifications)
  • Stream Chat keys (real-time messaging)
  • File storage preference (local Docker volume or S3/R2)
  • Your admin email and password

All integrations are optional β€” you can skip any and add them later by editing .env and running docker compose restart.

Option 2 β€” Demo Setup

Spins up a pre-seeded environment with sample students, lessons, and resources. Useful for evaluating the app before committing to a full setup.

./scripts/init-demo.sh

Demo login: admin@demo.com / demo123

Option 3 β€” Manual Setup

git clone https://github.com/aviatorcards/StudioSync.git
cd StudioSync

# Copy and edit the environment file
cp .env.example .env

docker compose up -d
docker compose exec backend python manage.py migrate
docker compose exec backend python manage.py createcachetable

Then open the setup wizard at http://localhost:3000/setup to configure your studio and admin account.

Access Points

Service URL
Frontend http://localhost:3000
API Docs http://localhost:8000/api/docs
Django Admin http://localhost:8000/admin

βš™οΈ Configuration

StudioSync is configured via a .env file in the repo root. The production setup script generates this for you; for manual setups, copy .env.example as a starting point.

Key integrations

Integration Env vars What it enables
Stripe STRIPE_PUBLISHABLE_KEY, STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET Invoices, payment processing
Twilio TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN, TWILIO_PHONE_NUMBER SMS notifications
Stream Chat STREAM_API_KEY, STREAM_API_SECRET Real-time messaging
S3 / R2 AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_STORAGE_BUCKET_NAME Cloud file storage

All integrations are disabled when their env vars are blank. Email is configured at runtime via Admin β†’ Core β†’ Email Configurations (no env vars required).


πŸ› οΈ Tech Stack

Frontend

  • Framework: Next.js 16 (App Router)
  • Styling: Tailwind CSS + vanilla CSS
  • State/Data: React Query, Context API
  • Icons: Lucide React
  • Animations: Framer Motion
  • Charts: Recharts
  • Reports: ExcelJS (Excel export)

Backend

  • Framework: Django 5.0 + Django REST Framework
  • Database: PostgreSQL (data, cache, background tasks)
  • Real‑time: Django Channels (InMemoryChannelLayer)
  • Task Queue: Django Q

πŸ“‚ Project Structure

studiosync/
β”œβ”€β”€ backend/            # Django REST API & core logic
β”‚   β”œβ”€β”€ config/        # Settings & URL routing
β”‚   β”œβ”€β”€ apps/          # Modular apps (students, lessons, billing, etc.)
β”‚   └── scripts/       # Utility scripts
β”œβ”€β”€ frontend/           # Next.js application
β”‚   β”œβ”€β”€ app/           # App Router (pages & layouts)
β”‚   β”œβ”€β”€ components/    # Reusable UI components
β”‚   β”œβ”€β”€ contexts/      # Auth & appearance state
β”‚   └── services/      # API communication layer
β”œβ”€β”€ docs/               # Technical documentation
β”œβ”€β”€ scripts/            # Deployment & maintenance scripts
β”‚   β”œβ”€β”€ init-production.sh  # Guided production setup
β”‚   └── init-demo.sh        # Pre-seeded demo environment
└── docker-compose.yml  # Container orchestration

πŸ“„ License

Distributed under the GPL‑3.0 License. See LICENSE for more information.


Made with ❀️ by the StudioSync Team

About

Music studio management for a single individual or an entire school!

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors