Skip to content

Instantly share code, notes, and snippets.

@AbdullahGhani1
Last active August 14, 2022 14:31
Show Gist options
  • Save AbdullahGhani1/de517091caf87603ee6a3f7e1217dba3 to your computer and use it in GitHub Desktop.
Save AbdullahGhani1/de517091caf87603ee6a3f7e1217dba3 to your computer and use it in GitHub Desktop.

Schema

Users

Users type
id Int
firstName String (Max length: 30 chars)
lastName String (Max length: 30 chars)
userName String (Max length: 30 chars)
password string (min length:6 chars)
verified boolean
role enum (admin,users,creators)
profileImage: string
subscriptionPlan enum (free, premium)
interests enum (mandatory minimum 3)

Enumuration(interests)

  • Film
  • Music
  • Travel
  • Gaming
  • Comedy
  • News and Politics
  • Business
  • Science and Tech
  • Auto & Vehicles
  • Spots
  • Health
  • People
  • Entertainment
  • Education
  • Activism
  • Nature

usersLikes type
id int
episodes_id int
user_id int

userSubscriptions

userSubscriptions type
id int
podcast_id int
user_id Int

userFollows

userFollows type
id int
creators_id int
user_id Int

Playlists

Playlists type
id int
playlistName String
user_id int
playlist string[]  (length 30)
PasswordReset type
id int
users_id int
createdAt date
resetToken string

Trimed Audio

trimedAudio type
id int
episodes_album string
stratTime time
endTime time
trimedAudio string (URL)

UserNotes

  1. Users can update userName,profileImage, first Name,lastName,email,password. changes apply > after OTP
  2. User can add and delete playlists
  3. User can like,follow,unfollow,subscribe and unsubscribe. (creators,podcasts,episodes)
  4. User can trimed podcast audio and share on social media. if social media is facebook extension will be mp4.
  5. user will be notify on orderStatus, new products,newEpisodeUpload of a subscribed podcast

Creators

Creators type
id int
user_name string
description string
storeAvailable boolean
followers JSON {total: Int, currentMonthCount: Int, currentMonth: August}

CreatorsNotes

  1. creators can check (total Follower, total streaming time, ranks on the basis of watch time, averageWatchTime, new Follower ,popularEpisodes)
  2. Creators can upload podcasts → After admin approval, it shows on users feeds.
  3. Creators can delete and edit podcast → After admin approval, changes stores.

Podcast

Podcast type
id int
title string
description string
creators_id int
tags string[] (length 8)
genres enum
episodes string []
subscribed count

Episodes

Episodes type
id int
title string
description string
podcasts_id int
createdAt date
duration time
podcastAudio string (URL)

AdminNotes

1- Admin will Approved creator, product/podcast upload,product/podcast delete. 2- Admin will approved/reject creators request for store. 3- Only admin can update roles. 4- Admin Can Change creator Status (Active,block,pending) 5- podcast also available in Rss feeds


Api Calls

subscriber admin also a Creator Episodes Array playListArray

Auth

/register /login /otp /checkUsername

Session specific api calls

GET /users POST /users DELETE /users POST /users/change_password

Notification api calls

GET /users/notifications POST /users/notifications/:notification_id

For You Section

/podcasts; show default podcasts wrt interests /podcasts?keywords=genre or creator or tag or title GET /podcasts/:podcast_id POST /podcasts/:podcast_id DELETE /podcasts/:podcast_id

Subscribe to a Podcast

GET /podcasts/subscriptions POST /podcasts/:podcast_id/subscribe POST /postcasts/:podcast_id/unsubscribe

podcast Episodes

GET /podcasts/subscriptions GET /episodes/:episode_id POST /episodes/:episode_id DELETE /episodes/:episode_id GET /episodes/likes

Episodes Likes

POST /episodes/:episode_id/like POST /episodes/:episode_id/unlike

user Created Episode Playlist

POST /users/playlists POST /users/playlists/:playlist_id #edit playlist ain't available from mockups DELETE /users/playlists/:playlist_id GET /users/playlists/:playlist_id

creators

GET /creators/:creator_id POST /creators/:creator_id DELETE /creators/:creator_id

POST /creators/:creator_id/approve POST /creators/:creator_id/disapprove

Creator Followers

POST /creators/:creator_id/follow POST /creators/:creator_id/unfollow

/follow /creators/:creatorId /podcasts/:podcastId /podCast

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment