This Django-based subscription movie website allows users to subscribe to access premium movies. The site includes user authentication, subscription handling,paypal payment integration, and access control for premium content.
The project structure is organized as follows:
- MovieSubscription: Django project root directory.
- movie: App handling movie-related functionalities.
- user_profile: App managing user profiles and watchlists.
- review: App handling movie reviews.
- subscription: App managing subscription plans and handling payments.
- User Authentication: Utilizes Django's built-in authentication system for user registration, login, and logout.
- Movie Listing: Displays a list of movies, categorized as most popular, TV series, and new releases.
- Movie Details: Provides detailed information about each movie, including description, trailers, reviews, etc.
- Subscription Handling: Allows users to subscribe to different plans offering access to premium content.
- Payment Integration: Integrates PayPal for subscription payments.
- User Profiles: Provides user profiles with a watchlist feature to bookmark favorite movies.
Follow these steps to set up the project locally:
-
Clone the repository:
git clone https://github.com/munuhee/MovieSubscription.git cd MovieSubscription
-
Create a virtual environment and activate it:
python -m venv env source env/bin/activate # For Unix or MacOS # Or .\env\Scripts\activate # For Windows
-
Install dependencies:
pip install -r requirements.txt
-
Set up environment variables:
- Create a
.env
file based on.env.example
and add your environment-specific variables likePAYPAL_CLIENT_ID
,PAYPAL_CLIENT_SECRET
, etc.
- Create a
-
Run migrations:
python manage.py migrate
-
Create a superuser:
python manage.py createsuperuser
-
Run the development server:
python manage.py runserver
-
Access the website in your browser: http://localhost:8000
-
Use the admin panel to manage movies, subscriptions, users, etc.: http://localhost:8000/admin
We welcome contributions! Please follow these steps to contribute:
- Fork the repository.
- Create a new branch (
git checkout -b feature/improvement
). - Make your changes.
- Commit your changes (
git commit -am 'Add new feature'
). - Push to the branch (
git push origin feature/improvement
). - Create a new Pull Request.