Back to Work
Client Work

Novel School Portal

A complete Django 5.x Multi-Page Application combining a high-performance public frontend with a secure, modular admin portal, deployed via Docker with full Redis caching.

Technologies Used

Django 5PostgreSQLRedisCloudflare R2DockerTailwind CSS

šŸš€ Project Overview

This is a multi-page application (MPA) built with Django Templates that provides a complete web presence for schools with:

  • Django 5.x - Modern Python web framework with full ORM
  • PostgreSQL - Robust relational database with connection pooling
  • Cloudflare R2 - Scalable object storage for static & media files
  • Redis - Caching and session management for performance
  • Gunicorn - Production-grade WSGI server (in Docker)
  • Nginx - Reverse proxy (optional, runs on host, outside Docker)
  • Docker Compose - Multi-container orchestration for Django, PostgreSQL, Redis
  • Tailwind CSS - Responsive design system with utility classes

šŸ—„ļø Database Models

Site Configuration (site_config)

  • SiteSettings - School name, motto, contact info, social links
  • VisionMission - Vision statement, mission, core values
  • PageSEO - Per-page meta tags for SEO

Pages (pages)

  • HeroSection - Homepage hero banner content
  • AboutPage - About page settings & statistics
  • StatHighlight - Key statistics display
  • ContactPage - Contact page settings & addresses
  • ContactSubmission - Contact form submissions

People (people)

  • PrincipalMessage - Principal profile & message
  • ManagementMember - Leadership team members
  • Testimonial - Student/parent testimonials
  • TimelineEvent - School history timeline

Facilities (facilities)

  • Facility - Individual facilities (library, lab, sports)
  • FacilityImage - Facility photo galleries

Academics (academics)

  • AcademicsPage - Page configuration
  • ClassCategory - Class levels (Primary, Secondary)
  • Subject - Subjects per category
  • Achievement - Awards & recognitions
  • ResultDocument - Board exam results PDF

Admissions (admissions)

  • AdmissionInfo - Page settings & guidelines
  • AdmissionStep - Step-by-step process
  • AdmissionDocument - Forms & downloadable files
  • AdmissionEnquiry - Application inquiries

Communication (communication)

  • Notice - Official school notices
  • Event - School events & activities

Gallery (gallery)

  • GalleryCategory - Photo album categories
  • GalleryImage - Gallery photos with descriptions

Disclosures (disclosures)

  • GeneralInfo - General disclosure items
  • InfrastructureInfo - Infrastructure details
  • FeeInfo - Fee structure information
  • StaffInfo - Staff details
  • AcademicInfo - Academic information
  • DocumentCertificate - Compliance certificates

šŸ”‘ Key Features

āœ… Complete CMS - Django admin for all content management
āœ… SEO Optimized - Meta tags, sitemaps, robots.txt, structured data
āœ… Responsive Design - Mobile-first Tailwind CSS design system
āœ… Performance Optimized:

  • Redis caching for pages & queries
  • Gzip compression for responses
  • Static files served via R2 or locally
  • Database connection pooling
  • Rate limiting on API endpoints

āœ… Security Features:

  • CSRF protection
  • SQL injection prevention (ORM)
  • XSS protection (template auto-escaping)
  • Rate limiting middleware
  • Secure headers (HSTS, CSP, X-Frame-Options)
  • HTTPS/SSL support with Let's Encrypt

āœ… Media Management:

  • Image auto-compression to WebP
  • PDF auto-optimization
  • CDN-ready with Cloudflare R2
  • Local fallback for development

āœ… Logging & Monitoring:

  • Structured JSON logging
  • Error tracking to files
  • Request logging
  • Django debug toolbar (development)

šŸ“Š Cache Configuration

The application uses Redis with the following cache layers:

  • Page Cache - Full page caching (5 minutes default)
  • Query Cache - Database query caching
  • Template Cache - Template fragment caching
  • Session Storage - User sessions in Redis

šŸ”’ Security

The application implements enterprise-grade security:

  • Middleware Stack: Rate limiting, GZIP compression, caching
  • Database: PostgreSQL with prepared statements (SQL injection prevention)
  • Templates: Django auto-escaping (XSS prevention)
  • HTTPS: SSL/TLS with automatic redirects
  • Headers: HSTS, X-Frame-Options, Content-Security-Policy
  • CSRF: Token-based CSRF protection on all forms
  • Rate Limiting: 30 requests/second per IP (configurable)

Ready to build something
extraordinary?

Whether you have a specific project in mind or just want to explore the possibilities, I'm here to help you turn your vision into reality.

Get in Touch