allen-tran / reverb

๐ŸŽน Some tunes, anyone? TypeScript to empower the music ๐Ÿ”ฅ

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Reverb ๐ŸŽง

maxresdefault

This is fullstack replica of one of my favorite applications ever: Spotify! Authentfication, relational databases, serverless functions, and much more are all implemented to give the closest experience to Spotify as possible. Users can sign up, create playlists, like songs and of course - listen to their favorite tunes ๐ŸŽต

Table of Contents ๐Ÿ—ž๏ธ

  1. Tech Stack
  2. Database Schema

Tech Stack ๐Ÿ’ผ

  • Written in: TypeScript
  • Authentification: JWT, Cookies, Bcrypt
  • Frontend: Next.js, React.js
  • Backend: Prisma Postgres Database Hosted by Heroku

Database Schemas ๐Ÿ—บ

User Table

model User {
  id        Int        @id @default(autoincrement())
  createdAt DateTime   @default(now())
  updatedAt DateTime   @updatedAt
  email     String     @unique
  firstName String
  lastName  String
  password  String
  playlists Playlist[]
}

Song Table

model Song {
  id        Int        @id @default(autoincrement())
  createdAt DateTime   @default(now())
  updatedAt DateTime   @updatedAt
  name      String
  artist    Artist     @relation(fields: [artistId], references: [id])
  artistId  Int
  playlists Playlist[]
  duration  Int
  url       String
}

Artist Table

model Artist {
  id        Int      @id @default(autoincrement())
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
  songs     Song[]
  name      String   @unique
}

Playlist Table

model Playlist {
  id        Int      @id @default(autoincrement())
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
  name      String
  songs     Song[]
  user      User     @relation(fields: [userId], references: [id])
  userId    Int
}

About

๐ŸŽน Some tunes, anyone? TypeScript to empower the music ๐Ÿ”ฅ

License:MIT License


Languages

Language:TypeScript 88.4%Language:CSS 7.4%Language:JavaScript 4.2%