š 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)