ELIMU TRACK Logo

ELIMU TRACK โ€” User Guide

Your complete, step-by-step guide to managing students, exams, reports, timetables, and parent communication like a professional.

VERSION 3.4.7 ยท July 2026
๐Ÿš€
โšก System Update โ€” July 2026 (v3.4.3)

Context Filtering, Morning Priority Schedules & Caching

ELIMU TRACK has received major enhancements: School Level Filter Chips have been introduced across Marks, Reports, and Timetable pages to easily slice data by level (e.g. Preschool, Primary, JSS, High School) in one click. Timetables now prioritize core academic lessons during the morning when students are most alert. Additionally, the system now features Silent Background Cache Revalidation to reload your data instantly and quietly on every page visit.

โœ… Level filters for Marks, Rankings, and Timetables
โœ… Morning Priority Auto-Scheduler for core subjects
โœ… Persistent sessionStorage caching & silent syncs
โœ… Mandatory levels setup lockdown modal for new/legacy schools
Chapter 1

The Dashboard & Navigation

The dashboard is your control center. When you first log in, you will see a summary of your school's live data.

๐Ÿ‘ฅ

Total Students

The live count of all enrolled students in your school's database.

๐Ÿ“‹

Active Exams

How many assessment periods are currently open for mark entry.

๐Ÿ”—

Teacher Links

The number of mark-entry links currently active for teachers.

๐Ÿ“…

License Status

Shows your subscription expiry. Contact support to renew before it expires.

๐Ÿ”” Notifications

Click the bell icon at the top-right. You will receive alerts when a teacher submits marks. Unread notifications show a red badge. Click a notification to mark it as read, or use "Clear All" to dismiss all.

๐Ÿ’ก Tip: The sidebar on the left contains all main pages. On mobile, tap the โ˜ฐ menu icon to expand it.
Chapter 2

Managing Students

โž• Adding a Single Student

  1. Go to Students in the sidebar.
  2. Click the green "+ Add Student" button at the top right.
  3. Fill in: Full Name, Admission Number, Grade/Class, and Stream. The Stream dropdown will automatically show only the streams registered for the selected class. If a class has no streams, leave the stream blank.
  4. Optionally add Date of Birth, Gender, Parent Name, and Parent Phone Number.
  5. Click "Save Student". The student immediately appears in your student list.
โš ๏ธ New Stream System: Streams are now class-specific. Before adding students, make sure you have registered the correct streams for each class in the Class Hub (sidebar โ†’ Classes). If you select a class and see "No Streams", go to Class Hub first and add streams for that class.

๐Ÿ“ค Bulk Upload via CSV

  1. Click "Import CSV".
  2. Download the sample template shown in the dialog. Open it in Excel or Google Sheets.
  3. Fill in your students: columns must be ADM NO, NAME, CLASS, STREAM.
  4. Save the file as CSV and upload it. The system will preview the data before saving.
  5. Click "Confirm Import".
โš ๏ธ Important: Admission numbers must be unique. If a duplicate is found, only the first entry will be imported. Check your file carefully before uploading.

โœ๏ธ Editing a Student

Click the โœ๏ธ Edit button next to any student. You can update all their details including their portal username and password in the "Student Portal Access" section at the bottom of the edit form.

๐Ÿ—‘๏ธ Deleting Students

Click the ๐Ÿ—‘๏ธ Delete button next to a student. This permanently removes them and all their marks. This action cannot be undone.

Chapter 3

Exams & Mark Entry

๐Ÿ“ Creating an Exam

  1. Go to Exams in the sidebar.
  2. Click "+ Create Exam".
  3. Enter a descriptive name like "Term 1 End-of-Term 2026". This name appears on report cards.
  4. Select the Term and Year, then click Save.

๐Ÿ”— Generating Teacher Entry Links

Teacher links allow your staff to enter marks without needing an admin account. This is the recommended workflow.

  1. Go to Exams and click "Teacher Links" on the exam you want.
  2. Select the Grade, Subject, and enter the Teacher's Name and Phone Number.
  3. Click "Generate Link". A unique secure URL is created.
  4. Click the WhatsApp or SMS button to send the link directly to the teacher's phone.
  5. When the teacher opens the link, they see only their students. They enter marks (up to 3 assessments) and click "Save".
  6. You receive a real-time notification on your dashboard the moment the teacher saves.
