Platform Overview
MKTPraxis is an interactive marketing analytics education platform built by Dr. Andrew Baker, Associate Professor of Marketing at San Diego State University. It provides browser-based analytics tools, interactive reading modules, quizzes and assignments, live classroom games, and a market simulation designed for marketing courses.
| Attribute | Detail |
|---|---|
| Tools | 90 browser-based tools — analytics (regression, clustering, time series, conjoint, neural networks), model-fitting teaching labs, and a multi-round market simulation |
| Course content | Interactive reading modules (42 chapters) with embedded tools and check-your-understanding questions |
| Assessment | Quiz engine (7 question types), file-upload assignments with a gradebook, 10 live classroom game modes, achievement badges |
| Student access | Browser-only — no software installs, no app downloads |
| Cost to students | Free for students enrolled through a participating institution or course. A paid individual licence is available to the general public. |
| Operator | Andrew Baker / MKTPraxis (sole proprietorship, Utah) |
| Production since | 2024 |
Data & Privacy
What We Collect
| Data Category | What | Purpose |
|---|---|---|
| Account | Username, email, first and last name, hashed password, institution | Authentication, account recovery, and letting instructors identify students on a roster |
| Educational activity | Tool usage timestamps, quiz responses and scores, reading progress, game participation, badges | Instructor gradebook, engagement analytics |
| Submitted work | Files a student uploads to an assignment (PDF, Office documents, images) | Grading and instructor review |
| AI assistant | Messages exchanged with Praxis Pal, and the on-screen tool context sent with them | Answering the question, and improving the assistant |
| Purchases | Stripe customer and session identifiers, plan purchased, date. No card numbers. | Granting and supporting paid access |
| Security logs | Login timestamps, IP addresses, failed login attempts | Abuse prevention and account lockout |
What We Do NOT Collect
- No student ID numbers — the roster importer deliberately skips this column, so we never hold the identifier your SIS uses
- No card numbers — payments run through Stripe Hosted Checkout. Card data is entered on a page Stripe serves and never reaches our servers, which keeps us in the lowest PCI scope (SAQ-A).
- No advertising trackers or data sales — student data is never sold, rented, or shared for advertising
- No cookies for authentication — sign-in uses a token in browser localStorage. See the cookie table below for what is set.
Cookies
The platform does not use cookies to sign you in. Some cookies are still set, and an honest accounting matters more than a slogan:
| Cookie | Set by | Purpose |
|---|---|---|
| Session and CSRF cookies | Our backend (Django) | Cross-site request forgery protection and the staff admin interface. Marked Secure, HttpOnly and SameSite=Lax. |
| Analytics cookies | Google Analytics, Microsoft Clarity | Aggregate usage measurement on public and tool pages only (see below) |
Access Tiers
Tools carry one of three access levels. Enforcement is applied by our servers for paid content; the in-browser gate is a courtesy that tells a visitor what they are looking at.
- Open — usable without an account. Guest use generates no personal data.
- Account — requires a free sign-in. Uploading a CSV requires an account.
- Paid — requires an institutional entitlement or an individual licence. Reading modules, Praxis Pal, and the simulation are enforced server-side.
Data Sharing
We do not sell, rent, or share personal student data with third parties for advertising or marketing purposes. Data is shared only with:
- The student's instructor(s) — quiz scores, submitted work, tool engagement, course-scoped analytics only
- Anthropic — messages sent to the Praxis Pal assistant, and, where an instructor turns on AI-assisted grading, the submitted work being graded (see AI)
- Cloudflare R2 — object storage for uploaded files and archived AI transcripts
- Stripe — payment processing for individual licences
- Sentry — application error reports, configured to exclude personally identifying information
- Microsoft Clarity & Google Analytics — aggregate usage measurement on public marketing pages and tool pages. Neither is loaded on gradebooks, rosters, submissions, quizzes, or any other page that displays identifiable student records.
- SMTP2GO — for transactional and course email. Non-essential categories are individually opt-out.
Data Retention
| Data Type | Retention Period |
|---|---|
| Account information | Until account deletion, or 3 years after last login |
| Educational activity data | 3 years after last login, then anonymized |
| Submitted assignment files | Retained for the course record, then removed with the account |
| AI assistant conversations | Up to 3 years, then deleted. Transcripts move from the active database to compressed cold storage in the meantime, and are retained during that window so we can find where the assistant explains a concept badly. |
| Failed login attempts | 24 hours |
| Anonymized aggregate analytics | Retained indefinitely (cannot be traced to individuals) |
Account Deletion
Students can request account deletion from their profile page. The process follows a 21-day grace period:
- Student initiates deletion (requires password confirmation)
- Account is immediately deactivated — login is blocked
- Confirmation email is sent with the permanent deletion date
- During the 21-day grace period, the student can contact us to reactivate
- After 21 days, account is permanently deleted. Personal data is removed; educational activity data is anonymized.
Administrators can also process manual deletion requests within 30 days at info@mktpraxis.com.
Full policy: Privacy Policy
Security
Infrastructure
| Component | Provider | Details |
|---|---|---|
| Backend API | Render (US) | Django 5.2 / Python on Daphne ASGI server |
| Frontend | Netlify (US CDN) | Static HTML/CSS/JS — no server-side rendering |
| Database | Render Managed PostgreSQL | PostgreSQL 16, US region |
| Real-time messaging | Upstash Redis (US) | WebSocket channel layer for games/classroom features |
| SMTP2GO | Transactional and course email (MFA codes, password reset, digests) | |
| File storage | Cloudflare R2 | Assignment submissions, instructor uploads, archived AI transcripts |
| Error tracking | Sentry | Application exceptions, configured not to send personally identifying information |
| Payments | Stripe | Hosted Checkout for individual licences |
All infrastructure is hosted in United States regions, including the Cloudflare R2 bucket used for uploaded files and archived transcripts. No student data is stored outside the United States.
Encryption
- In transit: All connections use HTTPS/TLS. HSTS is enforced with a 1-year max-age, subdomain inclusion, and browser preload list registration.
- Session cookies: Marked Secure and same-site. CSRF protection enabled on all state-changing endpoints.
- Passwords: Hashed with PBKDF2-SHA256 (Django default). Never stored in plaintext. Validated against 4 strength rules (minimum length, common password blocklist, similarity check, numeric-only check).
Authentication
| Feature | Status |
|---|---|
| Token-based authentication | Yes — API tokens expire after 1 hour of inactivity. An optional "remember me" session lasts up to 30 days with token rotation. |
| Two-factor authentication (MFA) | Yes — email-based 6-digit code, 10-minute expiry. Automatically required for staff and administrator accounts; optional for students. A trusted device can skip the prompt for 30 days. |
| Email verification | Yes — single-use link, 48-hour expiry |
| Rate limiting | Yes — 120 requests/min per user, 10 requests/min anonymous, 10 AI messages/min, 10 file uploads/hour, 3 bulk operations/hour. Login, registration and password reset are separately throttled. |
| Account lockout | Yes — 10 failed login attempts triggers 30-minute lockout |
| Login audit trail | Yes — every login event logged with timestamp and IP |
| SSO / SAML | Not yet |
Data Isolation
Course data is strictly scoped. Instructors can only view students enrolled in their own courses. There is no cross-course data visibility — one instructor cannot access another instructor's student data, quiz results, or engagement analytics.
Security Assessments
MKTPraxis has not undergone a formal third-party security audit (e.g., SOC 2, ISO 27001). As a single-developer educational platform, we prioritize transparency about our security posture rather than claiming certifications we don't hold.
We welcome security questions from institutional IT teams. Contact info@mktpraxis.com for detailed technical discussions.
Subprocessors
Every third party that may process data on our behalf, and what each one receives.
| Provider | Function | Student data received |
|---|---|---|
| Render | Application hosting, PostgreSQL database | All platform data |
| Netlify | Static frontend hosting / CDN | None — serves files only |
| Upstash | Redis cache and real-time messaging | Session and game state, MFA codes |
| Cloudflare | R2 object storage | Uploaded assignment files, archived AI transcripts |
| Anthropic | AI assistant and AI-assisted grading | Assistant messages; submitted work where an instructor enables AI grading |
| SMTP2GO | Email delivery | Name and email address |
| Stripe | Payment processing | Purchaser email and payment details (card data never touches our servers) |
| Sentry | Error tracking | None — configured to exclude personally identifying information |
| Google Analytics | Usage measurement | None — public and tool pages only, no student records |
| Microsoft Clarity | Usage measurement and session replay | None — public and tool pages only, with text masking enabled; not loaded on any page showing student records |
AI Assistant (Praxis Pal)
MKTPraxis includes an optional AI-powered educational assistant called Praxis Pal. It helps students understand analytics concepts within the context of the tool they're using.
How It Works
- Students type a question while using an analytics tool or reading a chapter
- The message and current on-screen context are sent to Anthropic's API (Claude Haiku)
- The AI responds with an educational explanation scoped to the current tool
Data Sent to AI Provider
| Sent | Not Sent |
|---|---|
| Student's message text | Username or email |
| Current tool context (on-screen labels, summary statistics, chart descriptions) | Quiz scores or grades |
| System prompt (educational instructions) | Other students' data |
| The raw CSV file (analysis happens in the browser) |
Guardrails & Limits
- 30 messages per hour per student; 1,000 per day for instructor accounts
- Topic-scoped: Each tool context constrains the AI to relevant educational content
- Content filtering: System prompt prohibits harmful, offensive, or misleading content
- Retention: Transcripts are retained for up to 3 years, then deleted. See the retention table above.
AI-Assisted Grading
Instructors may optionally enable AI-assisted grading on an assignment. This is a separate feature from Praxis Pal, it is off unless an instructor turns it on, and it is the one place where student work itself is sent to an AI provider. It deserves to be stated plainly rather than buried.
How It Works
- An instructor writes a rubric and enables AI grading for that assignment
- The submitted work — text, and the contents of uploaded PDFs or images — is sent to Anthropic's API along with the rubric
- The model returns a suggested score and written feedback against each rubric dimension
- The instructor reviews it. A suggestion is not a grade until a human accepts it, and instructors can override any score or comment.
Accessibility
MKTPraxis is committed to making its platform accessible to all students, including those with disabilities. We are actively working toward WCAG 2.1 Level AA conformance.
Current Status
We run an automated accessibility audit across every page on the platform. In the most recent run, 176 pages were graded with an overall average of 85.8%. Publishing the distribution rather than a slogan is deliberate: 93 pages score an A, 7 a B, 45 a C, 29 a D, and 2 an F.
Measures in place across the platform:
- Skip navigation links
- Semantic HTML landmarks (
<main>,<nav>,<header>) - ARIA labels on data tables and interactive elements
- Keyboard-visible focus indicators (
:focus-visibleoutlines) - Respect for
prefers-reduced-motionuser preference - Form labels and
aria-describedbyon inputs - Color contrast ratios meeting AA thresholds in primary UI
- Per-student accommodation overrides (extra attempts, extended deadlines, time multipliers)
Known Gaps
That distribution means 76 pages currently sit below a B, and we would
rather you read that here than discover it. The most common failures are unlabeled form
inputs, a missing <main> landmark, and unlabeled data tables. The weakest
area is a group of instructor-facing simulation management screens. Remediation is ongoing
and prioritized by student-facing impact, which is why the student-facing tools and reading
modules score highest.
VPAT
A formal Voluntary Product Accessibility Template (VPAT) is not yet available. We can provide our internal accessibility audit data and discuss specific accommodation needs for your students. Contact info@mktpraxis.com.
Reporting Barriers
If you or your students encounter an accessibility barrier, please report it to info@mktpraxis.com. We aim to address reported accessibility issues promptly.
FERPA
MKTPraxis is designed to support institutional compliance with the Family Educational Rights and Privacy Act (FERPA). The platform's architecture reflects FERPA principles:
- Minimum necessary data: We collect only what's needed for educational functionality, and deliberately do not collect student ID numbers
- Course-scoped access: Instructors can only view data for students enrolled in their own courses
- No third-party data sales: Student data is never sold, rented, or shared for advertising
- Student data rights: Students can view, export, and request deletion of their data
- Audit trail: Login events and access patterns are logged for security monitoring
- Disclosed processing: The subprocessor table above lists every party that may handle student data, including the AI grading path
Integrations & Browser Requirements
LMS Integration
| Feature | Status |
|---|---|
| LTI 1.3 (Canvas, Blackboard, etc.) | Not yet |
| Canvas gradebook sync | Planned |
| SSO / SAML | Not yet |
| Standalone gradebook CSV export | Available |
MKTPraxis currently operates as a standalone platform. Students access it via registration codes provided by their instructor. Gradebook data is exportable as CSV for manual import into any LMS.
Browser Requirements
MKTPraxis runs in any modern web browser. No plugins, extensions, or software installs required.
- Supported: Chrome, Firefox, Safari, Edge (current and previous two major versions)
- Not supported: Internet Explorer
- Devices: Desktop, laptop, and tablet. Some tools work on mobile, but desktop is recommended for the best experience.
Compliance Checklist
Quick-reference table for common institutional requirements:
| Requirement | Status | Notes |
|---|---|---|
| HTTPS / TLS encryption | Yes | HSTS enforced, 1-year max-age, preload registered |
| Password hashing | Yes | PBKDF2-SHA256, 4 validation rules |
| Two-factor authentication | Yes | Email-based. Required for staff/admin accounts, optional for students. |
| Rate limiting & lockout | Yes | Login, registration, password reset endpoints |
| Course-scoped data isolation | Yes | Instructors see only their own students' data |
| Student data export | Yes | Gradebook CSV export available |
| Account deletion | Yes | Self-service with 21-day grace period, or manual request |
| Data retention policy | Yes | 3 years active, then anonymized. AI transcripts retained up to 3 years — see retention table. |
| No student data sales | Yes | Never sold, rented, or shared for advertising |
| CSV analysis data stays client-side | Yes | Files loaded into analytics tools are parsed in-browser and never uploaded |
| Student file uploads stored | Assignments only | Work submitted to an assignment is stored for grading |
| Free for students | Yes | Free when enrolled through a participating institution or course. Paid individual licence for the general public. |
| PCI compliance | SAQ-A | Stripe Hosted Checkout — card data never reaches our servers |
| Subprocessor list published | Yes | See the Subprocessors section above |
| AI processing of student work | Opt-in | Only where an instructor enables AI grading. Can be disabled institution-wide. |
| FERPA support | Supported | Architecture supports FERPA compliance. DPA available on request. |
| WCAG 2.1 AA | In progress | 176 pages audited, 85.8% average, 93 at A. Full report available on request. |
| SOC 2 / ISO 27001 | No | No third-party security audit to date |
| LTI / LMS integration | Planned | Canvas gradebook sync in development pipeline |
| SSO / SAML | No | Not yet available |
| Uptime SLA | No | Best-effort availability. No contractual uptime guarantee. |
Questions?
We welcome inquiries from institutional IT, compliance, procurement, and accessibility teams.
General & technical: info@mktpraxis.com
Academic & institutional partnerships: drbaker@mktpraxis.com
Related documents: Privacy Policy · Terms of Use · Contact & Info