Skip to content

Homerlrh/apple_music

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

COMP 2523 Project - iTunes Clone

What it can do

Allow user to post song to AWS s3 bucket and enable user to play music in the browser

What we user

  • Python flask
  • SQLite
  • S3 bucket

Get started

Create virtual environment on macOS and Linux:

$ python3 -m venv <envname>

on Windows:

$ py -m venv <envname>

Active virtual environment: on macOS and Linux:

$ source <envname>/bin/activate

on windows

$ . \<envname>\Scripts\activate

Check virtual environment on macOS and Linux:

$ which python
.../<envname>/bin/python

on windows

$ where python
.../<envname>/bin/python.exe

Leaving vitural environment

$ deactivate

Install dependencies

In Terminal or in VsCode Terminal

$ pip install -r requirements.txt

Create a S3 bucket

Step1.Go to here to create a bucket

You don't need to chang any setting

Bucket

AWS setup

Step1. Install AWS CLI Download and install the package from AWS webpage

Step2. configure confidentials

$ aws configure
# prompt input
AWS Access Key ID [********************]:<your access key>
AWS Secret Access Key [********************]:<your secret access key>
Default region name [us-east-2]:<your region>
Default output format [text]:

Access Key ID and Secret Access Key can be generated at AWS management console -> account -> my secret credentials

Create CloudFront Distribution

Step1. Go to cloudFront page and create a distribution

cloudFront

Step2. Go to line 244 in "user_route.py" in module > bluePrints

And change line 254 "your clounFront Domain name"

code change

Create lastFM api info

Go to here

  1. Create api account
  2. Get an api key
  3. modify the ".env" file, if there is no ".env" create one

apiSetting

last - run the app

on macOS and Linux:

$ python3 main.py

on windows

$ py main.py

Things to be Implemented

  • Upgrade schema to use natural primary keys ie. International Standard Recording Code (ISRC)
  • Switch to full 13 table SQL database
    • Updated Schema includes all many-many relationships
    • ie. playlist_songs, artist_songs
  • Integrate authentication from Gurmeet's code to Master
  • Implement Authorisation status levels such that:
    • Only database admins can upload songs/create albums etc. to the database
    • Users have read-only privileges, plus ability to create playlists
    • Free user restrictions / paid user access
  • Upload full test environment with 100 songs to test
  • Create automated test suite with pytest and implement github actions for continuous integration
  • Centralized error handling
  • Write documentation

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •