Spotigit is a web application that provides version control for Spotify playlists, allowing users to manage and track changes to their playlists similarly to how Git tracks changes in software development. Built with the MERN stack (MongoDB, Express.js, React.js, Node.js) and TypeScript, Spotigit integrates with the Spotify Web API using OAuth 2.0 Authorization Code Flow to securely interact with user data.
- Version Control for Playlists: Save, update, and restore previous versions of Spotify playlists.
- OAuth 2.0 Authorization: Securely authenticate users and access their Spotify data.
- CRUD Operations: Create, read, update, and delete playlist versions, similar to Git operations like
git init
,git checkout
,git commit
, andgit rm
. - Session Management: Efficient session storage using Redis, supporting horizontal scaling.
- Custom Middleware Logger: Tracks user interactions and provides insights into typical usage patterns.
- Frontend: React.js with TypeScript
- Backend: Node.js, Express.js
- Database: MongoDB
- Session Storage: Redis
- Authentication: OAuth 2.0 Authorization Code Flow with the Spotify Web API
- API Integration: Spotify Web API
- Middleware: Custom logger for user interaction tracking
-
Clone the repository:
git clone https://github.com/aadityathukral/SpotiGit.git cd SpotiGit
-
Install dependencies:
cd client npm install cd .. cd server npm install
-
Set up environment variables:
- Create a
.env
file in the root directory and add your Spotify API credentials and other environment variables:CLIENT_ID=your_spotify_client_id CLIENT_SECRET=your_spotify_client_secret REDIRECT_URI=http://localhost:8000/callback REDIRECT_CLIENT_URI=http://localhost:3000/ SESSION_SECRET=your_session_secret MONGO_URI=your_mongodb_connection_string REDIS_URL=your_redis_url
- Create a
-
Start the development server on both the client and server directories:
cd client npm run dev cd server npm run dev
-
Access the application:
- Visit
http://localhost:5173
in your web browser.
- Visit
-
Login with Spotify:
- Click the "Login with Spotify" button to authenticate and authorize Spotigit to access your playlists.
-
Version Control Operations:
- Use the interface to create, view, update, and delete versions of your playlists.
- Track changes and restore previous playlist versions as needed.
-
Session Management:
- Your session data is securely stored using Redis, ensuring efficient and scalable session handling.
This project is licensed under the MIT License. See the LICENSE file for details.
For any inquiries or support, please contact:
- Aaditya Thukral - [email protected]
- GitHub