๐Ÿ’ก Tip: Use "I" for Incomplete if a student was absent. This flags the record without affecting rankings until you resolve it.

๐Ÿ“Š Entering Marks Directly

You can also enter marks yourself. Go to the exam, click "Enter Marks", select the grade and subject, and type marks directly into the table.

๐ŸŽ›๏ธ School Level Filtering in Marks Hub

For schools with multiple levels (e.g. Primary, Junior Secondary), the Marks page features **School Level Filter Chips** at the top. When the Class dropdown is set to **"All Classes"**:

Chapter 4

Reports & Transcripts

๐Ÿ“„ Generating Report Cards

  1. Go to Reports in the sidebar.
  2. Select the Exam and Grade you want to print for.
  3. Click "Generate Reports". A live progress bar shows each student being processed.
  4. When complete, click "Print All" to send to your printer, or save individual cards as PDFs.
โš ๏ธ Print Settings: Set paper size to A4, scale to 100%, and margins to Default for best results.

๐Ÿ† Rankings & School Level Filtering

Go to Reports โ†’ Rankings. You can view student standings sorted by aggregate points. If the Grade dropdown is set to **"All Classes"**, you can click any of the **School Level Filter Chips** at the top. The rankings list, student count, class context, and subject headings will dynamically filter to show only students and subject averages belonging to that specific school level.

โš™๏ธ Custom Grading Rubric

Go to Settings โ†’ Grading Rubric. You can define your own grade levels (e.g., A, B+, C) with custom minimum scores and descriptions. The system automatically recalculates all grades when you save.

Default LevelNameMin Score
EEExceeding Expectations96%
MEMeeting Expectations76%
AEApproaching Expectations56%
BEBelow Expectations0%
Chapter 5

Messages & Parent Communication

โš™๏ธ Setting Up Messaging (Do This First)

  1. Go to Messages in the sidebar.
  2. Click the "โš™๏ธ API Settings" tab.
  3. For WhatsApp: enter your ApiWap Token. For SMS: enter your Blessed Text API Key.
  4. Select your preferred Default Channel.
  5. Click "๐Ÿ’พ Save Settings".
โ„น๏ธ Where to get API keys: Sign up at apiwap.com for WhatsApp or blessedtexts.com for SMS to get your API credentials.

๐Ÿ“จ Sending Marks Results to Parents

Go to Reports, open a student report card, and click the "Send to Parent" button. The system automatically formats the marks into a professional WhatsApp or SMS message and dispatches it instantly.

๐Ÿ“ข Sending a Custom Broadcast

  1. Go to Messages โ†’ Custom Message tab.
  2. Choose the target: Individual phone, specific Grade, or All Parents.
  3. Type your message and select the channel.
  4. Click "๐Ÿš€ Send Message".

๐Ÿ“ฅ Parent Inbox (New!)

When a parent sends a message from the Student Portal, it appears here. Click the "๐Ÿ“ฅ Parent Inbox" tab to view all incoming messages. Unread messages are shown in bold with a green highlight. Click "Mark Read" to clear them.

Chapter 6

Student Portal Access

The Student Portal (reporting.elimutrack.com) allows parents to log in and view their child's academic records. You must first set up credentials for each student.

๐Ÿ”‘ Setting Up Student Credentials (Bulk)

  1. Go to Students in the sidebar.
  2. Click the "โœ‰๏ธ Send Portal Logins" button at the top.
  3. Choose the target: individual student, a specific grade, or the whole school.
  4. Select the Username Format (e.g., Admission Number) and Password Format (e.g., Parent Phone Number).
  5. Enter the Portal URL: https://reporting.elimutrack.com/dashboard
  6. Select the messaging channel (WhatsApp or SMS).
  7. Click "๐Ÿš€ Process & Push Credentials". The system generates the credentials, saves them to the database, and sends login details to each parent's phone automatically.
