- Full PWA support with offline capabilities - Comprehensive search across songs, playlists, and channels - Offline playlist manager with download tracking - Pre-built frontend for zero-build deployment - Docker-based deployment with docker compose - Material-UI dark theme interface - YouTube audio download and management - Multi-user authentication support
2.7 KiB
2.7 KiB
SoundWave Frontend
React + TypeScript + Material-UI frontend for SoundWave audio archiving platform.
🎨 Features
- Pixel-perfect Login Page - Matches the design specification exactly
- Dark Theme - Deep blue/purple color scheme
- Material Design - Using Material-UI components and icons
- Responsive Audio Player - Full playback controls
- Modern Architecture - React 18 + TypeScript + Vite
🚀 Development
Install Dependencies
npm install
Run Development Server
npm run dev
The app will be available at http://localhost:3000
Build for Production
npm run build
The build output will be in the dist/ directory.
📁 Project Structure
src/
├── api/ # API client and endpoints
├── components/ # Reusable components
│ ├── Sidebar.tsx
│ ├── TopBar.tsx
│ └── Player.tsx
├── pages/ # Page components
│ ├── LoginPage.tsx # Pixel-perfect login page
│ ├── HomePage.tsx
│ ├── LibraryPage.tsx
│ ├── SearchPage.tsx
│ ├── FavoritesPage.tsx
│ └── SettingsPage.tsx
├── theme/ # Material-UI theme
├── types/ # TypeScript definitions
├── App.tsx # Main app component
└── main.tsx # Entry point
🎨 Design System
Colors
- Primary:
#5C6BC0(Indigo) - Secondary:
#7E57C2(Deep Purple) - Accent:
#4ECDC4(Cyan - for login page) - Background:
#0A0E27(Very Dark Blue) - Paper:
#151932(Dark Blue-Gray)
Login Page Colors
- Left Side:
#A8DADC(Light Cyan) - Right Side:
#F1F3F4(Light Gray) - Logo: Dark Navy
#1D3557+ Cyan#4ECDC4 - Button:
#2D3748(Dark Gray)
🔌 API Integration
The frontend connects to the Django backend API at:
- Development:
http://localhost:8000/api/ - Production: Configured via proxy
📱 Responsive Design
The application is optimized for:
- Desktop (1920x1080 and above)
- Tablet (768px - 1024px)
- Mobile (coming soon)
🛠️ Technologies
- React 18 - UI library
- TypeScript - Type safety
- Material-UI (MUI) - Component library
- Vite - Build tool
- React Router - Navigation
- Axios - HTTP client
🔐 Authentication
The login page integrates with the Django backend authentication system. Upon successful login, a token is stored in localStorage and used for subsequent API requests.
🎵 Audio Player
The built-in audio player features:
- Play/Pause controls
- Progress bar with seek
- Volume control
- Previous/Next track
- Shuffle and Repeat
- Now playing information
Enjoy building with SoundWave! 🎧