
Explore building a Django-based subscription platform with custom user roles for writers and clients, implementing email authentication, article CRUD, and standard or premium PayPal subscriptions.
Identify essential prerequisites for this course, including Django proficiency, basic rest APIs, and front-end skills in HTML, CSS, and JavaScript. Prepare for PayPal rest API integration and subscription management.
explore the full course roadmap for building a Django subscription platform, from baseline setup and custom user models to writer and client apps, subscriptions, and PayPal integration.
Access course support via the Q&A forum to get answers from me or fellow students. Try solving issues on your own first, then ask for help to build problem-solving skills.
Structure your sort process with clear steps and a schedule. Set goals, stay consistent, avoid overdoing it, and pursue slow, long-term knowledge for the Python Django subscription platform course.
Install python 3.11.1 on Windows, add to path, verify with Python and pip; install Visual Studio Code, enable path, and add extensions like plastic, prettier, Django support.
Learn to install python on macOS from python.org, verify python and pip, then install Visual Studio Code on macOS and customize with themes and extensions like prettier.
Set up a Windows Django project by creating a dev folder, configuring a virtual environment, installing Django, and running the local server at localhost.
practice migration management by reviewing unapplied migrations and avoiding premature migrations while planning a custom user model with email authentication for a django project.
Compare Django’s default user model with a custom one, showing how to swap username for email, handle migrations, and extend authentication with extra fields.
Explore abstract user vs abstract base user, and learn when to replace username with email in a subclassed user model using the abstract base user.
Create a Django app named account to handle user creation and authentication, register it in settings.py under installed apps, and run the server to test.
Stop your server to keep it offline and clear the console, whether on Mac or Windows, to prevent running errors in upcoming lectures.
Create and customize the base user manager in Django by building managers.py, inheriting from BaseUserManager, and implementing create_user and create_superuser with email normalization and password handling.
Implement the create_superuser method in the base user manager by setting is_staff, is_superuser, and is_active to true in extra_fields, validating them, and returning create_user with email and password.
Create a custom user model as an abstract base user with email-based authentication, a custom user manager, and fields like email, first name, last name, and date joined.
Add a boolean is_writer field to your custom user model with a friendly verbose_name 'are you a writer?', distinguishing writers from clients in your Django subscription platform.
Set your custom user model as the default in settings.py by referencing the account app's custom user class, and place the model setting under installed apps for the Django project.
Create and migrate a custom user model, register it with admin, and demonstrate sign-in with email and password, including superuser creation, admin management, and deletion tests.
Construct the account app base urls and views in a Django project by creating urls.py, configuring top-level routing with include, and mapping home, register, and login views to url patterns.
Create and attach app-level Django templates under templates/account, render index.html, register.html, and my-login.html with render, and verify routes by running the server.
Configure django to serve static files by creating a base static folder, updating settings.py with the static files directory, and organizing css and js folders.
Restructure and style the homepage using a pre-made index.html template with Bootstrap Bootswatch Luxe, a responsive navbar, and set up register and login routes.
Add basic css styling by creating styles.css in static/css, set the body background in index.html, link styles.css, and ensure login and register pages reflect the change.
Create a Django user registration flow using a CreateUserForm from UserCreationForm, with email, first name, last name, is_writer on a custom user model, plus a view and template.
Apply styling to login and registration forms by integrating bootstrap themes and custom css, creating a centered container with padding, borders, and responsive breakpoints for polished form layouts.
Learn to create a Django app for clients, add it to installed apps, and run the server to ensure smooth functionality for client management in a subscription platform.
Create a writer Django app and add it to settings to power all writer functionality. Stop the server, start the Django admin for the writer app, and confirm it’s created.
Construct and connect urls and views for the client and writer apps in Django, using urls.py, path, include, and dashboard views to establish routing.
Render authentication templates for client and writer apps, creating client dashboard and writer dashboard html pages, and use render and redirect to navigate to client-dashboard and writer-dashboard on login.
Implement user logout in a django app by using the logout function, creating a user_logout view, and wiring the URL and template link to redirect to the login page.
Learn to protect account-related views in Django by applying the login_required decorator to client and writer views, enforcing authentication before access.
Learn how template inheritance in Django uses a base template with reusable elements, like navigation bars, buttons, and forms, defined as blocks that child templates override.
Configure template inheritance to build a shared navigation bar using nav bar HTML, block content, load static, and a base template for a unified writer app layout.
Restructure and style the Django dashboard using bootstrap to create a centered white container, with padding and borders, and display a welcome message with the user's first name.
create and register the article model in django, including title, content, date posted, is premium, and a foreign key to the custom user, then migrate and register it in admin.
Build a Django article creation flow with a custom model form, including fields title, content, and is_premium, wiring views, urls, templates, and saving with commit=False under request.user.
Extend the navbar template and create an article page using a Django form with crispy forms, csrf token, and post handling, styled with Bootstrap in a container.
Learn to implement a Django read article feature by creating the my articles view, URL, and template, filtering articles by the logged-in user and rendering them.
Explore dynamic urls in Django by using a url dispatcher with angle brackets and placeholders like str and pk to navigate to unique pages via http requests.
Create a dynamic update article page in Django, pre-fill a form with the article instance, handle post to save changes, and link from my articles.
Learn to use try and except in Django to secure article operations by verifying the logged-in user matches the article owner, redirecting unauthorized access to my articles.
Implement delete article in Django by creating a delete article view and dynamic url, handling post requests, redirecting to my articles, and wiring templates and confirmation links.
Welcome! I'm here to help you to build your own subscription platform with Django.
-- Please read carefully --
This course is primarily intended for those with a basic knowledge of Django and REST API's. You also need to have some knowledge of HTML, CSS, JavaScript and a little bit of bootstrap would be helpful. If you meet these conditions then this course is for you!
I want to help YOU to build your very first subscription platform!
Please note:
This subscription platform project that is developed in this course is for learning purposes only. I will teach you how to build a subscription platform with the expected custom functionalities.
I do not promise that this course is going to be a 100% solution for your business. Another important thing to bear in mind, is that this course is not for non-technical users.
Topics to be covered:
1) Create a custom user model: Tailor a specialized user model to meet the unique requirements of the subscription platform.
2) User creation and authentication: Implement secure user registration and authentication processes using Django.
3) User logout and account view protection: Enhance account security with logout functionalities and controlled account views.
4) Interface base navigation and layout: Design an intuitive interface using Django templates, emphasizing user-friendly navigation.
5) CRUD management for articles: Master Django's capabilities for Create, Read, Update, and Delete operations in article management.
6) Account management: Develop tools for users to efficiently manage their accounts within the Django framework.
7) Subscription setup - Phase I and II: Establish subscription functionalities in two comprehensive phases for enhanced user engagement.
8) PayPal - Initial Setup: Integrate PayPal for seamless online payment processing, with a focus on initial setup within the Django environment.
9) Create a Subscription with PayPal's API: Implement subscription creation using PayPal's API, ensuring a smooth user experience.
10) Delete a Subscription with PayPal's API: Develop functionality enabling users to cancel subscriptions seamlessly through PayPal's API.
11) Update a Subscription with PayPal's API - [Optional]: Explore additional content on updating subscriptions using PayPal's API within the Django framework. Guidance will be given on to explore and do external research on implementing an update solution (upgrade/downgrade subscriptions).
12) Client - Subscription workflow optimisation: Optimize the subscription workflow for improved client-side performance and a streamlined user experience.
13) PayPal - Production Mode: Transition the PayPal integration to production mode, ensuring readiness for real-world usage.
14) Password management: Implement Django's secure password management practices for enhanced user account security.
15) User Interface / Experience - Design: Focus on designing an engaging and responsive user interface and experience using Django templates.
16) Email verification: Strengthen account security through Django-based email verification processes.
17) Cloud storage with Amazon S3: Integrate Amazon S3 for efficient and scalable cloud storage solutions within the Python Django framework.
18) Create a PostgreSQL database with Render: Set up a PostgreSQL database using Render to efficiently manage data in conjunction with Django.
19) Deployment to Render: Learn the process of deploying the complete Python Django-based subscription platform to the Render platform for public access.
This course provides a hands-on, end-to-end experience in building a subscription platform using Python Django, covering technical intricacies, user experience design, and integration with external services crucial for a modern web application.
The Python Django: Build a Subscription Platform - course has been structured in a simple and logical order. Everything that has been designed from the styling to the graphics and topics covered is crafted with the absolute duty of care towards the student.
It covers all the concepts that you need to be aware of, in order to create your subscription platform.
The course is structured in a logical and cohesive way - not just random lectures plastered everywhere.
It starts off very simple and then builds on gradually throughout the course.
This course is jam-packed with code snippets/references and with the full project source code (as a zip file).
We will learn how to integrate PayPal functionality for subscription payments.
The Python Django: Build a Subscription Platform course is a highly practical course and allows you to apply your knowledge:
There is a wealth of hands-on lectures throughout this course.
Your instructor:
My name is Arno Pretorius. I'm a qualified IT teacher who has taught programming both in-person and online. My main passions are teaching and technology, so I thought why not just combine the best of both worlds to create something truly amazing and valuable. Over the years, I have created and deployed many real-world Django-based applications, including a job portal for university graduates and an exclusive social network.
I'm a Software developer, an AWS Solutions Architect and Developer associate. I have a keen interest in cloud computing, web development and everything that relates to programming and technology.
So, let's go and become fluent in Django, along with an extra service or two.
Trust me you are in good hands!
This course also comes with:
- 18 + hours of on-demand video
- Full lifetime access
- A Udemy certificate of completion
- Access on mobile and TV
Join me in this course if you want to build your own subscription platform with Django!