Sound Marshal is a Django-based web application designed to connect artists, curators, and fans, allowing them to share and discover new music.
- User roles: Artist, Curator, and Fan
- Track uploads and playback
- Profile management
- Track liking and commenting
- Explore page with related tracks and profiles
- Secure authentication with Django Allauth
Before you begin, ensure you have met the following requirements:
- Python 3.8+: Make sure Python is installed on your machine.
- Pip: Ensure pip is installed (
pipusually comes with Python). - Virtualenv: Install
virtualenvfor creating isolated Python environments.
git clone https://github.com/yourusername/sound-marshal.git
cd sound-marshalCreate and activate a virtual environment to isolate your dependencies:
-
On macOS/Linux:
python3 -m venv venv source venv/bin/activate -
On Windows:
python -m venv venv venv\Scripts\activate
Install the necessary Python packages using the requirements.txt file:
pip install -r requirements.txtCreate a .env file in the root directory of your project and add the following environment variables:
SECRET_KEY=your-secret-key
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1
DATABASE_URL=postgres://user:password@localhost:5432/dbname
STRIPE_SECRET_KEY=your-stripe-secret-key
STRIPE_PUBLIC_KEY=your-stripe-public-key
Apply the database migrations to set up the necessary tables:
python manage.py migrateCreate a superuser to access the Django admin panel:
python manage.py createsuperuserFollow the prompts to set the username, email, and password.
Collect all static files into a single location:
python manage.py collectstaticStart the Django development server:
python manage.py runserverVisit http://127.0.0.1:8000/ in your web browser to see the application running.
Once the server is running, you can:
- Log in as the superuser or create a new user account.
- Upload tracks (if logged in as an artist).
- Explore tracks and profiles from the Explore page.
- Like tracks, comment on them, and interact with other users.
To deploy this project, you will need to:
- Set up a production database (e.g., PostgreSQL)
- Configure a web server (e.g., Nginx) and WSGI server (e.g., Gunicorn)
- Set
DEBUG=Falsein your environment variables - Securely manage your
SECRET_KEYand other sensitive data
Contributions are welcome! Please submit a pull request or open an issue to discuss any changes.
This project belongs to Joshua Howard and all rights are reserved.
If you have any questions or need further assistance, feel free to contact the project maintainers.