EdTech · Multi-tenant SaaS Live product
eTəhsil — Education centre management software for course centres and tutors
The whole education centre on one screen
We designed, built and run eTəhsil, our SaaS platform for education centres and private tutors. Schedules, attendance, payments and debts, contracts, exams, parents and payroll work as one system in Azerbaijani, English and Russian.
eTəhsil
- Dashboard
- Schedule
- Attendance
- Cash desk
- Contracts
- Exams
- Finance
Overdue debt
960₼
Exam running
42:18
- ✓ Attendance savedIELTS B2 · Room 2 · 11/12
- ! Reminder ready · 3 students
- ✓ Contract DA-2026-0142 generated
- ✓ Payout approved · Leyla K.
Project facts
- Project type
- Our platform
- Industry
- Education
- Platforms
- Web · PWA
- Languages
- AZ · EN · RU
07:45 The challenge
A centre that runs on notebooks, spreadsheets and group chats
Before the first lesson, the administrator is already juggling a paper register, a timetable in one spreadsheet, a debt list in another and a WhatsApp group for every class. Everyone holds a piece of the centre and nobody sees all of it. The owner learns how the month went only after it has ended.
Register · October
- Aysel D. ✓✓✓—✓✓
- Murad N. ✓———✓
- Kamran T. ✓✓✓✓✓✓
- Nərmin Q. —✓✓✓—✓
- Tural H. ✓✓✓✓✓
paid?? ask Monday
Xtimetable_final_v3.xlsx
| Time | Room 1 | Room 2 | |
|---|---|---|---|
| 2 | 09:00 | English A2 | |
| 3 | 10:30 | IELTS B2 | IELTS B2 / Math 11 ? |
| 4 | 12:00 | #REF! | Logic |
| 5 |
IELTS B2 · parents
Is there a lesson today?
Who still hasn’t paid for October?
The teacher is ill. Moved to when?
Did Aysel come on Wednesday?
-
Timetables clash
Two groups are booked into one room, and the clash only surfaces when both walk through the same door.
-
Attendance copied by hand
Teachers tick paper registers, someone retypes them, and nobody notices the student who has missed three lessons in a row.
-
Debts live in someone’s memory
Who owes what, and for how long, is rebuilt from notes at the end of the month. Reminders go out late or never.
-
Contracts and exams made by hand
Every contract is edited in Word, student by student. Every exam is assembled question by question, and separate variants for one room are close to impossible.
-
Payroll on a calculator
Teacher pay means counting lessons group by group, while parents keep calling to ask whether their child came and what is still owed.
eTəhsil turns it into one flow
- A lesson is held
- Attendance is recorded
- The debt recalculates
- The parent sees it
- The owner sees the month
08:00 Schedule · Rooms
The course schedule builds itself and never double-books a room
Enter a group’s weekly pattern once. eTəhsil turns it into every lesson of the course, each with its own date, room and teacher, and keeps the whole centre in one calendar.
Weekly pattern Generate lessons ✓ 36 lessons · ends 25 Dec
- Group
- IELTS B2
- Days
- Mon · Wed · Fri
- Start · length
- 10:30 · 90 min
- Room
- Room 2
- Teacher
- Leyla K.
- Course
- 36 lessons
October IELTS B2
+24 lessons in November and December
Wednesday · rooms
✕ Room 2 is taken at 10:30 by another group → Moved to Room 3
-
Set the weekly pattern
Days, start time, length, room and teacher, plus the number of lessons in the course. That is the only input the schedule needs.
-
Every lesson gets a date
eTəhsil generates each lesson of the course and sets the end date from the last one. Regenerating replaces only future lessons and never touches lessons already held.
-
Rooms stay free of clashes
If a lesson would put two groups in one room at the same time, eTəhsil blocks it and says when the room is taken. The owner decides at the screen, not at the classroom door.
-
Day, week, month and year
One calendar for the whole centre, filtered by teacher or group.
-
Cancel or move a lesson
The reason is recorded, and a cancelled lesson never counts against attendance.
-
Rooms and capacity
Every room is stored with its seats, and every lesson is tied to a room.
-
Changes reach people
Students and teachers get a notification when a lesson is cancelled or rescheduled.
10:30 Attendance · Parent portal
Marked on the teacher’s phone. Seen on the parent’s.
The teacher opens the lesson, taps All present, switches the one student who stayed home and saves. The parent sees that lesson in a portal that opens with a link and a PIN. No app to install, no account to create.
Today · 10:30
IELTS B2 · Room 2
Topic: Reading · skimming
✓ All present
- Aysel D. P A E
- Murad N. P A E
- Kamran T. P A E
- Nərmin Q. P A E
- Tural H. P A E
- Sevinc R. P A E
✓ Saved · locks in 24 h
Nərmin Q.
OverviewAttendancePaymentsSchedule
Attendance 92%
Groups 2
To pay 1
- Wed 10:30 · IELTS B2 Absent
- Mon 10:30 · IELTS B2 Present
- Sat 12:00 · Math 11 Present
Enter PIN
1234567890⌫
- One tap
- All present marks the whole group, so the teacher changes only the exceptions: absent or excused.
- 24-hour lock
- A teacher’s marks lock after 24 hours. From then on only the centre’s management can reopen them.
- At-risk list
- Students who miss lessons in a row gather on their own list, long before a parent has to ask.
- Parent portal
- A personal link and a PIN open one child’s attendance, payments and schedule. Read-only, and nothing else.
12:30 Cash desk · Debts
Every debt has a name, a day count and a reminder
Enrolment creates the student’s payment plan. Cash, card or transfer, full or partial, every payment lands against that plan with a receipt. The cash desk puts the latest payers on top, and a WhatsApp reminder for each of them is one click away.
Cash desk
Outstanding 2 430 ₼ 2 210 ₼ 8 students
Overdue 1 180 ₼ 960 ₼ 4 → 3 students
Collected in October 6 880 ₼ 7 100 ₼ Paid this month
OverdueDue this monthPaid upNo plan
- Murad N. SAT Math 3 payments · 64 days 420 ₼
- Aysel D. IELTS B2 2 payments · 34 days 360 ₼
- Kamran T. Math 11 1 payment · 12 days 180 ₼
- Sevinc R. English A2 1 payment · 5 days ✓ Paid up · Receipt Q-0419 220 ₼
WhatsApp · reminders
- Murad N. · parent Hello! Demo Academy here. Murad has 3 overdue payments for SAT Math, 420 ₼ in total. You can pay at the desk or by transfer. 10:12 ✓✓
- Aysel D. · parent Hello! Demo Academy here. 2 payments for IELTS B2 are overdue, 360 ₼ in total. 10:13 ✓✓
- Kamran T. · parent Hello! Demo Academy here. The October payment for Math 11 is overdue, 180 ₼. 10:14 ✓✓
-
Payment plans
Monthly or in instalments, created on enrolment, with discounts where they apply.
-
Partial payments and advances
Pay part now or carry an advance into next month. The balance recalculates itself.
-
Receipts and a clean trail
Every payment gets a receipt. A voided payment keeps its history and restores the debt automatically.
-
Staff see what they need
Reception records payments and hands out receipts without ever seeing the centre’s total income.
14:00 Contracts
The centre’s own contract, filled and numbered in one click
The centre uploads the Word contract it already uses. eTəhsil recognises every placeholder, warns about any it cannot fill, and produces a numbered PDF for each student with the student’s, parent’s, course and payment details already in place.
Wcontract_standard.docx
Template
- Contract no.
{{contract_no}} - Date
{{date}} - Student
{{student_name}} - Parent
{{parent_name}} - Course
{{course}} - Monthly fee
{{monthly_fee}}
✓ Ready · 6 of 6 placeholders will be filled
PDF № DA-2026-0142
Education services contract
Demo Academy
- Date
- 14.10.2026
- Student
- Aysel D.
- Parent
- Rəna D.
- Course
- IELTS B2 · 36 lessons
- Monthly fee
- 180 ₼
Signature Demo Academy
Awaiting signature
✓ Signed
- Your own form
- The centre keeps its legal wording. eTəhsil only fills in the data, with a default template for each language.
- Placeholder check
- Fields that would print as literal text are flagged before a single contract goes out.
- Numbering
- The system issues contract numbers in sequence, so a number never repeats.
- Signature status
- Awaiting, signed or expired, with contracts close to their end date brought forward.
- Contract gap
- Active students who have no contract yet appear on their own list.
16:00 Question bank · Exams
A 3-step exam builder and a unique variant for every student
Name the exam, choose the subjects with a question count and topic mix for each, and eTəhsil fills every variant from the centre’s question bank without repeating a question. Students sit it against a timer, answers are marked automatically wherever possible, and the results break down by topic.
New exam template
- 1 ✓ Basics
- 2 ✓ Subjects
- 3 Questions
1 · Basics
- Name
- Mock exam · Entrance
- Time
- 180 min · per section
- Negative marking
- On
- Tab switches
- Recorded
2 · Subjects
-
Mathematics 25
Test 20 · Open 5 -
English 30
Test 30 -
Logic 10
Test 10
EasyMediumHard
3 · Questions ⟳ Auto-fill
- Variant A 504 121 638 615 292 629 426 523
- Variant B 200 537 454 551 468 565 602 339
- Variant C 256 353 630 367 404 381 178 155
- Variant D 672 529 446 423 100 677 234 211
✓ 65/65 questions ✓ No repeated questions
Mathematics · 12 of 25
42:18 left
If 3x − 7 = 11, what is x?
⚠ Tab switch recorded Submits itself at 00:00
Results · Mock exam
Average 61.4Passed 74%
Score distribution
050100
Weakest topics · share of mistakes
- Fractions 58%
- Logarithms 46%
- Reading: inference 39%
- Word problems 31%
-
Question bank
Nine question types, from single choice and matching to numeric and essay, sorted by subject, topic and difficulty, with maths input.
-
Templates and variants
A template stores the recipe once. Each run fills fresh variants and gives them to one group or several.
-
Timed and guest exams
Total or per-section time, automatic submission, tab-switch tracking and a guest link with an optional PIN for outside candidates.
-
Marking and analytics
Closed questions are marked automatically, open answers by the teacher, and mistakes are counted by topic for the centre and for each student.
21:00 Owner dashboard · Payroll
The owner sees the month before it ends
Income arrives from the cash desk by itself. Expenses go in by category, and recurring ones repeat on their own. Teacher pay is calculated from groups and lessons held, approved by the owner and accepted by the teacher. One dashboard shows the centre for any period.
Dashboard · October
This month3 months12 months
Monthly revenue
7 100 ₼
↑ +6% on September
Overdue debt
960 ₼
At-risk students
5
Attendance 88%
Occupancy 77%
Gross margin 41%
Profit and loss · October
- Student payments +7 100 ₼
- Other income +450 ₼
- Rent −1 600 ₼
- Utilities −380 ₼
- Marketing −520 ₼
- Teacher payouts −2 600 ₼
- Net result 2 450 ₼
Teacher payroll · October
TeacherGroupsLessonsAmountStatus
-
Income and expenses
The centre’s own categories, recurring costs and side-by-side periods.
-
Teacher payroll
Calculated per group and lesson held. The owner approves, the teacher accepts or declines.
-
Reports for the accountant
The financial report exports to CSV and PDF, and the accountant role sees finance without student records.
-
Any period
This month, last month, the last 3, 6 or 12 months, or a custom range.
SaaS Engineering
One platform for many centres, and each centre’s data stays its own
eTəhsil is a multi-tenant SaaS. Every centre and every tutor works in a separate tenant, and tenant data isolation is enforced in the database itself, not only in application code. Around that core we built permissions, secure sign-in, notifications and an installable app in three languages.
One database Isolation enforced in the database
-
Tenant data isolation
Each centre’s rows are fenced off in the database, so one centre never reads another centre’s data.
-
Roles and permissions
Ready roles such as reception and accountant, custom groups down to view, add, edit and delete, and teachers limited to their own groups.
-
Secure sign-in
Two-factor authentication, Google sign-in and invitation links for staff and teachers.
-
One account, three workspaces
The same person moves between business, teacher and student workspaces without a second account.
-
Installable PWA
The app installs on any phone, in Azerbaijani, English or Russian, with light and dark themes.
-
Guarded by tests
Automated architecture tests check the tenant isolation and permission rules across modules.
Integrations built in
- Payriff Online card top-ups
- Google Sign-in with a Google account
- WhatsApp Payment reminders from the cash desk
- Telegram Notifications through a bot
- Email Invitations and notifications
- Web push Notifications in the browser and on the phone
Our role
What Atlas BIP did
-
Product and UX design
We mapped how centres, tutors, teachers, students and parents actually work, and designed one product with the right screen for each of them.
-
Multi-tenant architecture
We designed the tenant model, roles and permissions, and data isolation enforced in the database from the first line of code.
-
Full-stack engineering
We built the API, the installable web app, the public website, the contract engine from DOCX templates and the exam engine with variants and analytics.
-
Integrations
We connected Payriff online card top-ups, Google sign-in, WhatsApp reminders, and Telegram, email and web push notifications.
-
Launch and operation
We launched eTəhsil as a live SaaS product and run it ourselves: releases, support and new modules.
Stack
Built on a modern TypeScript stack
- Web app
-
- TypeScript
- React
- PWA
- Website
-
- Next.js
- API
-
- NestJS
- TypeScript
- Data
-
- PostgreSQL
- Redis
Questions and answers
What buyers ask about eTəhsil
Is eTəhsil a real, working product?
Yes. eTəhsil is our own product and it is live: the website and the app are online at etehsil.az. We designed and built it, and we run it.
How is each centre’s data kept separate?
Every centre is its own tenant, and isolation is enforced in the database, not only in application code. Inside a centre, roles and permissions decide what each person sees: a teacher sees only their own groups, reception never sees total income, and a parent sees one child.
Do parents and teachers have to install anything?
No. Parents open a personal link and enter a PIN. Teachers, staff and students use the web app, which installs on a phone as a PWA in Azerbaijani, English or Russian.
Which local services does it connect to?
Payriff for online card top-ups, Google sign-in, WhatsApp for payment reminders, and Telegram, email and web push for notifications.
We need a platform like this for another sector. Where do we start?
With your processes. The foundations of eTəhsil carry straight over to other vertical SaaS products and internal systems: multi-tenant architecture, roles and permissions, documents from templates, payments, notifications and dashboards. Tell us how your work runs today and we come back with a concrete plan.
Your project
Your system is next
Tell us how orders, money and documents move through your company today. We reply within 24 hours with questions and a concrete plan.
Names and figures on screens are sample data.
Back to the start