A full-stack music management platform with secure user authentication, cloud storage emulation, and seamless audio playback.
- 🔐 Secure Authentication
JWT-based user registration and login system - 🎶 Music Management
Upload, store, and organize MP3/WAV files - ☁️ Cloud Storage Emulation
LocalStack-powered S3 bucket for file storage - 📊 Data Persistence
DynamoDB integration for metadata management - 🎧 Instant Playback
Built-in audio player in the music gallery - 🐳 Containerized Deployment
Dockerized environment for easy setup
- Docker 20.10+
- Docker Compose 2.0+
- Modern web browser
# Clone the repository
git clone https://github.com/rasoul6094/soli-music-app.git
cd soli-music-app
# Start all services
docker-compose up --build- Backend API:
http://localhost:8000 - Frontend: Open
soliFrontend/index.htmlin your browser
- Registration
Visitregister.htmland create your account - Login
Accesslogin.htmlto authenticate (token stored in localStorage)
-
Upload Tracks
- Navigate to
upload.html - Select audio files (MP3/WAV)
- Submit to upload to your personal storage
- Navigate to
-
Browse Library
- Access
gallery.html - View all available tracks
- Click to play any song
- Access
curl -X POST http://localhost:8000/upload/ \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-F "music=@./path/to/your/track.mp3"{
"status": "success",
"message": "File uploaded successfully",
"data": {
"filename": "username_track.mp3",
"url": "http://localhost:4566/storage/username_track.mp3",
"timestamp": "2023-11-15T12:34:56Z"
}
}soli-music-app/
├── soliBackend/ # Django application
├── soliFrontend/ # HTML/CSS/JS interface
├── docker-compose.yml # Container configuration
└── README.md # Project documentation
# Set up Python environment
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txt
# Run development server
python manage.py runserverWe welcome contributions! Please follow these steps:
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Rasoul Soli - @rasoul_soli