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.
Your learning path
Course curriculum
14 parts · 56 lessons
Log in to save your progress as you learn.
01 Project setup4 lessons Available
-
Premium
-
Premium
-
Premium
-
Premium
02 User accounts4 lessons Available
-
Premium
-
Premium
-
Premium
-
Premium
03 Workspaces4 lessons Available
-
Premium
-
Premium
-
Premium
-
Premium
04 Team members and invitations4 lessons Coming soon
-
Adding owner, admin and agent permissionsPremium Coming soon
-
Creating expiring invitationsPremium Coming soon
-
Accepting invitations and joining a teamPremium Coming soon
-
Changing roles, removing members and protecting the last ownerPremium Coming soon
05 Creating the support inbox4 lessons Coming soon
-
Creating customer and ticket modelsPremium Coming soon
-
Building serializers and the ticket-list endpointPremium Coming soon
-
Displaying the inbox with loading and empty statesPremium Coming soon
-
Creating tickets from the applicationPremium Coming soon
06 Working with tickets4 lessons Coming soon
-
Building the ticket detail pagePremium Coming soon
-
Editing a ticketPremium Coming soon
-
Assigning agents and changing ticket statusPremium Coming soon
-
Filtering, searching and paginating the inboxPremium Coming soon
07 Conversations and customer access4 lessons Coming soon
-
Adding messages and agent repliesPremium Coming soon
-
Building authenticated customer access to their own ticketsPremium Coming soon
-
Separating internal notes from customer-visible repliesPremium Coming soon
-
Uploading and downloading attachments with access checksPremium Coming soon
08 Emails and background jobs4 lessons Coming soon
-
Configuring transactional email and a production-capable task backendPremium Coming soon
-
Sending notifications after database commitsPremium Coming soon
-
Retrying failures and preventing duplicate application workPremium Coming soon
-
Scheduling reminders and inspecting failed jobsPremium Coming soon
09 Plans and subscriptions4 lessons Coming soon
-
Creating workspace plans and enforcing agent limitsPremium Coming soon
-
Starting Stripe Checkout for the workspace ownerPremium Coming soon
-
Verifying webhooks and handling repeated or out-of-order eventsPremium Coming soon
-
Adding the billing portal, failed-payment handling and cancellation rulesPremium Coming soon
10 Knowledge base4 lessons Coming soon
-
Creating and editing help articlesPremium Coming soon
-
Serving public articles and search from DjangoPremium Coming soon
-
Adding metadata, canonical URLs and sitemaps while excluding private pagesPremium Coming soon
-
Using knowledge-base articles in saved repliesPremium Coming soon
11 Reporting and integrations4 lessons Coming soon
-
Building an inbox dashboard with defined response-time metricsPremium Coming soon
-
Adding an activity historyPremium Coming soon
-
Creating scoped, revocable API credentials for an external ticket endpointPremium Coming soon
-
Adding workspace-scoped CSV exports and checking query countsPremium Coming soon
12 Testing the complete product4 lessons Coming soon
-
Expanding the permission matrix tests for agents, customers and workspacesPremium Coming soon
-
Testing subscription changes and background-job failuresPremium Coming soon
-
Testing the sign-up-to-ticket flow in the browserPremium Coming soon
-
Handling API errors, request limits and application loggingPremium Coming soon
13 Deploying to UpCloud4 lessons Coming soon
-
Preparing the server, PostgreSQL and production settingsPremium Coming soon
-
Running Django and workers with Gunicorn and SupervisorPremium Coming soon
-
Configuring Nginx, HTTPS, Vue assets and private uploadsPremium Coming soon
-
Backing up the database and uploads, then restoring themPremium Coming soon
14 Automating releases and preparing launch4 lessons Coming soon
-
Automating releases with DeployerPremium Coming soon
-
Handling migrations, smoke checks and rollback limitsPremium Coming soon
-
Checking live billing, email delivery and monitoring in a staged releasePremium Coming soon
-
Polishing onboarding, demo data and the final project documentationPremium Coming soon