Premium course Django + VueWritten lessons

Build a Customer Support SaaS with Django and Vue

Build a shared support inbox with Django and Vue, then add workspaces, team permissions, subscriptions and deployment.

12 lessons available · More lessons coming soon

The project

Build SupportDesk, step by step.

This premium written course follows the development of SupportDesk, a customer support application for small teams. We will build the Django backend and Vue frontend together, with code examples and a working checkpoint at each stage.

Parts 1, 2 and 3 are available now: twelve lessons covering project setup, user accounts and workspaces, including registration, session authentication, password resets, workspace onboarding and membership-based access. The remaining 11 parts are planned and their lessons are marked Coming soon. The course is still in progress.

You should know basic Python, HTML and JavaScript. The opening lessons show the complete local setup, and the later parts cover workspaces, ticket conversations, subscriptions, background jobs, testing and deployment.

Start Part 1: Project setup

Your learning path

Course curriculum

14 parts · 56 lessons

Log in to save your progress as you learn.

01 Project setup4 lessons Available
  1. What we are building Written lesson · Free preview
    Premium
  2. Premium
  3. Premium
  4. Premium
02 User accounts4 lessons Available
  1. Premium
  2. Premium
  3. Premium
  4. Premium
03 Workspaces4 lessons Available
  1. Premium
  2. Premium
  3. Premium
  4. Premium
04 Team members and invitations4 lessons Coming soon
  1. Adding owner, admin and agent permissions Planned lesson
    Premium Coming soon
  2. Creating expiring invitations Planned lesson
    Premium Coming soon
  3. Accepting invitations and joining a team Planned lesson
    Premium Coming soon
  4. Changing roles, removing members and protecting the last owner Planned lesson
    Premium Coming soon
05 Creating the support inbox4 lessons Coming soon
  1. Creating customer and ticket models Planned lesson
    Premium Coming soon
  2. Building serializers and the ticket-list endpoint Planned lesson
    Premium Coming soon
  3. Displaying the inbox with loading and empty states Planned lesson
    Premium Coming soon
  4. Creating tickets from the application Planned lesson
    Premium Coming soon
06 Working with tickets4 lessons Coming soon
  1. Building the ticket detail page Planned lesson
    Premium Coming soon
  2. Editing a ticket Planned lesson
    Premium Coming soon
  3. Assigning agents and changing ticket status Planned lesson
    Premium Coming soon
  4. Filtering, searching and paginating the inbox Planned lesson
    Premium Coming soon
07 Conversations and customer access4 lessons Coming soon
  1. Adding messages and agent replies Planned lesson
    Premium Coming soon
  2. Building authenticated customer access to their own tickets Planned lesson
    Premium Coming soon
  3. Separating internal notes from customer-visible replies Planned lesson
    Premium Coming soon
  4. Uploading and downloading attachments with access checks Planned lesson
    Premium Coming soon
08 Emails and background jobs4 lessons Coming soon
  1. Configuring transactional email and a production-capable task backend Planned lesson
    Premium Coming soon
  2. Sending notifications after database commits Planned lesson
    Premium Coming soon
  3. Retrying failures and preventing duplicate application work Planned lesson
    Premium Coming soon
  4. Scheduling reminders and inspecting failed jobs Planned lesson
    Premium Coming soon
09 Plans and subscriptions4 lessons Coming soon
  1. Creating workspace plans and enforcing agent limits Planned lesson
    Premium Coming soon
  2. Starting Stripe Checkout for the workspace owner Planned lesson
    Premium Coming soon
  3. Verifying webhooks and handling repeated or out-of-order events Planned lesson
    Premium Coming soon
  4. Adding the billing portal, failed-payment handling and cancellation rules Planned lesson
    Premium Coming soon
10 Knowledge base4 lessons Coming soon
  1. Creating and editing help articles Planned lesson
    Premium Coming soon
  2. Serving public articles and search from Django Planned lesson
    Premium Coming soon
  3. Adding metadata, canonical URLs and sitemaps while excluding private pages Planned lesson
    Premium Coming soon
  4. Using knowledge-base articles in saved replies Planned lesson
    Premium Coming soon
11 Reporting and integrations4 lessons Coming soon
  1. Building an inbox dashboard with defined response-time metrics Planned lesson
    Premium Coming soon
  2. Adding an activity history Planned lesson
    Premium Coming soon
  3. Creating scoped, revocable API credentials for an external ticket endpoint Planned lesson
    Premium Coming soon
  4. Adding workspace-scoped CSV exports and checking query counts Planned lesson
    Premium Coming soon
12 Testing the complete product4 lessons Coming soon
  1. Expanding the permission matrix tests for agents, customers and workspaces Planned lesson
    Premium Coming soon
  2. Testing subscription changes and background-job failures Planned lesson
    Premium Coming soon
  3. Testing the sign-up-to-ticket flow in the browser Planned lesson
    Premium Coming soon
  4. Handling API errors, request limits and application logging Planned lesson
    Premium Coming soon
13 Deploying to UpCloud4 lessons Coming soon
  1. Preparing the server, PostgreSQL and production settings Planned lesson
    Premium Coming soon
  2. Running Django and workers with Gunicorn and Supervisor Planned lesson
    Premium Coming soon
  3. Configuring Nginx, HTTPS, Vue assets and private uploads Planned lesson
    Premium Coming soon
  4. Backing up the database and uploads, then restoring them Planned lesson
    Premium Coming soon
14 Automating releases and preparing launch4 lessons Coming soon
  1. Automating releases with Deployer Planned lesson
    Premium Coming soon
  2. Handling migrations, smoke checks and rollback limits Planned lesson
    Premium Coming soon
  3. Checking live billing, email delivery and monitoring in a staged release Planned lesson
    Premium Coming soon
  4. Polishing onboarding, demo data and the final project documentation Planned lesson
    Premium Coming soon

Ready to build along?

Start with the project overview and set up your application.

Start learning

Stein Ove Helset

Your instructor
Hey! My name is Stein Ove Helset. I'm a self-taught software developer with over a decade of experience working full time as a web developer. Through this website and YouTube channel, I have taught thousands of people how to code, build websites, games and similar.

If you're looking for an introduction to coding and web development, you've come to the right place.

Newsletter

Subscribe to my weekly newsletter. One time per week I will send you a short summary of the tutorials I have posted in the past week.