Welcome to Maths Society Platform
An interactive Flask web application designed for school math societies. Students can attempt challenges, track progress on leaderboards, compete in timed competitions, and read educational articles and newsletters. Administrators have full control through a powerful admin panel.Interactive Challenges
Students can attempt math challenges with MathLive input support and scheduled release times
Summer Competition Mode
Timed competitions with locked challenges and real-time leaderboard tracking
Leaderboards & Stats
Track student progress, rankings, and performance statistics across challenges
Articles & Newsletters
Rich content creation with CKEditor support and PDF-friendly file uploads
Core Features
Authentication & User Management
Authentication & User Management
Complete user authentication system with role-based access control:
- Student accounts with profile management
- Admin accounts with elevated privileges
- Secure password handling with Werkzeug
- Flask-Login session management
Challenge System
Challenge System
Flexible challenge management with advanced features:
- MathLive input for mathematical expressions
- Scheduled release times for challenges
- Automatic answer validation
- Support for various difficulty levels
- Track student attempts and progress
Admin Panel
Admin Panel
Comprehensive admin dashboard for managing the platform:
- User management (create, edit, delete users)
- Challenge creation and editing
- Article and newsletter management
- Competition scheduling and monitoring
- Platform analytics and statistics
Content Management
Content Management
Rich content creation capabilities:
- CKEditor integration for WYSIWYG editing
- File upload system for PDFs and images
- Newsletter publishing system
- Article categorization and tagging
Technology Stack
The Maths Society Platform is built with modern, reliable technologies:Flask 2.1
Python web framework with application factory pattern
SQLAlchemy
ORM with PostgreSQL support and migrations via Alembic
Flask-Login
User session management and authentication
WTForms
Form validation and CSRF protection
CKEditor
Rich text editor for content creation
Flask-Migrate
Database migrations with Alembic
Architecture Highlights
The platform follows Flask best practices with a modular blueprint-based architecture:The platform uses an application factory pattern (
create_app) which enables flexible configuration across development, testing, and production environments.Security Features
Built with security in mind:- Flask-Talisman for HTTPS enforcement and security headers
- Content Security Policy (CSP) configured for production
- CSRF Protection via Flask-WTF
- Rate Limiting with Flask-Limiter (200/day, 50/hour default)
- Profanity Filtering for user-generated content
- SQL Injection Protection through SQLAlchemy ORM
- ProxyFix middleware for proper header handling behind reverse proxies
Who is this for?
School Math Societies
Perfect for educational institutions running math clubs and competitions
Competition Organizers
Ideal for hosting timed math competitions and challenges
Educators
Great for teachers who want to engage students with interactive content
Student Groups
Suitable for student-run organizations promoting mathematical learning
Getting Started
Ready to dive in? Check out our quickstart guide to get your platform up and running in minutes:Quickstart Guide
Get from clone to running application in under 5 minutes
Installation Guide
Comprehensive setup guide for development and production environments
Open Source
The Maths Society Platform is open source and available under the MIT license. Contributions are welcome!Originally developed for Upton Court Grammar School’s Maths Society, this platform is now available for any educational institution to use and customize.