Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mohamedaemara/spotify-api

Practice NestJS on Spotify clone API
https://github.com/mohamedaemara/spotify-api

docker nestjs postgresql swagger

Last synced: about 2 months ago
JSON representation

Practice NestJS on Spotify clone API

Awesome Lists containing this project

README

        

# Spotify-API

## Overview

Spotify-API is a RESTful API that provides access to a wide range of features within the Spotify music platform. It allows developers to integrate Spotify's functionalities such as browsing music, managing playlists, and controlling playback into their applications.

### Development Tools
[![technologies](https://skillicons.dev/icons?i=nestjs,ts,postgresql,git,github,docker)](#backend)




## Table of Contents

- [Spotify-API](#spotify-api)
- [Overview](#overview)
- [Table of Contents](#table-of-contents)
- [Schema Diagram for DB](#schema-diagram-for-db)
- [Getting Started](#getting-started)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Endpoints](#endpoints)
- [Key Features](#key-features)
- [Technology Stack](#technology-stack)
- [Backend](#backend)
- [Documentation](#documentation)
- [Version Control](#version-control)
- [How to Contribute](#how-to-contribute)

## Getting Started

### Prerequisites

Before getting started, ensure you have installed the following:

- Node.js and npm
- PostgreSQL

### Installation

1. Clone the repository: `$ git clone [email protected]:mohamedAEmara/Spotify-API.git`
2. Install dependencies: `$ npm install`
3. Configure environment variables: Create a `.env` file in the root directory.
- Copy `.env.example` content to `.env` file
- Add values for environment variables
```bash
PORT=3000
SECRET=HAD@T23
DB_HOST=localhost
DB_PORT=5432
DB_USERNAME=postgres
DB_PASSWORD=postgres
DB_NAME=spotify-api
NODE_ENV=devlopment
4. Migrate Prisma schema to the database by running these commands:
```bash
$ npx prisma generate
$ npx prisma migrate dev --name init


## Endpoints

After running the server, you can access Endpoints with documentation from:
```code
localhost:3000/api
```

### Key Features
- Authentication with Two-Factor Authentication to use OTP for more security
- Upload audio files with validation on inputs
- Stream & Play songs
- Pagination & filtering songs
- Seeding for adding initial data to work on
## Technology Stack

The **Spotify-API** uses the following technologies and tools:

#### Backend

- **NestJS:** A progressive Node.js framework for building efficient, reliable, and scalable server-side applications.
- **PostgreSQL:** A powerful, open-source relational database used for storing user data, playlists, and tracks information.
- **TypeORM:** A modern database toolkit and ORM for Node.js and TypeScript.
- **Docker:** A platform for running Postgres on without installing it on your machine
#### Documentation

- **Swagger:** Used for documenting and providing interactive API requests.

#### Version Control

- **Git:** A distributed version control system.
- **GitHub:** A web-based platform for version control and collaboration.

## How to Contribute

If you'd like to contribute to the project or have suggestions for improvement, please do not hesitate to make a pull request.