Portfolio Project: Spotify

Description

This project is a RESTful API clone of Spotify, built using NestJS and Microservices architecture with multiple databases. It provides functionality to manage users, playlists, songs, albums, artists, and more features commonly found in music streaming platforms like Spotify.

My Role & Key Implementations

  • Designed and structured database schemas, creating tables and populating them with dummy data for testing and development.

  • Developed RESTful APIs to handle CRUD operations efficiently across multiple services.

Main Features

  • User Authentication & Security: Implemented JWT-based authentication to manage user sessions and ensure secure access control.

  • Full CRUD Functionality: Designed APIs supporting create, read, update, and delete operations for users, playlists, and songs.

  • Microservices Architecture: Developed independent services for user management, song catalog, and playlists to enhance modularity and scalability.

  • Multi-Database Integration: Configured and connected multiple databases to handle different services efficiently.

  • AWS S3 Integration: Implemented cloud-based storage for uploading, storing, and retrieving music files, ensuring high availability.

  • Elasticsearch Implementation: Integrated Elasticsearch for full-text search and real-time analytics on song data, improving discoverability.

  • Scalability & Performance Optimization: Utilized caching mechanisms, optimized queries, and ensured efficient communication between microservices for better performance.

Technologies Used

  • NestJS – Framework for building efficient, scalable Node.js server-side applications

  • Microservices – Using microservice architecture for better scalability and separation of concerns

  • JWT – For secure user authentication

  • TypeORM/Prisma – For interacting with databases

  • PostgreSQL/MySQL – Databases for storing user, song, and playlist data

  • RabbitMQ – For asynchronous communication between microservices

  • Docker – For containerizing the services

  • AWS S3 – For storing song media files

  • Elasticsearch – For full-text search and analytics on song data

  • Postman – For API testing and documentation

  • TablePlus – For managing and querying databases with a user-friendly interface