โš ๏ธ Requirement: Students must have a Parent Phone Number saved in their profile for the messaging to work. If a student has no phone number, their credentials are generated but no message is sent.

โœ๏ธ Updating a Student's Credentials Manually

  1. Go to Students and click โœ๏ธ Edit next to the student.
  2. Scroll to the "๐Ÿ”‘ Student Portal Access" section.
  3. Enter the new Username and/or Password.
  4. Click "Save Student".

๐Ÿ“ฑ Parent Login Experience & Portal Features

Parents visit the Student Portal URL (https://reporting.elimutrack.com/dashboard) and enter the credentials sent to their phone. Once logged in, the portal provides a fully interactive interface containing:

๐Ÿ“ฒ ELIMU TRACK Mobile Android App

For on-the-go access, ELIMU TRACK has a dedicated native Android App package:

๐Ÿ†• New Chapter

Stream Management โ€” Class Hub

Streams are sections or divisions within a class (e.g., Form 1 North, Form 1 South). ELIMU TRACK now supports class-specific streams, meaning each class can have entirely different stream names. This is ideal for schools that use different section names per form or grade level.

โ„น๏ธ Why This Matters: In the old system, streams were shared across all classes. Now, Form 1 can have (A, B, C) while Form 2 has (North, South, East) โ€” with no conflicts. Timetables, report filters, and student placements all respect this per-class separation.

๐Ÿซ Where to Manage Streams

All stream management is done in the Class Hub. Go to Classes in the sidebar. You will see two sections:

๐Ÿ“‹

Bulk Add by Class (Recommended)

Select a class, type all its stream names (one per line or comma-separated), and click Save Streams. All streams are saved in one click.

๐Ÿ“‚

All Streams View

Shows a flat table of every stream in the school with its associated class. You can edit or delete individual streams from here.

๐Ÿ“‹ Step-by-Step: Adding Streams for a Class

  1. Go to Classes (sidebar) โ†’ you land on the Class Hub page.
  2. Under "Manage Streams", make sure the "๐Ÿ“‹ Bulk Add by Class" tab is active.
  3. Use the "Select Class / Grade" dropdown to pick the class you want (e.g., Form 1, Grade 5).
  4. In the large text area, type your stream names โ€” one per line, or comma-separated (e.g. North, South, East, West).
  5. Click "๐Ÿ’พ Save Streams". All typed streams are immediately saved for that class only.
  6. Repeat for each class. Each class stores its own independent set of streams.
๐Ÿ’ก Tip: You can also add a quick single stream from the School Settings โ†’ Stream Management tab. Use the Class dropdown next to the stream name to assign it to the correct class. For bulk work, always use the Class Hub.

๐ŸŒŽ Shared (Global) Streams

If you add a stream without selecting a specific class (choose "๐ŸŒŽ Shared"), that stream appears for all classes that don't have their own streams. This is useful when every class uses the same stream names (e.g., A, B, C across all grades).

โœ๏ธ Editing or Removing Streams

  1. In the Class Hub, click the "๐Ÿ“‚ All Streams" tab.
  2. Find the stream you want to change and click the โœ๏ธ Edit button next to it.
  3. You can change the stream name and/or which class it belongs to.
  4. To remove, click the ๐Ÿ—‘๏ธ Delete button. Students already placed in that stream remain unchanged โ€” you will need to manually update their stream via bulk edit or individual student edit.
โš ๏ธ Caution: Deleting a stream does not automatically re-assign students in that stream. After deleting a stream, use Students โ†’ Filter by Class โ†’ Bulk Edit to update any affected students to their new stream.

๐Ÿ‘ฅ Placing Students into Streams

Once streams are registered for a class, they will automatically appear in the student form dropdowns:

  1. Go to Students โ†’ Add Student or Edit Student.
  2. Select the student's Grade/Class. The stream dropdown will automatically filter to show only streams for that class.
  3. Select the appropriate stream from the dropdown.
  4. Save the student. Their class + stream placement is now recorded.

For moving a large number of students to a new stream (e.g., after class promotions), use the Bulk Promote / Move tool in the Students page.

๐Ÿ‘ฅ New Chapter

Teachers Hub & Subject Assignments

Teachers Hub is a centralized portal for registering teachers, setting up subject specialties, allocating streams, and assigning specific subjects to teachers per stream. It can be accessed directly from the Teachers Hub link in the main navigation menu.

๐Ÿ›ก๏ธ Security Notice: Providing a Phone / TSC Number is mandatory during teacher registration. This number is used to secure public mark-entry links and authenticate teacher access.

โž• Registering a Teacher

  1. Go to Teachers Hub in the sidebar.
  2. Click the blue "โž• Register Teacher" button at the top right.
  3. Fill in the teacher's Full Name and Phone / TSC Number (required). Optionally enter the Department and Teacher Code.
  4. Click "Save Teacher".

๐Ÿ“š Assigning Teaching Subjects (Specialties)

A teacher's specialties dictate which subjects they are qualified to teach. To configure specialties:

  1. Locate the teacher's card in the grid.
  2. Under "Teaching Subjects", tap/click the subject chips to toggle them. Checked subjects (with a tick mark) represent their specialties. Unchecked chips represent subjects they do not teach.
  3. The specialty settings save instantly in the database with no extra buttons to click.

๐Ÿซ Allocating Streams & Specific Subjects

To assign a teacher to classes and streams and specify exactly what subject they teach in each stream:

  1. On the teacher's card, click "๐Ÿซ Allocate Streams".
  2. In the 2-column modal:
    • Left Column (Classes): Check the classes this teacher will teach.
    • Right Column (Streams & Subjects): The streams for checked classes load automatically. Under each stream checkbox, check the specific subjects the teacher will teach in that stream.
  3. Click "Save Allocations". The card will update to show their allocated streams and assigned subjects.
Chapter 7

Class Timetables & Smart Scheduling

The Timetable module enables your school to generate, view, edit, and print beautiful, conflict-free weekly schedules. It is fully optimized for desktop, landscape printing, and mobile phone screens. Access it instantly from the sidebar โ€” no setup wizard required.

๐Ÿ“…

Interactive Layout

Allows manual editing, teacher/room assignment, custom lesson times, and solid spreadsheet grids.

๐Ÿค–

Smart Auto-Generation

Distributes your subjects across the week while strictly avoiding teacher double-bookings.

๐Ÿ“ฑ

Mobile Timeline Tabs

Adapts to mobile phones by rendering an elegant chronological daily timeline instead of wide horizontal grids.

๐Ÿ–จ๏ธ

Landscape Printing

Fits perfectly on A4 landscape sheets with clear solid grids and standard administrative layouts.

๐Ÿ‘จโ€๐Ÿซ Step 1: Set Up Teachers, Specialties, and Stream Allocations

Before using the auto-generator, ensure that all teachers are registered and assigned to their respective classes, streams, and subjects in the Teachers Hub (sidebar โ†’ Teachers). This provides the smart distributor with conflict-free rules to schedule teachers.

  1. Go to Teachers Hub. Register teachers with mandatory phone numbers.
  2. Toggle their teaching subjects (specialties) on each card.
  3. Click "Allocate Streams" to choose classes/streams, and assign specific subjects for each stream checkbox.

๐Ÿ“š Step 1B: Configuring Subject Lesson Counts per Class

By default, the scheduler budgets 5 lessons per week for regular subjects and 1 lesson for special subjects (P.E, Creative Arts, PPI). To customize how many lessons each subject gets per week for the class timetable:

  1. Select the Class and Stream you are scheduling for.
  2. In the Grid Layout & Structure Config toolbar, click the "๐Ÿ“š Manage Lessons" button.
  3. A modal opens showing all subjects. Type the number of lessons per week for each subject.
  4. Click "Save Lesson Counts". The auto-scheduler will use these values during automatic generation.

โš™๏ธ Step 2: Configuring the Timetable Structure & Propagation

You can dynamically tailor the structure of your school's weekly timetable from the Grid Layout & Structure Config toolbar:

  1. Select the Class and Stream from the dropdowns. If a class has no streams, the system will show "No Streams" and allow a single streamless timetable.
  2. Total Lessons: Set the total lessons in a week (e.g., 40 lessons for 8 lessons per day).
  3. ๐Ÿ•’ Configure Times (Sequential Auto-Propagation): Enter the First Period Start Time (e.g. 07:10) and a default duration. Editing any single lesson or break duration in the setup list automatically shifts and recalculates start/end times sequentially for all subsequent slots in real-time.
  4. AM/PM Formatting: Displayed and printed timetables hide raw "Period 1/2" labels and instead display clean 12-hour formatted time ranges (e.g., 7:10 am - 7:50 am) for a professional look.
  5. Simple View: Toggle between a clean spreadsheet-style print layout and a modern screen-optimized layout.

๐Ÿค– Step 3: Fast, Constraint-Based Auto-Generation

The upgraded auto-scheduler runs on a high-performance asynchronous engine, showing live progress updates (e.g., Generating timetable for Form 1 East (1/12)โ€ฆ) and yielding to the browser to prevent freezing. It strictly enforces the following rules:

  1. Click the gold "Generate Automatically" button.
  2. ๐ŸŒ… Morning Priority Scheduling (New): The algorithm automatically prioritizes morning periods (slots before lunch) for core academic subjects (such as Mathematics, English, Kiswahili, Science, and Social Studies) to optimize student performance. Light or co-curricular lessons (like P.E. and Creative Arts) are deferred to afternoon slots.
  3. ๐Ÿ“š Curriculum-Based Subject Filtering (New): The scheduler automatically filters the selectable subject list per class depending on the school's curriculum model (CBC vs. 8-4-4). For example, Junior Secondary-only subjects (e.g. Pre-Technical Studies) are restricted from lower classes, ensuring no out-of-curriculum assignments.
  4. Daily Subject Limit: The scheduler ensures that no subject appears more than **2 times in a single day** per class. User-locked slots count toward this limit but are never overridden.
  5. Daily Teacher Limit per Class: To distribute workload and prevent burnout, a teacher is restricted to teaching a maximum of **3 periods in a single day** in the same class/stream.
  6. Double Periods / Practicals: Toggle double periods for science or practical lessons and specify target classes.
  7. Clash-Free Checking: The generator guarantees no teacher or classroom double-booking occurs across the entire school.
  8. Click "Generate Now" to start the asynchronous engine.

โœ๏ธ Step 4: Manual Tweaks & Drag-and-Drop Move

You have full manual control over the grid:

  1. Drag-to-Move: Drag a lesson card from one grid slot and drop it into another. This acts as a Move action, automatically clearing the source cell and leaving it blank. Dragging from the sidebar budget list acts as a Copy/Assign.
  2. Assign Lesson Modal (Bulk & Migrate): Click any slot to open the modal:
    • Check "Apply this slot to all classes & streams" to copy the lesson school-wide in one click (the system automatically resolves teacher assignments for each class).
    • Use the migration dropdowns to copy or move the slot directly to another class/stream. Check "Move (delete from current class)" to remove it from the source slot.
  3. Real-Time Conflicts: When editing manually, the system flags teacher clashes, room double-bookings, and unavailable slots immediately.
๐Ÿ’ก Mobile Navigation Tip: On a mobile phone screen, the timetable automatically switches to an interactive daily view. Simply tap the tabs (Mon, Tue, Wed, etc.) at the top to slide through and view or edit each day's vertical chronological timeline.
Chapter 9

System Settings & Caching

To improve speed, security, and usability, ELIMU TRACK uses a modern backend sync and caching system that runs entirely in the background.

๐Ÿ”’ School Levels Setup Required (Lockdown Modal)

When a school signs up, or if it is a legacy school that signed up before the school types feature was introduced, it is required to explicitly configure its school levels (e.g., Preschool, Primary School, Junior Secondary, High School).

โšก sessionStorage-Backed Caching & Silent Syncs

ELIMU TRACK caches database reads (such as students, classes, and subjects) in your browser's **sessionStorage** to allow instantaneous page transitions:

Chapter 10

Managing Multi-Level Schools (Combined Levels)

Many modern schools run multiple levels under a single administration (e.g. Preschool + Primary School + Junior Secondary). ELIMU TRACK has been re-engineered to allow seamless management, registration, grade setups, and isolated marks analysis for these combined environments.

๐Ÿ“ 1. Account Creation & Sign Up

During registration, administrators can select multiple school types:

๐Ÿซ 2. Class & Grade Setup (Academic Structure)

When you set up classes, ELIMU TRACK automatically maps the classes to their corresponding levels:

๐Ÿ“Š 3. Marks Entry & Localized Level Analysis

In a school with multiple levels, displaying all student grades or averages on one single screen would distort performance analysis. To prevent this, ELIMU TRACK uses isolated level analysis:

Changelog

System Changelog

A chronological history of all updates and feature releases in ELIMU TRACK.

Version Date Description of Changes
v3.4.7 July 13, 2026 Client Cache Bypass and Service Worker Bumping:
โ€ข Settings Cache Bypass: Bypassed sessionStorage caching on settings and stream configuration to prevent theme selection race conditions.
โ€ข Service Worker Update: Incremented active cache version to v19 to instantly refresh static files (CSS/JS) and apply themes.
v3.4.6 July 13, 2026 Theme Initialization and Styling Corrections:
โ€ข FOUC Elimination: Applied selected theme classes to document.documentElement early in the document head to avoid white flashes on page loads.
โ€ข Emerald & Royal Themes Fixes: Added text, border, card, and white variable overrides for Emerald and Royal themes to make them legible dark modes.
โ€ข Theme-Aware Topbar: Converted the dashboard topbar to use dynamic background variables instead of solid white.
v3.4.5 July 13, 2026 Academic Quality Index and Layout Balancing:
โ€ข Academic Quality Index Card: Introduced a premium dashboard card showing percentage of marks meeting expectations with an SVG donut chart.
โ€ข Dashboard Height Balancing: Balanced column heights to fill the blank space beneath the Grade Distribution chart.
v3.4.4 July 10, 2026 Marks Legibility and Mobile Print Captures:
โ€ข Enhanced Font Legibility: Bounded on-screen table font sizes to 14.5px and headers to 12px for better readability.
โ€ข Theme-Aware Input Styling: Converted marks entry input background and text to use CSS variables, resolving the white-on-white visibility issues in light theme, and set input sizes to 16px to prevent automatic mobile zoom.
โ€ข Mobile Scroll & Theme Print Fixes: Integrated scroll resets and theme-swapping in print.js to prevent blank white PDF captures on phone devices. Injected complete printing override styles under body.et-mobile-printing selectors to format tables and cards properly.
โ€ข Legible Print Font Sizes: Increased body, table th/td, and performance card print font sizes for better physical A4 printout quality.
v3.4.3 July 7, 2026 Mobile optimization and Native Printing:
โ€ข Mobile Welcome Vibration: Plays physical/haptic device vibration feedback when the welcome screen is presented.
โ€ข Native Print Page Interceptor: Replaced html2pdf.js for mobile app users with Android's native print manager, allowing faster, high-resolution vector PDF saving and printing.
โ€ข Legacy Storage Support: Declared fallbacks and added write permissions support for legacy Android OS versions (API 28 and below).
v3.4.2 June 30, 2026 New features and optimizations:
โ€ข School Level Filtering: Injected filter chips (Preschool, Primary, JSS, High School) at the top of Marks, Reports, and Timetable pages to easily slice data when "All Classes" is selected.
โ€ข Morning Priority Scheduler: Re-engineered auto-scheduler engine to place core academic lessons (Maths, English, Kiswahili, Science, Social Studies) in morning slots before lunch periods.
โ€ข sessionStorage-Backed Caching: Swapped local memory caching with browser `sessionStorage` for cross-page cache preservation and added silent background revalidation on every page transition.
โ€ข Mandatory Setup Modal: Dynamic lockdown overlay injected on every page forcing unconfigured legacy or new schools to select levels before proceeding. Adapts to system light/dark theme variables.
v3.4.0 May 15, 2026 โ€ข Introduced Class-Specific Streams (Class Hub) to allow different stream/section names per form or grade level.
โ€ข Launched Teachers Hub for centralized registration, TSC validation, phone numbers, and stream/subject assignments.
โ€ข Added Incoming Parent Inbox to allow admins to view and reply to parent portal messages.
โ€ข Added timetable interactive drag-and-drop moves and bulk class assignments.
v3.0.0 Feb 10, 2026 โ€ข Upgraded interface design to a premium theme with Outfit/Inter typography, harmonious HSL palettes, and fluid responsive layouts.
โ€ข Migrated database system to dual Supabase + Neon mirrored routing for automated failover and sync.
Chapter 8

Troubleshooting & FAQ

โ“ A teacher says their link is not working.

Links do not expire during an exam period. Ask the teacher to copy the full URL including "https://". If still failing, go to Teacher Links and generate a new link for that subject.

โ“ Report cards are printing onto 2 pages.

In your browser print dialog, set Scale to 100%, Paper Size to A4, and Margins to Default (not None). Do not use "Fit to Page".

โ“ A parent says they cannot log into the Student Portal.

Go to Students โ†’ Edit the student โ†’ Check their username and password are set. If unsure, set a new password and re-send their credentials using the "Send Portal Logins" button.

โ“ WhatsApp/SMS messages are not sending.

Go to Messages โ†’ API Settings and verify your API key is correct. Ensure there is credit/balance in your ApiWap or Blessed Text account. Test by sending a message to your own phone number first.

โ“ A student's marks are not appearing on their report card.

Ensure the marks were saved by the teacher (check Message Logs for confirmation). Verify the student is in the correct Grade and Stream that the teacher's link was generated for.

โ“ How do I add another admin user (e.g., a Deputy)?

Go to Settings โ†’ Team Members and click "Add Member". Enter their name, email, and password. They can log in immediately with the role you assign (e.g., D.O.S).

โ“ The portal shows "Under Maintenance".

An administrator has activated maintenance mode. It will lift automatically when the scheduled maintenance ends, or the admin can disable it from Settings โ†’ Maintenance Mode.

โ“ How do I update my school logo on report cards?

Go to Settings โ†’ School Profile. Upload your logo in the "School Badge" field. The logo updates instantly on all future report cards.

โ“ The timetable grid lines are not visible when printing.

In your browser print dialog, enable "Background Graphics" (Chrome) or "Print Backgrounds" (Edge/Firefox). Set the paper orientation to Landscape and scale to 100%. For best results use Chrome on a desktop computer.

โ“ The timetable looks wrong on my mobile phone.

On mobile, the timetable automatically switches to a daily timeline view. Tap the day tabs (Mon, Tue, Wedโ€ฆ) at the top to navigate between days. Each period is displayed as a card in chronological order for easy reading and editing.

โ“ The stream dropdown shows "No Streams" when I add a student.

This means no streams have been registered for the selected class yet. Go to Classes in the sidebar โ†’ Bulk Add by Class tab โ†’ select the class โ†’ type the stream names โ†’ click "๐Ÿ’พ Save Streams". Then return to the student form and the streams will appear.

โ“ I added streams globally before, but now each class needs separate streams. What do I do?

Global (Shared) streams still work for classes that have not had class-specific streams assigned. To migrate: go to Class Hub โ†’ All Streams, click Edit on each stream, assign it to the correct class, and save. Then use the Bulk Add tool to add any new class-specific streams.

โ“ My timetable shows a blank page or nothing when I select "All Classes & Streams" print.

This happens when no classes or streams are registered yet. Go to Settings โ†’ Academic Structure and add your class levels first. Then go to Class Hub and register streams for each class. Return to Timetable and try again.

โ“ Can a class have a timetable if it has no streams?

Yes! The system now supports streamless classes. If a class has no registered streams, a single timetable is generated for the whole class without any stream label. You can edit, save, and print it normally.