Muses is a modern, interactive music learning platform that helps users discover and learn music through an engaging interface. Named after the Greek muse of music, Euterpe combines powerful music recommendation algorithms with an intuitive learning experience.
- 🎵 Interactive music discovery feed
- 💖 Like and save favorite tracks
- 🎯 Personalized music recommendations
- 👤 User profiles with learning history
- 📱 Responsive mobile-first design
- 🔄 Continuous playback queue
- Flask web framework
- SQLAlchemy ORM
- PostgreSQL database
- RESTful API architecture
- YouTube API integration
- Flutter framework for cross-platform development
- Provider for state management
- HTTP package for API communication
- SharedPreferences for local storage
- Custom UI components
euterpe/
├── backend/
│ ├── app/
│ │ ├── models/ # Database models
│ │ ├── routes/ # API endpoints
│ │ └── utils/ # Helper functions
│ ├── config.py # Configuration settings
│ ├── requirements.txt # Python dependencies
│ ├── seed_database.py # Database seeding script
│ └── server.py # Main server file
│
└── frontend/
└── lib/
├── components/ # Reusable UI components
├── providers/ # State management
├── screens/ # App screens
├── services/ # API services
└── main.dart # Entry point
-
Create a Python virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
cd backend pip install -r requirements.txt -
Set up the database:
python seed_database.py
-
Start the server:
python server.py
-
Install Flutter dependencies:
cd frontend flutter pub get -
Run the app:
flutter run
POST /auth/register- Register new userPOST /auth/login- User loginPOST /interactions/like- Like a trackPOST /interactions/unlike- Unlike a trackGET /recommendations- Get personalized recommendationsGET /saved-songs- Get user's saved songs
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Flutter team for the amazing cross-platform framework
- Flask team for the lightweight WSGI web application framework
- All contributors who have helped shape this project