-
-
Landing page: generate a Bloom-calibrated exam in 1-3 minutes. Under 1 MB per student, $0 cost, three simple steps.
-
Teacher registration over WhatsApp: a Gemini agent collects name, email, and phone, then sends a dashboard link — no forms.
-
Teacher dashboard: manage multiple groups and question banks, generate a new exam, and track everything from one screen.
-
Upload course material: paste text or upload a .md, .docx, .pdf or .txt file — up to 60,000 characters, analyzed by examInA.
-
Real course material pasted in: an Information Technology for Business syllabus, ready to generate a calibrated question bank.
-
Exam settings: choose difficulty mix, question type, bank size, questions per student, and language — English or Spanish.
-
Generated question bank: each question tagged by Bloom level, with the correct answer and reasoning shown to the teacher.
-
Intermediate-level questions apply concepts to real scenarios — not simple recall, calibrated against Bloom's Taxonomy.
-
Advanced questions require justifying a decision, not just picking an answer — the top of Bloom's Taxonomy, generated automatically.
-
Live exam monitor: real-time grades and integrity events (tab switches, lost focus) as students complete the exam.
-
Each exam gets a shareable link and a QR code — students join instantly, no app install and no account needed.
-
Before starting: fullscreen required, tab switches and copy/paste are logged — the teacher gets an integrity report, not a lockdown.
-
The student's exam view: one question at a time, fullscreen, no distractions, no app to install.
-
Instant results: score plus a graded explanation for every question — grading is exact-match code, never AI.
-
One-click export to Excel: grades, timestamps, and integrity flags like tab exits, ready for the teacher's own gradebook.
Inspiration
Last semester I gave a 30-question exam through an online form. Thirty students finished it in under 10 minutes. The average score was above 90 out of 100. They were pasting the questions into an AI tool and copying the answers back. I have taught International Business at university level for 25 years. That day I understood two things at once. Writing a good exam by hand costs me hours I do not have. And the exam I had just written no longer measured anything. So I decided to use the same technology my students used against me. ExamInA generates the exam from my own course material, in the time it takes to drink a coffee, and gives every student a different combination of questions from the same bank. What a teacher gets
- A 30-question bank from your own material in 1 to 3 minutes, not hours.
- Questions built from what you actually taught, not a generic external question bank.
- Automatic distribution across Bloom's Taxonomy levels, without classifying anything by hand.
- Delivery by link or QR code. No installation, no student accounts, no training.
- A different question combination per student, which removes the value of a shared answer key.
- Grading that never touches AI, so you can defend every single point to a student or a parent.
What it does
ExamInA turns a teacher's own material into a complete exam in minutes. I upload a PDF or paste text from my class, pick language, difficulty, and question count, and Gemini 2.5 Flash generates a full question bank calibrated against Bloom's Taxonomy — from recalling facts to evaluating and creating. Every question ships with feedback explaining why each wrong option is a real conceptual mistake, not just which answer is correct. I share an access code or QR with my students — no account needed on their side. The exam runs in forced fullscreen with copy-paste blocked and a live watermark carrying the student's name; every integrity event (tab switch, fullscreen exit) is logged with a timestamp. Grading is instant and deterministic — exact-match comparison in code, never AI — and the student gets per-question feedback on screen and by email. Outside the dashboard, a second Gemini agent runs registration and support over WhatsApp: it greets a new teacher, asks for name and email in natural language, confirms the details, and sends the access link — no rigid menus, no fixed scripts.
How we built it
Next.js (App Router) on Cloud Run, Firestore for data, Gemini 2.5 Flash via Vertex AI for generation and the WhatsApp agent, Stripe for payments, Meta's WhatsApp Cloud API for the registration channel. The student-facing exam page is hand-written vanilla JavaScript embedded directly into server-rendered HTML — no framework — kept under 8kb so it loads fast on a school's weakest connection. Grading is a deterministic text comparison in code; I made that split deliberately: AI generates and understands, code decides and grades, so I can always explain a grade to a student or parent without appealing to "the model decided."
Challenges we ran into
On code: Getting an LLM to reliably return valid, pedagogically-structured JSON took several prompt iterations plus strict Zod validation as a last line of defense. My first bilingual prompt only translated the opening line — the model kept generating in Spanish even when English was selected, until I translated the entire instructional body, not just the header. A large question bank with full feedback approaches Vertex AI's streaming timeout, so I generate every bank in fixed parallel batches of 6 questions instead of one large call — a size-based threshold I tried first left mid-sized banks with no protection at all.
On security: Firestore has no native Row Level Security when accessed via the Admin SDK, so I requested a dedicated authorization audit that found and fixed 9 routes missing ownership checks, including two with no authentication at all — I didn't know how to write that defense from day one, but I knew how to demand and validate it. On business: updating my tax regime with Mexico's SAT (Sistema de Administración Tributaria — Mexico's federal tax authority, the Mexican equivalent of the U.S. IRS) so I can legally declare platform income, and opening a business bank account so I can link it to Stripe — plus setting up the WhatsApp bot through Meta's own developer verification and template-approval process, and building and configuring the Meta Ads creative and campaign from scratch. None of these are software bugs, but they took as much real time as any of the technical ones.
Accomplishments that we're proud of
The full loop works end to end, unattended: a teacher messages a WhatsApp number in plain language and is registered by an AI agent; uploads material and gets a Bloom-calibrated exam from a second AI agent; a student takes it in a locked-down browser session with a live integrity log; grading and feedback happen instantly with zero AI involvement in the actual score. I'm proudest that grading is provably deterministic — I can defend every point on every exam — while everything around it, from writing the questions to registering the teacher, is genuinely AI-native. And I'm proud the acquisition funnel already proves itself: a $57 USD Meta Ads test converted into 17 real WhatsApp conversations and the platform's first real teacher signups, before my target market has even returned from summer break.
Alignment with the UN Sustainable Development Goals ExamInA aligns with three UN 2030 Agenda Sustainable Development Goals, the same three it declares publicly on its landing page. SDG 4, quality education. The question bank is calibrated against Bloom's Taxonomy, so a bank distributes questions from remembering through evaluating and creating. A student cannot pass by memorizing, and a teacher gets the cognitive coverage a curriculum asks for without classifying anything by hand. SDG 10, reduced inequalities. A student exam page weighs under 1 MB and runs on a 3G connection, with no app to install and no account to create. A student in a rural community on a borrowed phone takes the same exam, under the same conditions, as a student in a city. Pricing is in Mexican pesos and payable by an individual teacher, not by an institution, so a teacher in an under-funded school does not depend on a purchasing department. SDG 12, responsible production. Assessment is fully digital: no exam is printed or photocopied, and the mechanism also removes the reprints a single detected leak normally forces. As of this submission, 44 exams have been generated on the platform — most of them my own quality-control testing, stated plainly rather than presented as real usage — and 27 exam sessions have been applied and graded without a single sheet of paper.
What we learned
Separating "what AI generates" from "what code decides" isn't a limitation — it's a trust feature. As a teacher, I trust a system more when grading is deterministic and auditable, and AI is used for what it does best: understanding content and producing variety. I also learned that in a database with no built-in row-level authorization, every new route is a place a security hole can creep in unless the same ownership-check pattern is enforced everywhere — that's now a hard rule in this codebase, not a suggestion.
What's next for ExamInA — AI-Generated Exams for Teachers
Finish the business-registration process already in motion (SAT tax regime, business bank account linked to Stripe) so the platform can legally collect the sales its funnel is already generating interest for. Convert the free signups already on the platform into paid plans as Mexican schools return from summer break between August 10 and 24. Scale the Meta Ads campaign now that I have real cost-per-conversation data to optimize against, and keep iterating the WhatsApp agent's sales and support conversations based on what real teachers ask it.
Impact measurement for the next 90 days: the challenge I'm solving is that AI tools make cheating on an exam trivial — my own classroom proved that in one semester, not gradually. My hypothesis is that generating every exam from a teacher's own material, with a different combination per student, restores real value to assessment because copying stops working. I'll measure the next 90 days with three numbers per teacher cohort: time from signup to first exam generated, percentage of free-plan teachers who apply that exam to real students (not just generate one), and percentage who return to generate a second exam unprompted. Today, the honest conclusion is directional, not causal: the full funnel from ad spend to signup to independently generated exam works end to end, and the next 90 days will show whether it converts into sustained classroom use now that Mexican schools are back in session.
On the product roadmap, already announced on the landing page as "Coming soon on WhatsApp," is adding a third agent layer that lets a teacher generate the question bank and get its access link or code directly from WhatsApp, with no computer required — so a teacher can create and apply an exam straight from their phone, in the classroom, on the spot. The other medium-term growth line is expanding the current business model (B2C, direct sale to each teacher) toward B2B, with school- or institution-level plans.
Built With
- brevo
- cloudflare
- docker
- firestore
- gemini-2.5-flash
- google-cloud-run
- meta-whatsapp-cloud-api
- next.js
- node.js
- pdf.js
- radix-ui
- react
- shadcn/ui
- stripe
- tailwind-css
- typescript
- vertex-ai
- zod
Log in or sign up for Devpost to join the conversation.