Case studyAurethia Education · Horizon Beam · Aug 2026 to Oct 2026
An exam portal that runs two businesses on one question bank
I built an exam practice portal for an institute in Jaipur and took it from spec to live in 47 days.
- from the spec to live
- 47 days
The live site

Fact sheet
Past papers by topic with the mark scheme beside every question, test series, and logins for students, parents, teachers and the institute.
- Client
- Aurethia Education, India
- Through
- Horizon Beam
- Role
- Wrote it
- When
- Aug 2026 to Oct 2026
- Stack
- Next.js
- React
- MongoDB Atlas
- Amazon S3
- CloudFront
- EC2
- Razorpay
- Stripe
- Brevo
The problem
Aurethia Education teaches students sitting international boards. It wanted past paper practice by topic and by sitting, with the mark scheme next to every question, test series, and a way for teachers to build and print papers from the same question bank.
It also wanted to sell that same bank to teachers outside the institute. So one platform had to run two businesses: the institute's own classes and staff, and a subscription for outside teachers.
Constraints
- Questions arrive as images: the question, the mark scheme, the worked explanation and the teacher's notes. There's no text.
- Two businesses, one database. The question bank is shared, but student records, classes, attendance and marks must never cross from one tenant to another.
- Many of the students are minors.
- Buyers pay from India and from abroad, and some pay by bank transfer or cash.
- Traffic is small, so the hosting bill has to be small too.
Decisions
- Chose
- Use the question images as the content, and leave OCR for later
- Over
- Turning every paper into text first
- Because
- that would have been the biggest piece of work in the plan, and the client's own bank already stores images, so adding a question is upload, tag, publish
- Chose
- Hash passwords with argon2id so nobody can read them, the admin included
- Over
- Passwords an admin can read and change
- Because
- what admins need is to get a stuck student signed in, and a reset link or a time limited sign in does that without anyone ever seeing a minor's password
- Chose
- Model the entitlement, not the payment
- Over
- Separate logic per gateway
- Because
- Razorpay in India, Stripe everywhere else and manual payments for bank transfer or cash all feed one service that grants access, and the manual path is the one that drifts and forgets the receipt, the audit row or the expiry
- Chose
- One container on one small instance with a fixed address, behind CloudFront
- Over
- A Fargate service behind a load balancer, or App Runner
- Because
- every page renders on the server, so a static bucket wasn't enough, the load balancer was most of the monthly bill and bought one thing, deploys with no gap, and the account couldn't use App Runner
What leaving OCR out costs
There's no full text search, so you find questions by board, subject, topic, year, season, paper and variant. And a screen reader can't read an image, so every question has an alt text field from day one, and an empty text field is already in the schema, so a text layer later doesn't need a migration.
Staged sample
Marked like an examiner
QuestionA ball is thrown straight up. Explain why it slows down as it rises.
Student's answer
Gravity pulls the ball down, so it loses speed as it goes up.
Mark scheme
- ✓Its weight acts downwards, against the direction it is moving.
- ×So the resultant force opposes its motion, and it decelerates.
Marks
Revise nextResultant force and acceleration→
Two businesses on one platform
The institute is the first tenant, and every paying teacher is their own. The question bank belongs to the platform.
Drawing
Question bank
images, mark schemes, tags
- leads to The institute
- leads to Outside teachers
The institute
classes, staff, fees
- leads to Students and parents
Entitlements
Razorpay, Stripe, manual
- leads to Outside teachersgrants access
- leads to Students and parents
Outside teachers
subscriptions
- leads to Printed papers
Students and parents
practice by topic or sitting
Printed papers
built from the bank
Getting a stuck student signed in
There's an invite link that sets the first password, an admin reset link, a one time temporary password that must be changed, and support sign in as a user that's time limited, logged and shown on screen.
How it works
Students practise by topic or by sitting, check the mark scheme beside each question and see what to revise next. Teachers build papers from the same bank and print them. Parents get their own login. The institute side handles batches, teachers and fees. Outside teachers subscribe and use the bank in their own teaching.
Results
- Live at prep.aurethiaeducation.com since September 2026, with work continuing into October 2026.
PermissionNamed with the client's approval. The screenshot is the portal's public home page; no student data or dashboards are shown.