Last Updated: March 2026
Purpose: This document provides application context information for service and asset management systems. It contains technical and operational details about the MathMission application for IT administrators, service managers, and system integrators.
| Property | Value |
|---|---|
| Application Name | MathMission (MTH1W Math Mission) |
| Vendor/Publisher | Timothy Calford, operating as CalfordMath |
| Application Type | Web-based Educational Platform (SaaS) |
| Primary URL | https://calfordmath.ca/MathMission |
| Alternate Domain | https://mathmission.ca — 301 redirect to https://calfordmath.ca/MathMission (same application; no separate hosting) |
| Homepage URL | https://calfordmath.ca/MathMission |
| Terms of Service URL | https://calfordmath.ca/MathMission/terms-of-service.html |
| Privacy Statement URL | https://calfordmath.ca/MathMission/privacy-statement.html |
| Current Version | 1.0 |
| Component | Technology |
|---|---|
| Frontend | HTML5, CSS3, JavaScript (ES6+), p5.js |
| Backend | PHP 7.4+ |
| Database | MySQL/MariaDB |
| Authentication | Microsoft Azure Active Directory or Google OAuth (OAuth 2.0) |
| Payment Processing | Stripe (for teacher subscriptions) |
| Hosting | Web server with PHP and MySQL support |
The application is designed to work with modern web browsers, including:
Mobile browsers are supported, but the application is optimized for desktop use in educational settings.
The application uses Microsoft Azure Active Directory (Azure AD) or Google OAuth for single sign-on (SSO) authentication via OAuth 2.0 authorization code flow.
Microsoft Authentication:
| Permission | Type | Purpose |
|---|---|---|
| User.Read | Delegated | Read user's basic profile (name, email) |
| openid | Delegated | Sign users in and read profile |
| Delegated | Read user's email address | |
| profile | Delegated | Read user's basic profile information |
Google Authentication:
| Scope | Purpose |
|---|---|
| openid | Sign users in |
| Read user's email address | |
| profile | Read user's basic profile information (name, picture) |
Note: All permissions are standard OAuth2 scopes for user authentication. No write permissions or admin-level access is requested.
Some school boards and organizations require administrator consent, conditional access exceptions, or an allowed-application policy before users can sign in to third-party apps with Microsoft work or school accounts. The values below identify MTH1W Math Mission in the Microsoft Entra admin center. The Application (client) ID is the value most often used to locate or allowlist the app.
The Directory (tenant) ID in this table is the publisher (home) tenant for the app registration (CalfordMath). It is not your school board’s tenant ID. Your board’s IT department uses their own tenant for administration.
| Property | Value |
|---|---|
| Display name (Microsoft Entra / Azure portal) | MTH1W Math Mission |
| Application (client) ID | 68c49c1e-4f48-42ec-9c9b-425c3017fbea |
| Application ID URI | api://68c49c1e-4f48-42ec-9c9b-425c3017fbea |
| Directory (tenant) ID — publisher / home tenant | 5385787a-3be1-4909-be9d-c1e4080adfd2 |
| Supported account types (app registration) | All Microsoft account users (work, school, and personal Microsoft accounts, as configured for this multi-tenant registration) |
| Object ID (app registration, publisher tenant) | ae3c3138-12ee-4c08-8912-07dd1ecd5aaf — identifier for the app registration object in the publisher directory; the enterprise application entry in your tenant will have a different object ID after consent. |
| Managed application name (publisher directory) | MTH1W Math Mission |
Delegated permissions requested for sign-in are listed in §3.2 Required Permissions (Microsoft). For Microsoft’s overview of user consent vs. administrator consent, see: User and admin consent in Microsoft Entra ID.
Note: Application (client) IDs and tenant identifiers are public application metadata, not secrets. Do not publish client secrets, certificates, or API keys.
| Data Category | Description | Retention |
|---|---|---|
| User Profile | Name, email, profile picture (from Microsoft or Google account) | While account is active |
| Progress Data | Question attempts, answers, correctness, time spent | While account is active + reasonable period |
| Statistics | Aggregated performance metrics, accuracy, totals | While account is active + reasonable period |
| Class Membership | Class codes, enrollment information, teacher associations | While account is active |
| Payment Information | Subscription status, billing history (processed by Stripe) | As required by law |
| Deletion audit log | Account deletion requests, grace periods, data deletion, reinstatements (deletion_log) | Minimum 7 years (compliance) |
Primary database tables include:
include_in_leaderboard and include_in_stats for leaderboard and analytics participationclass_code for leaderboard and progress filtering by classstatus including deleted, deleted_at, deletion_grace_expires)Leaderboards: Leaderboard data is not stored in separate tables. Rankings are computed on demand from question_instances, class_membership, and classes, with scopes such as My Class, My School, school board, or all classes (subject to class and student opt-in settings). A per-question top-five leaderboard is also available per class.
Data is stored on servers located in Canada. All data transfers use encrypted connections (HTTPS/TLS).
Account deletion is available via the admin panel and follows a defined process for compliance (PIPEDA, GDPR, FERPA):
deleted and a 48-hour grace period begins (deleted_at, deletion_grace_expires in teacher_subscriptions).process_pending_deletions.php) permanently deletes all associated data (classes, class membership, question instances, progress, etc.) except the users and teacher_subscriptions records, which are retained until the subscription expiry date.active); no data is restored, but they can use the service again as a teacher.All deletion-related actions are recorded in the deletion_log table (user ID, email, action type, timestamps, subscription context). This audit log is retained for a minimum of 7 years for legal compliance.
The application is provided as a best-effort service. While we strive for high availability, we do not guarantee:
We commit to fixing bugs and issues to the best of our ability in a timely fashion.
Scheduled maintenance, when necessary, will typically occur during off-peak hours. We will provide advance notice when possible for planned maintenance.
The application is designed to comply with:
| Service | Purpose | Data Shared |
|---|---|---|
| Microsoft Azure AD | Microsoft authentication | OAuth tokens, basic profile (name, email) |
| Google OAuth | Google authentication | OAuth tokens, basic profile (name, email) |
| Stripe | Payment processing | Payment information (we do not store credit card details) |
The application provides RESTful API endpoints for:
get_leaderboard.php (scopes: my_class, school, school_board, class; metrics and time periods); get_question_leaderboard.php (per-question top-five by class)request_account_deletion.php (initiate deletion with grace period), admin_reinstate_user.php (reinstate a user in grace/deleted state). A daily cron runs process_pending_deletions.php to complete post–grace-period deletions.API endpoints are located under: https://calfordmath.ca/MathMission/api/
Currently, the application does not provide webhook functionality for external integrations.
Data export functionality may be available through the teacher interface for progress and statistics.
Version 1.0 - Initial release
Updates are deployed as needed for bug fixes, security patches, and feature additions. Users are typically not required to take action for updates, as the application is web-based.
Users are granted a limited, non-exclusive, non-transferable license to use the Service for educational purposes, subject to the Terms of Service.
All content, features, and functionality are owned by Timothy Calford, operating as CalfordMath, and protected by copyright, trademark, and other intellectual property laws.
| Field | Value |
|---|---|
| Vendor Name | Timothy Calford, operating as CalfordMath |
| Contact Website | https://calfordmath.ca |
| Primary Contact | Timothy Calford, OCT |
Significant changes to the application will be communicated through:
This document will be updated to reflect significant changes to the application architecture, data handling, or service management processes.
© 2025 CalfordMath. All rights reserved.
This document is provided for service and asset management purposes.