Driving Mastery
UK Theory Test Learning Platform
Project Overview
Driving Mastery is a comprehensive web-based learning platform designed to serve both learners and instructors in preparing for the UK driving theory test. The application provides an interactive, module-based curriculum covering all essential aspects of road safety, traffic laws, and hazard perception.
Instructors can leverage AI-powered tools to generate custom learning materials tailored to their teaching methodology. The project is currently in active development and represents my first time working with this particular combination of tools and technologies, including VPS deployment and several new integrations across authentication, payments, email services, and AI content generation.
Learner Platform
Instructor Platform
Technical Stack
Backend
- Django — High-level Python web framework for rapid development and clean, pragmatic design
- Python — Core programming language
- SQLite — Lightweight database during development (configured for production migration)
- Whitenoise — Static file optimization, compression, and efficient serving of assets in production
Frontend
- Tailwind CSS — Utility-first CSS framework for responsive, modern UI design
- HTML5/CSS3 — Semantic markup and styling
- JavaScript — Client-side interactivity
AI Integration
- Google Vertex AI — Integration for intelligent content generation
- Gemini 2.5 Flash with Image Generation (Nano Banana) — Generates high-quality driving diagrams and visual learning materials
- Service Account Authentication — Secure communication using Google Cloud credentials
Payment Processing & Email Services
- Stripe — Integrated for subscription management and course purchases
- Brevo (Sendinblue) — SMTP provider for transactional emails (authentication, password resets, notifications)
Deployment & DevOps
- DigitalOcean VPS — Dedicated virtual server hosting the entire production environment
- Server configuration, SSH access, static file optimization, process management, and environment-specific settings
Advanced Techniques & Implementation
Dual Authentication System
Implemented two completely separate authentication systems within a single Django project:
- Learner Authentication (learners_auth) — Auth flow for students
- Instructor Authentication (instructors_auth) — Auth flow for instructors
Both systems include fully functional password reset logic with email verification, built with custom user models and authentication backends. Additionally, the platform uses a two-hub structure inside one Django project: Learner Hub (learning modules, quizzes, progress tracking) and Instructor Hub (AI tools, teaching resources, management features).
AI-Powered Content Generation
Integrated Google Vertex AI with Gemini 2.5 Flash and Nano Banana image generation to enable instructors to create custom learning materials. The system generates clear, professional road diagrams and visual aids that can be tailored to specific teaching requirements.
Stripe Payment Integration
Stripe powers all financial operations, including recurring subscriptions, one-time payments, and webhook-driven notifications to manage premium access securely and reliably.
Third-Party SMTP Configuration
Brevo (Sendinblue) is used for all SMTP operations. Since the VPS blocks outbound SMTP ports, integrating a third-party provider was essential for handling all authentication, password reset, and notification emails.
Multi-App Architecture
The Django project is structured into distinct apps:
- instructors — Instructor dashboard and AI content generation tools
- learners — Student-facing modules across 16+ topics
- instructors_auth & learners_auth — Dual authentication systems
- payments — Stripe payment management
- lamination — Ordering and preparation of printed learning materials
Lamination System
The lamination feature allows instructors to order professionally printed and laminated diagrams. These diagrams come from two sources:
- Instructor-generated diagrams using Gemini through the platform
- A preset library of common driving scenarios (roundabouts, junctions, hazard situations, etc.)
All printed materials are laminated, allowing instructors to use dry-erase markers to draw on top, demonstrate complex road scenarios, illustrate learner mistakes or dangerous situations, and reuse the diagrams during lessons without wear. This turns AI-generated materials into practical, physical teaching tools for real driving instruction.
Future Roadmap
AI-Powered Learning Assistant
Plans include an integrated chatbot using OpenAI Agent Builder to deliver:
- Personalized guidance
- Learner performance analysis
- Learning recommendations
- Theory question answers
- Identification of weak areas for each student
Comprehensive Driving School Management System
The instructor dashboard will evolve into a full driving school management suite, including:
- Learner management and profiles
- Private notes per session
- Driving route planning
- Detailed learner analytics
- Lesson scheduling and availability
- Rate configuration and pricing tools
- Integrated messaging and notifications
This will turn the platform into a complete end-to-end system for modern driving schools.
Development Journey
The platform is in active development, with ongoing enhancements to learning modules, AI tools, and the overall user experience.
Deploying to a DigitalOcean VPS introduced entirely new workflows for me: server configuration, SSH, SMTP restrictions, static optimization through Whitenoise, and production setup. This experience significantly expanded my understanding of DevOps and full-stack deployment beyond standard shared hosting.
This is my first major project involving VPS deployment, AI integration, and production-grade payment processing. Every challenge has been a valuable learning opportunity.