Music Application using Flutter and FastAPI
This project is a simple music app. It is built by following a YouTube tutorial created by Rivaan Ranawat. The tutorial provides a step-by-step guide on how to build this project from scratch.
- Authentication [ Sign up with email and password, Login, Logout ]
- Upload Songs
- Play Songs in app or background
- Favorite Songs
Before you begin, ensure you have met the following requirements:
- [ Basic Knowledge of Flutter, Dart and Python ]
To install this project, follow these steps:
- Clone the repository:
git clone https://github.com/NyeinChanAung203/MusicApp.git
- Navigate to the project directory:
cd server
- Install the necessary dependencies:
pip install -r requirements.txt
- Start Server:
fastapi run main.py
- Go to client folder and run flutter
cd client flutter run
Note: You need to start postgres service and change postgres url [DATABASE_URL] in server/database.py file [ add your own postgre user and password ]
You can follow the tutorial on YouTube to understand the step-by-step process of building this project. Watch the full tutorial here: YouTube Tutorial Link
Note: This project is for educational purposes and follows the tutorial by Rivaan Ranawat. All credit for the tutorial content goes to Rivaan Ranawat.
![](https://private-user-images.githubusercontent.com/63293974/340560604-7b84a23d-0098-4d24-bf4a-5084c201967c.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTkxMDIxNzIsIm5iZiI6MTcxOTEwMTg3MiwicGF0aCI6Ii82MzI5Mzk3NC8zNDA1NjA2MDQtN2I4NGEyM2QtMDA5OC00ZDI0LWJmNGEtNTA4NGMyMDE5NjdjLmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjIzVDAwMTc1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTE3MmJlMTcyMjdjOWI5NzRkODVmZmJkOTFlZjUyYjRlOTgzNzU5MWUxODA3ODc0NzE2ODBjZjBiMDU4MDc5NTcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.qlxbbgkmYxQ1krcl-FB4URPOwQ92xj88mmUFC3KO3HQ)
![](https://private-user-images.githubusercontent.com/63293974/340560603-88dac23c-d0a5-434e-bd48-920ad3f95931.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTkxMDIxNzIsIm5iZiI6MTcxOTEwMTg3MiwicGF0aCI6Ii82MzI5Mzk3NC8zNDA1NjA2MDMtODhkYWMyM2MtZDBhNS00MzRlLWJkNDgtOTIwYWQzZjk1OTMxLmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjIzVDAwMTc1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRlMjAyYTYxZGJmZmI4MTkwNWU3ZjRmYmUyOWQ2YjkxZGM0ODMyMTRjMjAwZjQ0NjMyNjkwMGQwYTY2ZDgwM2UmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.KCOx9jfXXXiNx-sK639MVDjRqttevT7CyimohUdhrkk)
![](https://private-user-images.githubusercontent.com/63293974/340560619-17242b81-4469-45d4-bceb-c5734fb4de75.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTkxMDIxNzIsIm5iZiI6MTcxOTEwMTg3MiwicGF0aCI6Ii82MzI5Mzk3NC8zNDA1NjA2MTktMTcyNDJiODEtNDQ2OS00NWQ0LWJjZWItYzU3MzRmYjRkZTc1LmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjIzVDAwMTc1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTI2ZGNlYWViNWEzY2E1NjM2ODRiYjFkOWZhY2NiZDk2ZmExYWE5ODViMTdkN2M1Y2I3NTc3ZGFiMDQwNjJhMTgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.DD0A7OiuZ6iUVJJf9hYj1ikhkENGtIFzSQn_HKeRUIk)
![](https://private-user-images.githubusercontent.com/63293974/340560647-53b6fb8d-7a08-448e-8346-5f35920b7c09.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTkxMDIxNzIsIm5iZiI6MTcxOTEwMTg3MiwicGF0aCI6Ii82MzI5Mzk3NC8zNDA1NjA2NDctNTNiNmZiOGQtN2EwOC00NDhlLTgzNDYtNWYzNTkyMGI3YzA5LmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjIzVDAwMTc1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWYxMWI0YjFkMmFlMjY5Mjg4MTBmZjE3ZGZhNTE1ZGMzNDIxMGEyZWIzNjVhNGFkZWEyMjU2YTJkMjkyODRhM2EmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.FXnC1dMEYQf5Q5i0kSQQ9IgPAgJMx6UvIIH-I4Yz42A)
![](https://private-user-images.githubusercontent.com/63293974/340560653-905808d3-b446-4f27-a54b-f6f5d0072280.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTkxMDIxNzIsIm5iZiI6MTcxOTEwMTg3MiwicGF0aCI6Ii82MzI5Mzk3NC8zNDA1NjA2NTMtOTA1ODA4ZDMtYjQ0Ni00ZjI3LWE1NGItZjZmNWQwMDcyMjgwLmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjIzVDAwMTc1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWU0ZjA5NjUzMzQxMmRlMDlhNzY3NTE2Zjk2MjYwNGY5YjVlMmUwYzlkMTMyNWZkMmQ5NzdiYjNiNzI2NGQyNmMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.bU3auCjy7B_Z3LQTmQi9aVLVmVsYXxPYDVZK1ru_8Cs)
![](https://private-user-images.githubusercontent.com/63293974/340560599-47529f52-8d30-4954-9f4b-4330a6771acd.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTkxMDIxNzIsIm5iZiI6MTcxOTEwMTg3MiwicGF0aCI6Ii82MzI5Mzk3NC8zNDA1NjA1OTktNDc1MjlmNTItOGQzMC00OTU0LTlmNGItNDMzMGE2NzcxYWNkLmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjIzVDAwMTc1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVmNTdiYjhiZjY5MjQ3YzVhZDNkNjk4ZjY4NWFlZmRiMjVkMWI3MjZkOTE3ZjFiOWY0OWVmYzhiNWQ3NTQzY2YmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.L098zZ-6yVtDQ32v9mtrYt_yeWHxLYuJE2I8sb3AKoQ)
![](https://private-user-images.githubusercontent.com/63293974/340560579-827bd344-ed2b-4666-a44c-b3aa1c3a3909.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTkxMDIxNzIsIm5iZiI6MTcxOTEwMTg3MiwicGF0aCI6Ii82MzI5Mzk3NC8zNDA1NjA1NzktODI3YmQzNDQtZWQyYi00NjY2LWE0NGMtYjNhYTFjM2EzOTA5LmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjIzVDAwMTc1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWIyZjhmYTQ1YjM2NDE5MzY5N2YyMDVlN2NjNThhMTNlNzcwNDczM2NlYjM1OWQzMzE5MzhjOTM1NzFhYWUzOTEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.iyK50Fa2m3_H_nx7mY2Ipr-1d-dE7-77ABhp1aR8czM)
![](https://private-user-images.githubusercontent.com/63293974/340563186-0b4ad465-f8b5-487c-9c82-67d4108c28b6.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTkxMDIxNzIsIm5iZiI6MTcxOTEwMTg3MiwicGF0aCI6Ii82MzI5Mzk3NC8zNDA1NjMxODYtMGI0YWQ0NjUtZjhiNS00ODdjLTljODItNjdkNDEwOGMyOGI2LmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjIzVDAwMTc1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTM5NGNjNDM0NTE1M2Q0NDg5MjI0ZGM0NmVjYmJkMmM4MDhiY2M3OGNjODA0ZTMxMmRhZDRhMDAyNDk5NjQ0ZTAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.RSxKufEoi49OJqNt0Otewx1f2Z1_7AC72lM1a4yXwOA)
![](https://private-user-images.githubusercontent.com/63293974/340560610-139db1f2-1422-478e-afe9-4bde8d11ee8e.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTkxMDIxNzIsIm5iZiI6MTcxOTEwMTg3MiwicGF0aCI6Ii82MzI5Mzk3NC8zNDA1NjA2MTAtMTM5ZGIxZjItMTQyMi00NzhlLWFmZTktNGJkZThkMTFlZThlLmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjIzVDAwMTc1MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWFjMGY0N2E0MDZkNmQzYTVjNGM3ODdmNDVlNzk3MDMzYWFlYTdjOTI3ZjFhYjk1MmM2NWIwNzVlYWZjYzAzOTEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.3NWFXX3RlJ7qaxPEV5aKUmZX3xBetNi5y8H9ep2lQ6g)