DEV Community

Mythex
Mythex

Posted on Fully Autonomous

How to Build a Training Centre Management System in Saudi Arabia (Arabic First, No Developers)

A private training centre in Riyadh, Jeddah or Dammam usually runs on three things: a registration form, a WhatsApp group per course, and an Excel file that one person understands. It works until the centre has six courses running at once, a corporate client asking for attendance reports for its employees, and trainees asking for a certificate from a course they took last spring.

This article walks through what a training centre management system actually needs to do in Saudi Arabia, what to keep in the systems you already have, and how to build a simple Arabic-first one yourself in an afternoon with an AI app builder. I work at Mythex, which is the builder I use in the walkthrough, so weigh that part accordingly. The checklist in the first half applies whichever tool you choose.

What the spreadsheet stops handling

Ask a centre manager where time goes and the same jobs come up:

  • Registrations arrive from everywhere. The website form, Instagram DMs, WhatsApp, a phone call, and a corporate client's HR manager sending a list of 20 names by email. Someone retypes all of it.
  • Seats and waitlists. A course has 25 seats. Who paid, who only asked, and who is next when someone drops out?
  • Separate sections and schedules. Many centres run men's and women's sections, evening and weekend groups, and in-person and online versions of the same course.
  • Attendance that someone outside the centre trusts. Corporate clients, and programmes with a subsidy or sponsor behind them, want attendance per trainee per session, not "most people came".
  • Certificates. A trainee who completed the hours should get a certificate with the right name in Arabic and English, a number someone can verify, and the course dates.
  • Corporate invoicing. Companies pay per group and want one invoice and one report.

None of this is exotic. It is a database of courses, sessions, trainees and enrolments, with a few screens on top.

What to keep where it is

Before building anything, be clear about what a custom app should not replace:

  • Licensing and programme approval stay with TVTC. Private training establishments in the Kingdom are licensed by the Technical and Vocational Training Corporation, and programmes are approved through its own portal. Your internal system tracks your operations; it doesn't replace that process.
  • Tax invoices stay in your accounting system. ZATCA e-invoicing (Fatoora) requires invoices to come from a compliant solution. Keep issuing tax invoices from Qoyod, Zoho Books, Odoo or whatever compliant system you use, and store the invoice number against the enrolment in your app.
  • Payments stay with your payment provider. mada, Apple Pay and card payments, or bank transfer for companies. The app records that a payment happened and links to it.

Keeping those three outside makes the internal app small, cheap and easy to change.

The data model (write this before you open any tool)

Five tables cover most centres:

  1. Courses: name (Arabic and English), category, total hours, price, section (men/women/mixed), delivery (in person/online).
  2. Groups: a course running on specific dates: start date, schedule, trainer, room, seats, status (open, full, running, finished).
  3. Trainees: name in Arabic and English, mobile, email, national ID or Iqama number (only if you truly need it), company (if sponsored).
  4. Enrolments: trainee + group, status (enquiry, reserved, paid, attending, completed, withdrawn), payment reference, invoice number.
  5. Attendance: enrolment + session date + present/absent/late.

Certificates are just a view of completed enrolments with a unique number.

If you write those five lines on paper first, every tool (Airtable, a custom app, or a ready-made training platform) becomes easier to evaluate, because you'll see what it does and doesn't model.

Building it in Mythex: the actual prompts

Here's how I'd build it, one prompt at a time. Mythex builds the app, gives it a Postgres database, and publishes it to a link. You can write the prompts in Arabic; the app will be right-to-left if you ask for it.

Prompt 1: the base

Build an internal app for a private training centre in Riyadh. Arabic first, right-to-left, with an English toggle. Tables: courses, groups (a course on specific dates with a trainer, room and seat count), trainees, enrolments and attendance. Use Hijri and Gregorian dates side by side.

Prompt 2: registration

Add a public registration page per open group: name in Arabic and English, mobile, email, company (optional), and section (men/women). When the group is full, put new registrations on a waitlist automatically and show the trainee their waitlist position.

Prompt 3: the manager's view

Make a dashboard for the centre manager: every running and upcoming group with seats taken, waitlist count, paid vs reserved, and the trainer. Clicking a group shows its enrolments with status and payment reference.

Prompt 4: attendance for trainers

Trainers need a phone-friendly attendance screen: they pick today's session for their group and mark each trainee present, absent or late. Trainers only see their own groups.

Prompt 5: corporate clients

Add a company report: pick a company and a date range, see each employee's courses, hours attended and completion status, and export it as a PDF and Excel file.

Prompt 6: certificates

When an enrolment is completed and attendance is at least 80%, generate a bilingual certificate PDF with the trainee's name, course, hours, dates and a unique certificate number, plus a public page where anyone can check a certificate number.

After each prompt, test it in the preview with fake data: register three trainees, fill a group, mark attendance for two sessions, and generate a certificate. Change the wording or the rules by telling it what's wrong ("the waitlist should notify the manager, not the trainee", "attendance threshold is 75% for short courses").

What the team gets

  • A real database, not a spreadsheet: every registration, payment reference and attendance mark in one place, searchable.
  • Members-only access. Staff and trainers sign in; the registration and certificate-check pages are public; nothing else is.
  • Your own domain, such as portal.yourcentre.sa, if you want trainees to see your name rather than a builder's.
  • Arabic that's actually right-to-left, including tables, forms and PDFs, because Mythex builds in Arabic natively.
  • Phone apps if you want them. On Pro, the same app can be packaged for Android and iPhone (TestFlight) for trainers, though for a centre a mobile-friendly web app is usually enough.

Honest limits

  • Data location and the PDPL. Saudi Arabia's Personal Data Protection Law has been fully enforceable since September 2024, and it has rules on transferring personal data outside the Kingdom. Mythex hosts app databases outside Saudi Arabia. For names, mobiles and attendance that's a decision to make consciously: collect only what you need (skip ID numbers unless a sponsor requires them), and check the transfer rules for your case. If a client contract requires in-Kingdom hosting, export the code and run it on a Saudi cloud region instead.
  • Not a tax-invoicing system. As above, issue invoices from a ZATCA-compliant system and store the number.
  • Not an LMS. If you deliver online courses with video, quizzes and SCORM packages, use a learning platform (Moodle, TalentLMS, or a local one) and keep this app for operations.
  • You own the logic. Rules like "80% attendance" are yours to define and test. The builder writes what you ask for, so a vague rule produces a vague feature.

For teams

If more than one person runs the centre (a manager, a registration officer, several trainers), put the app in a shared team workspace rather than one person's account, so it doesn't leave when a staff member does. On Mythex that's the Business plan (from $50/month): shared workspace, roles (admin, editor, viewer), members-only apps, and Google Workspace sign-in if your centre uses Google. Training centre examples are on the training provider page, and plans on the pricing page.

How to decide

  • One or two courses a month, one person running it? A good spreadsheet plus a registration form is fine. Add a waitlist column and move on.
  • Several groups at once, corporate clients, certificates? That's where a small custom app pays off. Start with registrations and attendance; add certificates in week two.
  • Mostly online, self-paced courses? Choose an LMS first; a custom app can sit next to it for corporate reporting.

Whichever route you take, measure one thing for the next term: how long it takes to answer a corporate client's "send me the attendance for my team" email. If the answer goes from a day to a minute, the system is doing its job.

Top comments (0)