- Users can search for favorite artists and songs, post and view user-generated reviews, and explore accurate details about songs and albums, such as title, duration, writing credits, label, and country of origin
- The platform features up-to-date album release countdowns and text-based forums, where forum content can be moderated through an admin dashboard
- Spotify playlists can be loaded and played via OAuth
Before setting up the project, ensure you have the following installed:
If you're using macOS, you can install the prerequisites using Homebrew:
brew install python3
brew install postgresql@13
brew install libpq
brew install openssl@3
brew install node
Note: To start the PostgreSQL service:
brew services start postgresql@13
For Windows users, it's recommended to use the Windows Subsystem for Linux (WSL) and install the dependencies with the native package manager.
- Clone the repository:
git clone https://github.com/lblack00/interactive-music-db.git
cd interactive-music-db
- Create and activate a virtual environment:
python3 -m venv .env
source .env/bin/activate
- Install Python dependencies:
pip install -r requirements.txt
- Navigate to the
client
directory:
cd client
- Install Node.js dependencies:
npm install
You'll need two terminal windows or tabs to run the backend and frontend concurrently.
- Activate the virtual environment (if not already active):
source ../.env/bin/activate
Navigate to the server directory and run the Flask application:
cd ../server
python3 app.py
- Navigate to the client directory:
cd ../client
- Start the React development server:
npm run dev
Once both servers are running, open your browser and navigate to http://localhost:5173/release/367084 to view the release page for Nirvana's Nevermind album.
To populate the database with music data, you'll need to import data from Discogs using the discogs-xml2db tool.
Schemas to create the remaining tables can be found in server/tests/init_dicogs.sql
and server/tests/init_users.sql