SOUNDWAVE - Listen to Free Online Music Streaming
- Front-end: ReactJS, SCSS, Chakra UI, React Hook Form, React Icons, React Query
- Back-end: Golang (Gin Gonic), GORM
- Database: MySQL
- RESTful API (DEMO API)
Build docker image
docker build -t soundwave --build-arg GOOGLE_CLIENT_ID=<YOUR_GOOGLE_CLIENT_ID> .
Run the application in a Docker container:
docker run -d \
--name soundwave-app \
-e DB_USERNAME='root' \
-e DB_PASSWORD='123456' \
-e DB_NAME='db' \
-e DB_HOST='127.0.0.1' \
-e DB_PORT='4000' \
-e SECRET_KEY='secret_key' \
-e CLOUDINARY_CLOUD_NAME='cloud_name' \
-e CLOUDINARY_API_KEY='api_key' \
-e CLOUDINARY_API_SECRET='api_secret' \
-e CLOUDINARY_UPLOAD_FOLDER='folder' \
-e EMAIL_PASSWORD='email_password' \
-e EMAIL='abc@gmail.com' \
-e ADMIN_EMAIL='admin@gmail.com' \
-e ADMIN_PASSWORD='admin123' \
-p 3001:3001 \
soundwave
Fill env variables in .env
file
General functionality:
- Sign in with email or Google Login
- Authenticate via JWT and HttpOnly Cookie
- Upload mp3 sound
- CRUD song
- CRUD comments on song
- CRUD playlist
- Create favorite song
- Recommend songs
- Song genre
- Follow other users
- Search & filter song & user
- ADMIN dashboard
- Password reset email message