Rhyth is a music platform built as a passion project, designed to enhance the way we enjoy music. Unlike traditional platforms, Rhyth lets users watch music videos alongside organizing their favorite tracks into playlists, with robust caching for optimal performance.
- 🔍 Search Songs: Quickly search for songs and fetch curated results from YouTube
- 🎥 Watch Music Videos: Play songs with integrated video through an embedded YouTube player
- 📋 Create & Manage Playlists: Create, organize and manage personal playlists
- 🚀 Performance Optimized: Redis caching implementation for faster data retrieval
- 🔒 Secure Authentication: JWT-based user authentication system
- 🌐 Responsive Design: Modern UI/UX built for seamless experience across devices
- Next.js - React framework for production
- Tailwind CSS - Utility-first CSS framework
- TypeScript - Static typing for JavaScript
- Node.js with Express - Server framework
- Prisma - Modern database ORM
- TypeScript - Type safety for backend
- Redis - For caching and performance optimization
- PostgreSQL - Primary database
- YouTube Data API v3 - For video metadata
- JWT (JSON Web Tokens) - Secure authentication
- Node.js (v16 or higher)
- PostgreSQL
- Redis
-
Clone the repository:
git clone https://github.com/PiyushXmishra/rhyth cd rhyth
-
Install dependencies for both frontend and backend:
# Install backend dependencies cd backend npm install # Install frontend dependencies cd ../frontend npm install
-
Configure environment variables: Create
.env
files in both frontend and backend directories:Backend
.env
:DATABASE_URL="postgresql://user:password@localhost:5432/rhyth" REDIS_URL="redis://localhost:6379" JWT_SECRET="your-jwt-secret" YOUTUBE_API_KEY="your-youtube-api-key"
Frontend
.env
:NEXT_PUBLIC_API_URL="http://localhost:3001"
-
Set up the database:
cd backend npx prisma migrate dev
-
Start the development servers:
# Start backend server (from backend directory) npm run dev # Start frontend server (from frontend directory) npm run dev
- Access the application at
http://localhost:3000
- Create an account or log in
- Search for songs using the search bar
- Create playlists and add your favorite songs
- Enjoy music videos with playlist management capabilities
- 🎮 Music Rooms: Collaborative spaces for users to queue and prioritize songs
- 🎯 Smart Recommendations: AI-powered song suggestions based on listening history
We welcome contributions! Here's how you can help:
- 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