Transport¶
Who does this: Transport Manager Where: Transport How often: At the start of the year, then as families join and leave; trips every school day
Transport has four parts: the routes the buses run, the people who ride them, the seat each child is given for the year, and the trips the buses make each day, which parents can follow live.
Bus ── Route ── Stops along it
│ │
│ └── the children allocated to it, this year
│
├── Driver
├── Bus attendant
└── The bus's own papers — registration, insurance, inspection, operating card, permit
Buses¶
A school bus is a vehicle in the school's fleet, with the school's own details added: the bus number painted on the side (which is not the plate, and is what prints on a child's ID card), the number of student seats, the driver and attendant who ride it, and its papers.
Marking a vehicle as a School Bus is what brings it into this app.
Transport → Bus & Driver Register is the register a transport manager works from: every bus with its number, its driver, the driver's licence number and expiry, and the expiry of each of the bus's own documents, all sortable and filterable by the date that matters.
The register's dates are read from the documents
The expiry columns are read-only on the register. Changing a date means editing the document behind it, and the register follows. One place to change, one place that can be wrong.
A bus's next document expiry includes its driver's documents as well as its own — a bus with current papers and a driver whose licence lapsed on Thursday is not a bus that runs on Sunday.
Routes¶
Transport → Routes → Routes.
| Field | |
|---|---|
| Route Name and Route No. | |
| Bus | Which bus runs it |
| Driver and Bus Attendant | Defaults from the bus; can be overridden per route |
| Distance | |
| Morning Departure and Afternoon Departure | |
| Route Capacity | A cap below the bus's own seats, where the school wants one |
| Transport Fee | The annual fee for riding this route |
| Seats · Seats Taken · Seats Free | Kept up to date automatically |
A route outlives the year. Which child sits on it does not — that is the allocation.
Stops¶
Transport → Routes → Stops, or the Stops tab on the route.
| Field | |
|---|---|
| Stop Name, Landmark, street and city | The landmark is what a parent actually recognises |
| Latitude and Longitude | Where the stop is on the map. Needed for the live map and for marking a stop reached by the crew phone's position |
| Sequence | The order along the route |
| Pickup Time and Drop-off Time | |
| Stop Capacity | A safety limit on how many children are collected at one point |
| Students | How many are collected there, kept up to date |
A stop's capacity cannot be lowered below the number of children already collected there.
Drivers and bus attendants¶
Transport → People → Drivers and Bus Attendants.
A driver may be a member of school staff, or a contractor's driver with no employee record at all. Both are recorded here, because the second is the group most likely to turn up with a lapsed licence, and a school still has to hold their papers.
| Field | |
|---|---|
| Driver Name | |
| Employee | Where the driver is on the school payroll |
| Contractor | Where they are not |
| Phone and Mobile | |
| Driving for the School Since | |
| Licence Class | |
| Documents tab | Their ID and driving licence, with numbers and expiry dates |
| Crew Screen Login | The login they use for the crew screen on the bus. See below. |
Giving the crew their login¶
Whoever is on the bus, the driver or the attendant, updates the trip from a phone. Each of them needs a login for that.
- Make sure their Mobile number is filled in. It becomes their login, as digits only.
- Press Give Crew Screen Login on the driver or the bus attendant.
- Set a password for that login and give it to them.
The login opens the crew screen and nothing else: it cannot open the school's back office. Remove Login switches it off, for example when a driver leaves.
Allocating a seat¶
Transport → Transport Allocations.
An allocation is one child, for one year, on one route.
| Field | |
|---|---|
| Enrollment | Which child, in which year |
| Route | Which fills in the bus, bus number and driver |
| Pickup Point and Drop-off Point | Stops on that route |
| Trip No. | |
| Trip Type | Two Way · One Way – Morning Only · One Way – Afternoon Only |
| Transport Fee | Defaults from the route |
| From and Until | The first and last day the child rides |
One-way is recorded with its direction
Not as a single "one way" value. The bus attendant has to know whether to expect a child on the afternoon bus, and "one-way" on its own does not answer that.
The process¶
- Transport → Transport Allocations → New, choose the child's enrollment and the route.
- Choose the pickup and drop-off points from that route's stops.
- Set the trip type and check the fee.
- Press Activate.
What Activate checks¶
Four things, in order:
| Check | What it means |
|---|---|
| The academic year is open | No seat is allocated in a closed year |
| The enrollment is live | A withdrawn child does not get a seat |
| The bus, route and stop have room | The message says which limit was hit and by how much |
| — | And the child's transport type is set to School Bus |
The three capacity limits are checked in this order:
| Limit | Zero means |
|---|---|
| Student seats on the bus | No limit |
| Route capacity | Follow the bus |
| Stop capacity | No limit |
A route may cap below its bus — a fifty-seat bus on a route the school holds to forty because the last leg is a narrow street.
Capacity is checked when you activate, not when you plan
A draft allocation is a plan. A school laying out next year's routes should be able to write down more children than currently fit while it decides which bus to add.
Ending and changing an allocation¶
| Button | Use it when |
|---|---|
| End Allocation | The child stops using the bus, or changes route mid-year |
| Cancel | The allocation was a mistake, or never started |
| Reset to Draft | A correction before it started. Refused while the allocation is still active — end or cancel it first. |
A child who changed route in March keeps both rows: the one that ended and the one that took over. Only one may be active at a time, and the system enforces it.
Ending a child's last allocation sets their transport type back to None. The child's record and their bus seat never drift apart.
Daily trips¶
Transport → Trips.
A trip is one run of one route on one day: the morning run to school, or the afternoon run home. Each trip lists the route's stops in order, each with the time the bus is due there.
Where trips come from¶
Nobody types them in. The system plans today's and tomorrow's trips on its own, several times a day, from the seats allocated on each route:
- A route runs in the morning, the afternoon, or both, depending on the trip types of the children allocated to it. A separate run is planned for each trip number.
- No trip is planned on a day the school calendar says is not a school day.
- The bus, driver and attendant are copied from the route onto the trip. If a different bus or driver goes out that day, change it on the trip, and the route stays as it is.
- In the afternoon the stops follow their drop-off times, not the morning order reversed.
Plan Today's Trips on the trip list does the same thing straight away. It is useful after a route was added or changed this morning.
How a trip moves on¶
| What happens | How |
|---|---|
| The trip starts | The crew presses Start Trip on the crew screen, or reaches the first stop |
| A stop is reached | The crew taps Arrived, or the crew phone's position comes within the stop's radius |
| Nobody is at a stop | The crew taps Nobody here - pass. The stop is marked Passed |
| A later stop is reached first | Any earlier stops still waiting are marked Passed |
| The trip ends | At the last stop, or when the crew presses End Trip |
Each stop records when it was reached and how: by the crew, by the phone's position, by a tracker on the bus, or by the office.
The office can do all of this on the trip as well, for the morning when the crew phones it in instead: Start Trip, End Trip and Cancel on the trip, and Reached or Passed on each stop. A cancelled trip can be brought back with Plan Again.
A bus is on one trip at a time
A bus cannot start a trip while it is still on the road on another one. End the first trip, then start the next. A trip left open overnight is closed by the system.
Running late¶
Every trip shows how many minutes late it is, compared with the timetable. The filters Today, On the Road and Running Late on the trip list are the transport office's morning view.
The arrival time at each stop is the timetable moved by today's delay. When the crew phone is sending its position, the time to the next stop is worked out from how much of the road to it is still left.
The crew screen¶
Who uses it: the driver or the bus attendant, whichever is on the bus. Where: on a phone. They log in to the school website and open My Account → My Trips.
The screen lists today's trips for their bus. Opening one shows the map, every stop in order with how many children wait at each, and one large button for what comes next:
- Start Trip when the bus leaves.
- Arrived at each stop. Under it, Nobody here - pass for a stop where nobody is waiting.
- End Trip at the end. Reaching the last stop ends the trip anyway.
While the screen is open, the phone sends its position, and a stop is marked reached on its own when the bus comes within the stop's radius. The crew can always tap as well. A tap is never lost:
- No signal: the tap is kept on the phone with the time it happened, and is sent when the signal comes back. The screen shows how many updates are waiting.
- Tapped twice: the second tap changes nothing.
What the phone needs
- The phone sends its position only while the crew screen is open and the screen is on. The page asks the phone to stay awake. An iPhone stops sending when the page is in the background.
- The site must be on a secure (https) address for the phone to share its position. Without it, the screen says so and works on taps alone.
Where Is the Bus? — for parents¶
A parent logs in to the school website and opens My Account → Where Is the Bus?. They see one card per child with a seat on a bus today:
- one sentence saying where things stand, for example "2 stops before yours - about 9 min (07:24)", "Your stop is next", "Picked up at 07:21", or "Dropped off at 14:32";
- while the bus is on its way: the minutes until it reaches their stop, the expected time, the number of stops before theirs, and a note when the bus is running late;
- a map with their own stop and the bus.
The page updates itself as the bus moves. Nobody has to refresh it.
What a parent never sees
A parent sees their own stop only. They never see the other stops on the route or where other children wait. They see the bus while their child is on it or waiting for it. In the afternoon, the bus disappears from their map once their child has been dropped off.
The live map — for the transport office¶
Transport → Live Map shows today's buses on one map, with a list beside it: every trip on the road or still to start, with its bus, route, stops reached, next stop and how late it is. Choosing a trip in the list shows its bus and stops on the map. The map updates itself.
Bus tracking settings¶
In School → Configuration → Settings, under Bus Tracking:
| Setting | Default | What it does |
|---|---|---|
| Stop Arrival Radius (m) | 80 | How close the bus must come for the phone's position to mark a stop reached |
| Keep Bus Positions (days) | 30 | How long the bus's route trail is kept. Older positions are deleted every night. The time each stop was reached is kept. |
The trip times use the school's timezone, so set it on the school's address.
The map uses the free OpenStreetMap service, which is suitable for a pilot. For everyday use with every family, the school should move to a paid or self-hosted map service. Changing it is a setting, not a code change.
How the transport fee reaches the bill¶
It is not posted from here. The child's transport type — set by activating an allocation — is what the fee process reads to decide whether the optional transport component of the published fee structure applies to them.
That means a school can run buses without using the fee side of the system at all, and the two never contradict each other when it does use both. See Fees and collection.
The bus and driver document file¶
Every paper the regulator asks for is a document row on the bus or on the driver, in the same checklist the whole school uses:
| On the bus | On the driver |
|---|---|
| Registration (Istimara) | Driver ID |
| Insurance | Driving licence |
| Periodic inspection (Fahas) | |
| Operating card | |
| Transport permit |
Each carries its number and its expiry date, and both appear as columns on the bus and driver register. Adding a further kind of document is a new checklist row — no code, no release. See Document checklists.
Who can do what¶
| Routes, stops, buses, drivers, allocations | Trips and the live map | |
|---|---|---|
| Transport Manager | Full, and can open the bus record itself | Full, including the bus's route trail |
| Administrator | Full, including deletion | Full |
| Driver or bus attendant | — | Their own bus's trips today, on the crew screen |
| Parent | — | Their own child's stop and bus, on Where Is the Bus? |
Deleting an allocation is the Administrator's alone: an allocation is what a transport fee was raised against.
What is coming later¶
- Transport attendance — who boarded, morning and afternoon, per trip, and the alert for a child nobody accounted for.
- A WhatsApp message to the family when the bus is close to their stop.
- The on-time report per route and bus.
- The transport attendance report and the bus and driver register report.
- Per-bus cost attribution, once expenses are in the system.