An open-source Django-based website template, originally developed for nlytnmusic (Siddhesh Parekh). This project provides musicians with a platform to showcase their work, manage events, share blog posts, and rent out their music studios. The website was live from 2020 to 2023 and can be viewed via the archived link.
- Song Showcase: Display songs and albums with detailed descriptions.
- Event Management: Announce and manage bookings for upcoming events.
- Blog Posts: Share updates and thoughts with fans.
- Studio Rentals: Integrated system for renting out music studios.
- SEO Friendly: Dynamic sitemaps to improve search engine indexing.
- Spotify Integration: Input trackId from Spotify to generate a small Spotify preview player on the website.
- Google reCAPTCHA: Integrated reCAPTCHA for spam prevention in forms.
- Payment Integration: Allows for coffee donations and booking payments through Razorpay.
- Dynamic Sections: Sections on the site are dynamically hidden or shown based on the data inputted in the admin dashboard.
These instructions will help you set up the project on your local machine for development and testing purposes.
Refer to Setup_Instructions.md for detailed setup instructions.
- Python 3.x
- Django 5.x
- Virtualenv
-
ASGI Configuration: The ASGI configuration is located in
artist/asgi.py
. It exposes the ASGI callable as a module-level variable namedapplication
. -
Settings Configuration: The settings are located in
artist/settings.py
. The key configurations include:- Environment Variables: Managed with
django-environ
to keep sensitive information secure. - Installed Apps: Lists all Django applications and third-party apps used in the project.
- Middleware: Includes security, session, authentication, and other middleware.
- Database: Configured with SQLite by default, can be switched to PostgreSQL or other databases.
- Static and Media Files: Configured paths for handling static and media files.
Refer to
example.env
for environment variables setup in.env
. - Environment Variables: Managed with
-
Sitemaps Configuration: Sitemaps are defined in
artist/sitemaps.py
to improve the site's SEO by helping search engines index the site more effectively.
To use an external database like AWS S3 bucket and PostgreSQL hosted on AWS, follow these steps:
-
AWS S3 Bucket for Media Files:
- Install the
django-storages
package:pip install django-storages[boto3]
- Update your
settings.py
:DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage' AWS_ACCESS_KEY_ID = env('AWS_ACCESS_KEY_ID') AWS_SECRET_ACCESS_KEY = env('AWS_SECRET_ACCESS_KEY') AWS_STORAGE_BUCKET_NAME = env('AWS_STORAGE_BUCKET_NAME') AWS_S3_REGION_NAME = env('AWS_S3_REGION_NAME', default='us-east-1')
- Install the
-
PostgreSQL Database:
- Install the
psycopg2
package:pip install psycopg2
- Update your
settings.py
:DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': env('DATABASE_NAME'), 'USER': env('DATABASE_USER'), 'PASSWORD': env('DATABASE_PASSWORD'), 'HOST': env('DATABASE_HOST', 'localhost'), 'PORT': env('DATABASE_PORT', '5432'), } }
- Install the
-
Django REST Framework:
- Provides powerful and flexible tools for building Web APIs.
- Used for creating API endpoints to interact with the frontend and other services.
-
Django Contrib Sitemaps:
- Generates sitemaps dynamically as users add new pages and blogs.
- Improves SEO by making the site more accessible to search engine crawlers.
-
Meta:
- Manages metadata for SEO and social media sharing.
- Allows easy integration of Open Graph, Twitter Cards, and other metadata.
Refer to API_Endpoints.md for detailed information on the available API endpoints.
Refer to DB_Design.md for detailed information on the database design, including table structures and relationships.
Details on how to deploy this project to a live system can be found in the Django deployment documentation.
Contributions are welcome! Here are some guidelines:
- Fork the repository.
- Create a new branch for your feature or bugfix.
- Commit your changes with a descriptive message.
- Push your branch to your forked repository.
- Create a pull request with a description of your changes.
The code in this repository is open-source and licensed under the MIT License. Please refer to the LICENSE.md
file for the full license text.
Any text, images, and sound content, including but not limited to those tagged with NLYTN, are not covered under the MIT License and are instead licensed under the terms specified by NLYTN Music. For any use of such content, please contact NLYTN Music at NLYTN Music.
A special thanks to NLYTN Music for helping the music community. Please go and support him and show your love.
This project uses CKEditor 4, which has reached its end of life as of June 2023. Additionally, some dependencies have moved towards GPL licensing, and some are no longer maintained. Please review the licensing terms of third-party integrations to ensure compliance.
I have ensured that most libraries and versions are up-to-date as of 2024, but substantial efforts may be needed to migrate some libraries and frontend components to more modern frameworks and libraries.
For new features or support with migration, please open issues with your requests or bugs with the recent code.