Dashboard
Live school overview — updated in real time
Today's gate activity
View all| Time | Name | Type | Status |
|---|
Department status
| Department | Status |
|---|---|
| Gate & Security | Operational |
| Fees & Accounts | Check EOD |
| Academic | Normal |
| HR & Attendance | Normal |
| Transport | Running |
| Parent Relations | Complaints open |
The Quest International School
Gate registration terminal · Please select who you are
Visitor & gate log
Total entries today
—
Blocked attempts
—
Admission enquiries
—
| Time | Name | Phone | Type | Purpose / Detail | Status |
|---|
No entries found
Authorised pickup register
Manage who is authorised to collect each student
All registered persons
| ID | Name | Phone | Relation | Student | Pickup auth. | Status | Action |
|---|
Status change history
| Date | Person | Change | Approved by | Email ref. |
|---|---|---|---|---|
| No changes recorded yet | ||||
Incident & safety log
All reported security and safety events
Open incidents
0
This month
0
Resolved
0
| Date & time | Type | Description | Severity | Status |
|---|---|---|---|---|
| No incidents logged | ||||
Academic overview
Academic summary — coming soon as modules are completed.
Classes set up
—
Subjects added
—
Teachers added
—
Allotment status
| Class | Subjects assigned | Gaps |
|---|---|---|
| No data yet. Complete Subject Allotment first. | ||
Fees & collection
Daily collection tracking and outstanding dues
Collected today
₹0
Collected this month
₹3.8L
Outstanding dues
₹2.4L
18 families
Overdue 30+ days
5
families
Today's collections
| Time | Student | Class | Amount | Mode | Receipt |
|---|---|---|---|---|---|
| No collections logged today | |||||
HR & parent relations
Staff records and parent complaint tracking
Total staff
40
On leave today
2
Open complaints
0
Resolved this month
11
Parent complaints
| Date | Parent | Issue type | Assigned to | Status | Action |
|---|---|---|---|---|---|
| No complaints logged | |||||
Deployment setup guide
Get this app live at a real URL in 30 minutes
Step 1 of 4 — Create your free Supabase database
1
Go to supabase.com and sign up free
Click "Start your project" → sign up with Google → create a new project. Name it: quest-school. Choose region: Asia (Singapore). Set a database password and save it.
2
Run this SQL to create all your tables
In Supabase → click "SQL Editor" in the left menu → paste this entire block → click Run:
-- The Quest International School Gate System Tables
create table if not exists gate_log (
id uuid default gen_random_uuid() primary key,
created_at timestamptz default now(),
person_name text not null,
phone text,
entry_type text not null, -- Staff / Parent / Visitor
movement text, -- Entry / Exit
purpose text,
student_name text,
status text not null, -- Logged / Active / Blocked / Screened
barcode text,
notes text
);
create table if not exists pickup_register (
id uuid default gen_random_uuid() primary key,
created_at timestamptz default now(),
pickup_id text unique not null,
person_name text not null,
phone text not null,
relation text,
student_name text,
student_class text,
pickup_authorised boolean default true,
status text default 'Active',
registered_by text,
notes text
);
create table if not exists status_change_log (
id uuid default gen_random_uuid() primary key,
created_at timestamptz default now(),
pickup_id text,
person_name text,
change_from text,
change_to text,
approved_by text,
email_reference text
);
create table if not exists incidents (
id uuid default gen_random_uuid() primary key,
created_at timestamptz default now(),
incident_type text,
severity text,
description text,
people_involved text,
action_taken text,
status text default 'Open',
resolved_by text,
resolved_at timestamptz
);
create table if not exists fee_collection (
id uuid default gen_random_uuid() primary key,
created_at timestamptz default now(),
student_name text not null,
student_class text,
amount numeric not null,
payment_mode text,
receipt_number text,
logged_by text
);
create table if not exists complaints (
id uuid default gen_random_uuid() primary key,
created_at timestamptz default now(),
parent_name text not null,
student_name text,
issue_type text,
description text,
assigned_to text,
status text default 'Open',
resolved_at timestamptz,
resolution_notes text
);
-- Enable Row Level Security (keeps data safe)
alter table gate_log enable row level security;
alter table pickup_register enable row level security;
alter table status_change_log enable row level security;
alter table incidents enable row level security;
alter table fee_collection enable row level security;
alter table complaints enable row level security;
-- Allow all operations for authenticated users (you will restrict per role later)
create policy "allow all" on gate_log for all using (true);
create policy "allow all" on pickup_register for all using (true);
create policy "allow all" on status_change_log for all using (true);
create policy "allow all" on incidents for all using (true);
create policy "allow all" on fee_collection for all using (true);
create policy "allow all" on complaints for all using (true);
3
Get your Supabase URL and Key
In Supabase → Settings (gear icon) → API. Copy two values: Project URL and anon / public key. You will paste them in Step 4.
Step 2 of 4 — Connect the app to your database
4
Update the config in the app file
Open the index.html file you downloaded. Find this section near the top of the <script> and replace with your values:
const SUPABASE_URL = 'https://YOUR-PROJECT.supabase.co';
const SUPABASE_KEY = 'YOUR-ANON-KEY-HERE';
Step 3 of 4 — Deploy to a free live URL (Netlify)
5
Go to netlify.com and sign up free
Click "Sign up" → use Google login → go to "Sites" in the dashboard.
6
Deploy by drag and drop — literally
On the Netlify Sites page, scroll down until you see a dotted box that says "drag and drop your site folder here". Put your index.html inside a folder called questschool. Drag that folder into the box. Netlify deploys it instantly.
7
Set a custom site name
After deploy, click "Site settings" → "Change site name" → type: questschool-gate. Your app is now live at: questschool-gate.netlify.app
Step 4 of 4 — Add your initial data
8
Add your authorised pickup persons
In Supabase → Table Editor → pickup_register → click "Insert row". Add every parent and authorised pickup person from your student records. Set status to 'Active' for all. This is your starting Known Visitor list.
9
Share the right URL with each staff member
Send questschool-gate.netlify.app to all staff with their username and password. The FO Executive bookmarks this on the front desk computer. The gate tablet is locked to the same URL showing the Gate Terminal screen.
10
WhatsApp alerts — set up CallMeBot
1. Save +34 644 98 86 68 in your phone contacts as "CallMeBot".
2. Send this WhatsApp message to that number: I allow callmebot to send me messages
3. You receive an API key in reply. Copy it.
4. Open index.html → find CALLMEBOT_API_KEY → paste your key there.
From that point, every blocked pickup and high-severity incident sends a WhatsApp to your number instantly.
2. Send this WhatsApp message to that number: I allow callmebot to send me messages
3. You receive an API key in reply. Copy it.
4. Open index.html → find CALLMEBOT_API_KEY → paste your key there.
From that point, every blocked pickup and high-severity incident sends a WhatsApp to your number instantly.
const FOUNDER_PHONE = '917845909008'; // your number with country code
const CALLMEBOT_API_KEY = 'YOUR-API-KEY-HERE';
Subject allotment
Set up classes, assign teachers to subjects, and view the full grid.
Classes this year
Add all your classes at the start of each year. Click x to remove.
No classes added yet. Click + Add class above.
Assign teachers by class
Select a class above to see its subjects and assign teachers.
Full allotment grid
All classes x all subjects. Green = assigned. Red = gap. CT = Class Teacher.
| Add classes and subjects to see the grid. |
Teacher load summary
Max 32 periods/week per teacher
| Teacher | Role | Assigned to | Periods/week | Load | Action |
|---|---|---|---|---|---|
| No teachers added yet. | |||||
Subject master
Edit or remove subjects and their period counts per grade group
| Subject | Grade group | Periods/week | Actions |
|---|---|---|---|
| No subjects added yet. | |||
Finance dashboard
P&L, cash flow and outstanding overview. Approved entries only.
Loading...
P&L by category
Approved transactions only
| Loading... |
Monthly cash flow
Last 2 years
| Loading... |
Fee collection
Record and track all student fee payments. Pending founder approval.
| Receipt | Date | Student | Class | Fee Head | Amount | Mode | Term | Status | Action |
|---|---|---|---|---|---|---|---|---|---|
| No records yet. Click + Record payment to begin. | |||||||||
Expenditure
Record all school expenses. Below Rs.5,000 auto-approved. Above needs founder approval.
| Date | Category | Sub-category | Amount | Mode | Paid To | Ref | Status | Action |
|---|---|---|---|---|---|---|---|---|
| No expenses recorded yet. | ||||||||
Concessions
All concession requests. Requires founder approval before taking effect.
| Student | Class | Fee Head | Type | Value | Reason | Status | Action |
|---|---|---|---|---|---|---|---|
| No concessions recorded yet. | |||||||
Student register
All students — active, TC issued and alumni. Full document checklist per student.
| Adm No. | Student | Class | Parent | Phone | Year | Docs | Status | Action |
|---|---|---|---|---|---|---|---|---|
| No students added yet. | ||||||||
Student detail
Document checklist and student record
Select a student from the register to view details.
Admission enquiries
Track all enquiries from first contact to enrollment.
| Date | Channel | Parent | Phone | Student | Class | Stage | Next step | Action |
|---|---|---|---|---|---|---|---|---|
| No enquiries yet. | ||||||||
Parent queries
Log, assign and track all parent queries and concerns to resolution.
| Date | Parent | Student | Category | Description | Urgency | Assigned to | Status | Action |
|---|---|---|---|---|---|---|---|---|
| No queries logged yet. | ||||||||
Submit a query
Submit your query or concern to The Quest International School. We will respond within 2 working days.
New query or concern
Your query will be logged and assigned to the relevant department. You can track the status under My Queries.
My queries
Track all your submitted queries and school responses.
Loading your queries...
Front Office dashboard
Live overview of gate activity, pickups and admissions for today.
Loading...
Today gate activity
No activity yet today.
Admissions follow-ups due today
No follow-ups due today.
Admissions enquiry register
Log and track all admission enquiries from first contact to enrollment.
| Date | Child | Class | Father | Mother | Phone | Source | Stage | Follow-up | Action |
|---|---|---|---|---|---|---|---|---|---|
| No enquiries yet. Click + New enquiry to begin. | |||||||||
Timetable
Auto-generate and manually adjust class timetables. Print or export to Excel.
Day rules
Set which subjects must appear on specific days
ECA
Monday, Thursday
Select a class to view timetable
Click any cell to change the subject manually
Select a class above and click Auto-generate to create the timetable.
Class setup
Define classes and sections for this academic year. Update every year before allotment.
Classes this year
No classes added yet. Click + Add class above.