Curie is a chat app where users can chat in rooms and listen to synced music, the playback of the music would be controlled through voting, and members of the room can suggest songs, other members can vote ๐๏ธ or ๐๏ธ to a suggestion, if the suggestion gets majority vote it will start playing.
- Made with Next.js
- Written in Typescript
- Styled with TailwindCSS
- [Redux Toolkit] for State management.
- [TanStack Query] for asynchronous state management and data caching.
- Axios as API Request client
- Socket.io-client as Web-socket client
- Made with Express.js
- Written in Typescript
- NoSQL Database from MongoDB
- Mongoose for handling MongoDB services
- Axios as API Request client
- Socket.io for Web-socket communication
- Youtube Data API V3 to search songs and get metadata for songs from Youtube.
- Youtube Iframe API to create a player and get playback from Youtube inside my app.
Curie_demo_compressed_lm.mp4
-
- Clone the repository :
git clone https://github.com/curiousyuvi/curie.git
Configuring Environment variables
-
Open the server directory :
cd curie/server/
-
Create a .env file :
touch dev.env
-
Inside the .env file write :
MONGODB_URL=mongodb://<username>:<password>@mongo:27017/<db_name> YOUTUBE_API_KEY=
-
Now to get YOUTUBE_API_KEY, head to Google Developers Console and login with your Google Account.
-
Click on the Create Project button or select an existing project.
-
Go to the Credentials section and click on the Create credentials button.
-
Select API key from the dropdown menu.
-
If prompted, select the project you created or want to use.
-
Once you've created the API key, copy the key and paste it in the YOUTUBE_API_KEY in .env.
- Clone the repository :
-
-
To run the development server, inside the root directory, run this command:
yarn dev
-
If there are no issues and every thing goes well, then your Next-js client should be running on
http://localhost:3000/
, Node server should be running onhttp://localhost:5000/
.
-