SchoolGate User & Setup Manual
Everything you need to set up and use the system at Mary Help Of Christians School - Minglanilla.
Contents
- Getting started & roles
- Gate system overview
- Setting up the touchscreen kiosk
- Big screen (TV display)
- Biometric fingerprint terminals
- Gate Devices page
- How IN / OUT is decided
- Unknown cards & visitors
- Gate SMS to parents
- Students & guardians
- RFID & fingerprint enrolment
- ID card printing
- Academics, attendance & grades
- Billing & cashier
- SMS Center & SMS Gateway
- Announcements, messages & notifications
- Library
- Parent & student portal
- Reports & downloads
- Install as an app
- Backups & migration
- System updates
- Scheduled tasks
- Troubleshooting FAQ
SchoolGate runs the school gate (RFID cards, fingerprints, kiosk and big screen with SMS to parents) together with student records, academics, billing, library and a parent / student portal.
Parents and students: ask the school office for your username and password, then sign in. Staff: your account is created by the administrator.
Getting started & roles
Back to top ↑Signing in
Open https://school.advanceitservices.ph/ in any browser (phone, tablet or PC). You can sign in with your username, email, student number or employee number. After 5 wrong passwords the sign-in pauses for a minute. Forgot your password? The registrar or administrator can reset it in Users.
Roles
| Role | What they can do |
|---|---|
| System Administrator | Everything, including backups, system updates and lowering the OR number. |
| School Administrator | Gate, gate devices, records, academics, billing, SMS, users, settings and audit log. |
| Registrar | Students, guardians, ID cards, academic setup, attendance, grades, report cards, SMS. |
| Cashier / Accounting | Fees, assessment, cashier, payments, statements of account, expenses, SMS. |
| Teacher | Own classes: attendance, grades, records, announcements, messages. |
| Librarian | Library catalogue, circulation, fines and visits. |
| Security Guard | Gate kiosk, big screen, gate logs and visitors. |
| Parent / Student | Portal: attendance, grades, statement of account, library, announcements and messages. |
First-time setup checklist (administrator)
- Settings → School: name, address, signatories. Branding: upload the logo and pick colours.
- Academic Setup: school year (mark it current), grade levels, sections, subjects and teaching loads.
- Employees and Users: add staff and give each one a role.
- Students: add or import students with their guardians' mobile numbers.
- Gate Devices: add the kiosk, big screen and fingerprint terminals; enrol RFID cards / fingerprints.
- SMS Gateway: pair the Android phone (or set up E-send).
- Fees & Assessment: fee items per grade level, then assess students.
- Settings → Scheduled tasks: set up the 5-minute task, then make your first Backup.
Using the screens
On phones the menu opens with the ☰ button and the most used pages are in the bottom bar. On desktops the menu can be collapsed with the arrow button. Every list has filters, and most lists can be exported to CSV.
Gate system overview
Back to top ↑Every way of entering or leaving ends up in the same gate log, with the same rules and the same SMS to parents:
- Touchscreen kiosk (
kiosk.php) with a USB RFID reader – the most common setup. - Big screen (
display.php) on a TV shows who just tapped, with photo and today's counters. - Biometric fingerprint terminals push their scans to the server over the network.
- Other readers / bridges post scans to
api/gate_scan.php. - Manual entry by a guard (student / employee number), for a forgotten card.
See Gate Logs for every tap (filter by date, person, direction, late), and Reports for attendance summaries. Students who never tapped on a school day count as absent (Sundays, holidays and no-class days from the School Calendar are skipped).
Setting up the touchscreen kiosk
Back to top ↑What you need
- A touchscreen PC, all-in-one or tablet at the gate, on the same network as the server (Wi-Fi or LAN cable).
- A USB RFID reader in keyboard-emulation mode (also called “keyboard wedge” / HID). It types the card number followed by Enter – exactly like a keyboard – and the kiosk catches it. No driver or software is needed.
- Optional: a webcam for a photo on every tap, and speakers for the beep.
Opening the kiosk
- Option A – signed in: sign in on the kiosk PC as a guard or administrator and open
https://school.advanceitservices.ph/kiosk.php(menu Gate → Gate Kiosk). - Option B – device link (recommended): in Gate Devices add a device of type Kiosk and open its link
https://school.advanceitservices.ph/kiosk.php?device=KEYon the kiosk. No sign-in is needed and the kiosk keeps working after restarts. Bookmark it or set it as the browser's start page. - Press F11 for full screen, or use the browser's Install app button so it opens in its own window without address bar.
- The kiosk works vertical (portrait) or horizontal (landscape); the layout adapts.
Using it
- Tap a card: the name, photo, class and IN/OUT appear for a few seconds (Settings → Gate → Kiosk pop-up duration), with a sound.
- The guard can press the IN or OUT override buttons before a tap to force the direction (for example, a student leaving early).
- With Settings → Gate → Take a webcam photo on each tap on, a snapshot is saved with the log. Photos are deleted automatically after 180 days.
- If the kiosk loses the network it shows a warning; taps are not recorded until it reconnects, so keep the cable/Wi-Fi reliable.
https:// or on localhost. See the FAQ for the Chrome setting that allows it on your LAN address.Big screen (TV display)
Back to top ↑- Add a device of type Display in Gate Devices.
- Connect a TV to a PC (or mini-PC / TV box with a browser) via HDMI and open
https://school.advanceitservices.ph/display.php?device=KEY. - Set the browser to full screen (F11) or kiosk mode, e.g. a shortcut to
chrome.exe --kiosk "https://school.advanceitservices.ph/display.php?device=KEY".
The big screen shows the face / photo, name and class of each person who taps at any gate, whether it is IN or OUT and late, plus today's counters (in campus, entered, left, late). It updates by itself; nobody needs to touch it.
Biometric fingerprint terminals
Back to top ↑(a) ZKTeco-compatible terminals (“Cloud server” / ADMS push)
Most ZKTeco and compatible fingerprint / face terminals can push attendance to a server using the ADMS (“iclock”) protocol. SchoolGate receives it at /iclock/cdata.
- Give the server PC a fixed LAN IP (e.g.
2a02:4780:3:1377:0:2bc2:bbeb:2) in your router or Windows network settings. - Terminals always call
/iclock/cdataat the web root. On XAMPP, openC:\xampp\apache\conf\httpd.conf, add this line at the end, save and restart Apache in the XAMPP Control Panel:Alias /iclock "C:/xampp/htdocs/gatekeeping/iclock"
(On Linux/cPanel use the same Alias in the virtual host, or install the system at the web root.) - On the terminal: Menu → Comm. → Cloud Server Setting (name varies): Server address
2a02:4780:3:1377:0:2bc2:bbeb:2, port80, domain name / HTTPS off. If the terminal asks for a server path, use/iclock/cdataso it reacheshttp://2a02:4780:3:1377:0:2bc2:bbeb:2/iclock/cdata. - In Gate Devices add a device of type Biometric and type the terminal's serial number (Menu → System Info → Device Info). Choose its gate and direction.
- Enrol each person's fingerprint on the terminal using a user ID, and type the same ID in the student's or employee's Fingerprint ID field in SchoolGate.
- Check Gate Devices: the terminal's “last seen” time updates when it connects. Scans appear in Gate Logs within seconds.
(b) Any other reader, bridge or script
Any device or small program can send scans to api/gate_scan.php with the device key from Gate Devices (type Reader):
curl -X POST "https://school.advanceitservices.ph/api/gate_scan.php" \
-H "X-Device-Key: YOUR_DEVICE_KEY" -H "Content-Type: application/json" \
-d "{\"finger_id\":\"12\"}"
curl -X POST "https://school.advanceitservices.ph/api/gate_scan.php" \
-H "X-Device-Key: YOUR_DEVICE_KEY" -H "Content-Type: application/json" \
-d "{\"rfid\":\"0012345678\"}"
The reply is JSON with the person, the direction (in / out) and whether it was ignored by the cooldown or unknown.
Gate Devices page
Back to top ↑| Kind | Used for |
|---|---|
| Kiosk | Touchscreen at the gate with a USB RFID reader (kiosk.php?device=KEY). |
| Display | Big screen / TV (display.php?device=KEY). |
| Reader | Any reader or bridge that posts to api/gate_scan.php with the key. |
| Biometric | ZKTeco-compatible terminal identified by its serial number. |
- Gate name (e.g. Main Gate, Back Gate) is saved with every log.
- Direction: auto toggles IN/OUT per person; in or out fixes it (for separate entrance and exit readers).
- Key: the secret in the device link. Regenerate it if a link was shared by mistake; the old link stops working. Deactivate a device to block it.
- Last seen shows whether each device is online.
How IN / OUT is decided
Back to top ↑- Auto direction: the first tap of the day is IN, the next is OUT, then IN again, and so on. Each day starts fresh.
- Cooldown (Settings → Gate, default 5 s): a repeat tap of the same card within this time is ignored, so a nervous double tap doesn't log the student out.
- Minimum stay (default 5 s): after an IN, taps within this time don't flip to OUT.
- Late time (currently 07:30): students whose first IN is after this time are marked late, and parents get the “late” SMS.
- A device set to in or out, or the guard's override buttons, always win over auto.
Unknown cards & visitors
Back to top ↑Unknown cards
A card or finger that matches nobody shows “Unknown card” on the kiosk and is listed in Gate Logs → Unknown with the time and device. Use that number to enrol the card to the right student or employee (copy it into their RFID field).
Visitors log
Gate → Visitors: record each visitor's name, phone, purpose, person to visit, ID presented and badge number (optionally a photo). Press Time out when they leave. The list shows who is still inside.
Gate SMS to parents
Back to top ↑When a student enters, leaves or arrives late, the guardians whose Gate SMS option is ticked receive a text. Turn IN / OUT / staff texts on or off and edit the wording on the SMS Gateway page (placeholders {school}, {name}, {time}, {date}).
Texts are queued and never lost: if the gateway phone is off they are sent when it comes back. Parents with portal accounts also see every tap in Attendance.
Students & guardians
Back to top ↑- Records → Students: add a student with photo, LRN, class and status. Search by name, number or card.
- Guardians: add one or more per student with mobile numbers and tick which texts each receives (gate, billing, announcements). Mark one as primary.
- Create parent portal accounts and link them to all their children.
- The student profile shows gate attendance, class attendance, grades, account balance, documents and guidance / clinic records.
- Statuses: enrolled, pending, inactive, graduated, transferred, dropped. Only enrolled / pending students can pass the gate.
RFID & fingerprint enrolment
Back to top ↑- Open the student's or employee's edit page, click into the RFID card field and tap the card on a USB reader connected to your PC – the number is typed in. Save.
- For fingerprints, enrol the finger on the terminal with a user ID, then type the same number in Fingerprint ID.
- Each card and fingerprint ID can belong to only one person. A lost card: clear the field, then enrol the new card.
- Leading zeros and spaces from readers are ignored when matching.
ID card printing
Back to top ↑Records → ID Cards: choose students (by section) or employees, preview and print. Cards are standard CR80 size (85.6 × 54 mm) with photo, name, ID number, barcode, school logo, validity and signatory (Settings → ID Cards).
- PVC card printer (Evolis, Zebra, Fargo…): select the card printer, paper size CR80, margins none, scale 100%.
- A4 sheets: print on A4 (sticker paper or cardstock) with scale 100% and cut along the guides, then laminate.
- Use Chrome or Edge, turn off “Headers and footers” and turn on “Background graphics”.
Academics, attendance & grades
Back to top ↑Academic setup
Create the school year and mark it current, then grade levels, sections (with adviser and room), subjects and teaching loads (which teacher handles which subject in which section). Add holidays and no-class days to the School Calendar.
Class attendance
Teachers mark present / absent / late / excused per section per day. This is separate from the gate log, so you can compare both.
Grades & report cards
Teachers encode grades per grading period for their subjects; the final grade and remarks (passed / failed, passing grade in Settings → Academics) are computed. Advisers add conduct, remarks and days present, then publish the report card so parents can see it in the portal. Print report cards from Report Cards.
Billing & cashier
Back to top ↑- Fees & Assessment: add fee items per school year and grade level (tuition, miscellaneous…). Items with installments are split into monthly due dates. Assess one student or a whole grade level.
- Cashier: find the student, see what's due, enter the amount and method (cash, GCash, Maya, bank, check). An official receipt with the next OR number is created and can be printed; parents get an SMS receipt.
- Statement of Account (SOA): ledger with running balance; print or let parents view it in the portal.
- Student Accounts: balances of all students; filter overdue and send SMS reminders. Automatic reminders go out daily from the scheduled task (at most once a week per student, Settings → Billing).
- Payments: daily collections. A wrong payment is voided with a reason (never deleted), and its OR number is not reused.
- Expenses: record school expenses for the finance reports.
OR numbering is set in Settings → Billing (prefix and next number). Only the System Administrator can lower the next number.
SMS Center & SMS Gateway
Back to top ↑How texts are sent
Every SMS goes into a queue first, so messages are never lost when the internet or the phone is down. They then leave by the route chosen on the SMS Gateway page:
| Mode | How it works |
|---|---|
| Gateway | Your own Android phone with the E-send Gateway app and a SIM sends the texts. It talks to the server over the school Wi-Fi, so it works without internet. |
| E-send | Messages are handed to an E-send server (online or on your LAN) with its URL and API key. |
| Both | E-send first; if it can't be reached, the local gateway phone takes over automatically. |
Pairing the Android phone
- Install the E-send Gateway app on an Android phone with a load / unlimited-text promo SIM, and connect it to the school Wi-Fi.
- On SMS Gateway click Add phone: a pairing code / QR is shown. Enter the server address (
https://school.advanceitservices.ph/) and code in the app. - Keep the phone plugged in, disable battery optimisation for the app and keep Wi-Fi on while sleeping. The page shows battery and last seen.
SMS Center
Send to a student's guardians, a section, a grade level, all parents or staff, using saved templates. See the outbox status (queued, sending, sent, failed), retry failed texts and read replies in the inbox.
Announcements, messages & notifications
Back to top ↑- Announcements: post to everyone, parents, students, staff, a grade or a section; pin important ones, set an expiry and optionally text them.
- Messages: private conversations between staff and parents / students (e.g. teacher ↔ parent).
- Notifications (bell icon): payments, published report cards, overdue books, new messages. Read notifications older than 90 days are cleaned up automatically.
Library
Back to top ↑- Catalogue: one record per physical copy (accession number) with ISBN, author, call number, location and cover. Print barcode labels for the spines.
- Circulation: scan the borrower's ID card and the book barcode to lend; scan the book to return. Loan days, maximum books and fines are in Settings → Library.
- Fines: computed per day overdue; mark them paid, waived or add them to the student's account (billed).
- Visits: log library visits by tapping ID cards.
- Parents receive an overdue reminder every 3 days by SMS while a book is overdue (scheduled task).
Parent & student portal
Back to top ↑Parents and students sign in at https://school.advanceitservices.ph/login.php on their phones and can see:
- Attendance: every gate IN / OUT with time and late marks, plus class attendance.
- Report card (once published, if enabled in Settings → Portal).
- Statement of account: charges, payments and balance (if enabled).
- Library loans and due dates, announcements and messages with teachers and the office.
A parent with several children switches between them on each page. Install the portal as an app for one-tap access (next section).
Reports & downloads
Back to top ↑- Reports has attendance (daily, monthly, late, absences), finance (collections, balances, expenses), library and enrolment reports.
- CSV downloads open directly in Excel (UTF-8, names with ñ display correctly).
- Print any report, SOA, receipt or report card, and choose Save as PDF as the printer to get a PDF.
Install as an app
Back to top ↑| Device | How to install |
|---|---|
| Android (Chrome) | Open the site → menu ⋮ → Install app / Add to Home screen, or tap the Install App button at the top. |
| iPhone / iPad (Safari) | Open the site in Safari → Share button → Add to Home Screen. |
| Windows / Mac (Chrome, Edge) | Click the install icon in the address bar, or menu → Install SchoolGate. Good for the kiosk and cashier PCs. |
The app icon is the school logo (Settings → Branding). Installing needs https:// or localhost; on a plain LAN address use a desktop shortcut in full screen instead.
Backups & migration
Back to top ↑System → Backups (System Administrator) creates packages in the style of Duplicator: a ZIP archive with all files, uploads and a database dump, plus an installer.php protected by a password you choose.
- Create a backup regularly (e.g. weekly and before updates) and download it to a USB drive or cloud storage. Only the newest packages are kept on the server.
- Restore database: roll the database back to a package's dump.
- Move to another server: upload the archive and
installer.phpto the new server's folder, openinstaller.phpin the browser, enter the password and the new database details. It extracts the files, imports the database and updates the configuration.
System updates
Back to top ↑- Connect local and online sites: generate a deploy key on System Updates and put the same key in
config/config.php(DEPLOY_KEY) on both sites; on the local site also setDEPLOY_TARGET_URLto the online address. - Compare shows new, changed and deleted files between the two sites.
- Update online site sends the changed files; the online site shows a short “updating” page meanwhile and makes a restore point first.
- Manual update package: download a ZIP of the update and upload it on the other site when they can't reach each other.
- Roll back to the restore point if something went wrong.
- Database changes are applied automatically after an update. Open pages reload themselves when a new version is installed.
Scheduled tasks
Back to top ↑cron.php sends queued E-send texts, re-queues stuck gateway texts, sends daily billing and library reminders and cleans up old gate photos (180 days), read notifications (90 days) and sent SMS (1 year). Run it every 5 minutes:
Windows (XAMPP) – Task Scheduler
Program: C:\xampp\php\php.exe Arguments: C:\xampp\htdocs\gatekeeping\cron.php
Create a Basic Task (daily), then in its trigger tick Repeat task every 5 minutes for Indefinitely and Run whether user is logged on or not.
Linux / cPanel – Cron Jobs
*/5 * * * * php /home/USER/public_html/gatekeeping/cron.php >/dev/null 2>&1
Web address (any online cron service)
https://school.advanceitservices.ph/cron.php?key=CRON_KEY
The key and the last run results are on Settings → Scheduled tasks.
Troubleshooting FAQ
Back to top ↑The kiosk shows “Unknown card”
The card isn't enrolled, or it was enrolled to a student who is no longer enrolled / an inactive employee. Find the number in Gate Logs → Unknown and put it in the person's RFID field.
The reader types nothing
Open Notepad and tap a card: if no number appears, the reader isn't in keyboard (HID) mode or isn't connected – try another USB port or set it to keyboard mode with the vendor's tool. If Notepad works but the kiosk doesn't, click once on the kiosk page so it has focus and close other windows / pop-ups.
SMS stuck in the queue
Check SMS Gateway: is the phone online (last seen within 3 minutes) and does the SIM have load? In E-send mode, check the URL and key and that the scheduled task runs. Texts stuck in “sending” for 10 minutes are re-queued automatically.
The gateway phone is offline
Open the app on the phone, make sure it is on the school Wi-Fi (not mobile data only if the server is on the LAN), plugged in, and that battery optimisation is off for the app. Restart the phone if needed – queued texts will go out when it reconnects.
The biometric terminal is not connecting
- Ping the server IP from another PC; check the terminal's IP, gateway and server address/port 80.
- Make sure the
Alias /iclockline is inhttpd.confand Apache was restarted. Openhttp://2a02:4780:3:1377:0:2bc2:bbeb:2/iclock/cdatain a browser on the LAN – it should answer instead of “Not Found”. - Allow Apache (port 80) through Windows Firewall for private networks.
- The serial number in Gate Devices must match exactly and the device must be active.
The time is wrong
Set the correct time and time zone on the server PC. The system's time zone is Asia/Manila in config/config.php (date_default_timezone_set). Also set the correct time on biometric terminals.
The camera is blocked on the kiosk
Browsers only allow cameras on https:// or localhost. For a kiosk on the LAN either run the kiosk browser on the server PC itself (http://localhost/kiosk.php), or in Chrome open chrome://flags/#unsafely-treat-insecure-origin-as-secure, add your server address (e.g. http://2a02:4780:3:1377:0:2bc2:bbeb:2), set it to Enabled and relaunch Chrome.
“The database is not responding”
Start MySQL (and Apache) in the XAMPP Control Panel. Tick the services to start automatically with Windows.
Something went wrong (reference code)
Note the reference code shown and give it to the administrator; the details are in config/logs/app-errors.log.