- Create a project that will enable admin or end-users to register and login to the app and can manage below data with golang and MYSQL(Recommended : gin framework).
- Gin framework
- Sqlx or Gorm
- JWT
- Admin - Should have Read/Write access
- User - Should have Read access only, except Favourite/Unfavourite functionality
Note: Admin is also a user. Admin should have all access same as user. Additionally they can modify the content.
-
Artist
- id
- name
- image_url
- created_at
- updated_at
-
Album
- id
- name
- description
- image_url
- published_at
- is_published
- artist_id
- created_at
- updated_at
-
Track
- id
- name
- index
- track_url
- image_url
- album_id
- is_published
- created_at
- updated_at
-
Playlist
- id
- name
- description
- image_url
- is_published
- created_at
- updated_at
-
Favourite-tracks
- id
- track_id
- user_id
- index
- Admin Register
- Admin Login
- User Register
- User Login
- Create/Read/Update/Delete artist
- Create/Read/Update/Delete album
- Create/Read/Update/Delete track
- Add tracks to album
- Remove tracks from album
- Create/Read/Update/Delete playlist
- Add tracks to playlist
- Remove tracks from playlist
- Get playlists
- Get playlist and tracks by playlist id
- Fetch all albums
- Fetch all tracks
- Fetch all tracks by album Id
- Get playlists
- Get playlist and tracks by playlist id
- Favourite/unfavourite tracks
- Retrieve favourite/unfavourite tracks of own