Two non-academic but everyday subsystems: a small library that tracks books, racks, members and checkouts, and a transport module that records routes, vehicles, drivers and per-route fares. This article covers both.
Overview
The Library subsystem turns JoomSchool into a basic book-checkout system: who has which book, when it was issued, when it is due back. It supports a catalogue (Books), physical organisation (Racks), grouping (Categories), a member roster and individual issue records.
The Transport subsystem records the school's transport routes — typically school buses or vans. Each route has a name, a vehicle registration, a driver and a fare. Students are linked to a route on their Student profile.
Both subsystems are independent of the academic structure, but they share the same student records, so changes to a student (renaming, unpublishing) ripple through.
Prerequisites
- Students exist with class, section and roll number.
- For the Library, the recommended order is: Categories → Racks → Books → Members → Issues.
- For Transport, you only need the route, then assign students individually from the Student form.
Library
Book Categories
Components → JoomSchool → Book Categories (or via the Library admin sidebar).
The category list groups books by subject, language, age range or whatever organising principle suits your school.
To create a category:
- Click New.
- Fill in Category Name (required, e.g. "Science", "Fiction", "Reference").
- Click Save & Close.
Book Racks
Components → JoomSchool → Book Racks.
A rack represents a physical shelf or cabinet in the library. Tracking the rack number alongside each book makes shelving and stocktaking much faster.
To create a rack:
- Click New.
- Fill in:
| Field | Description | Required |
|---|---|---|
| Rack Name | Free-text name (e.g. "Fiction A-M", "Reference north wall"). | Yes |
| Rack Number | Numeric identifier — usually a simple integer printed on a label on the rack itself. | Yes |
- Click Save & Close.
Books
Components → JoomSchool → Books. The catalogue.
To add a book:
- Click New.
- Fill in:
| Field | Description | Required |
|---|---|---|
| ISBN | Book's ISBN. Used as the cataloguing key. | Yes |
| Book Category | Which category it belongs to. | Yes |
| Rack Number | Which physical rack. | Yes |
| Book Name | The book's title. | Yes |
| Writer Name | The author. | Yes |
| Price | Purchase price (used in inventory valuations). | No |
| Quantity | Number of copies in stock. | Yes |
| Description | Free-text summary or notes. | No |
| Cover Photo | Upload a cover image. | No |
- Click Save & Close.
Book Members
Components → JoomSchool → Book Members. A roster of which students are library members for a given academic year.
To add a member:
- Click New.
- Pick:
| Field | Description | Required |
|---|---|---|
| Class | The student's class. | Yes |
| Section | The student's section. | Yes |
| Division | The student's division. | Yes |
| Year | Academic year for which the membership is valid. | Yes |
- The roll number is matched against the student record automatically (the form references the student via a hidden ID).
- Click Save & Close.
You can edit a membership when a student moves up a class or starts a new academic year.
Library — Book Issues
Components → JoomSchool → Library. The actual checkout register.
To issue a book:
- Click New.
- Fill in:
| Field | Description | Required |
|---|---|---|
| Class | The student's class. | Yes |
| Roll | The student's roll number. The student is found via the class + roll combination. | Yes |
| Issue Date | The date the book was checked out. | Yes |
| Period (Days) | How long the student may keep the book (e.g. 14 days). | Yes |
| Return Date | The due date. Usually = Issue Date + Period. | Yes |
| Book Category | Filter to narrow down the book picker. | Yes |
| Book | The specific book being issued. | Yes |
| Accept Book | Yes/No toggle — Yes once the librarian has confirmed handover. | No |
- Click Save & Close.
Quantity in the Books list is decremented automatically when a book is issued and incremented when it is returned (you mark the return by editing the issue and changing Accept Book to Yes once it comes back, or by trashing the issue if the book was returned cleanly and you don't need a record).
Returning a book
JoomSchool keeps things simple: there is no separate "Return" action. Either:
- Edit the issue record and update Accept Book plus an optional comment to indicate the return.
- Trash the issue record if you don't need a return-history audit trail. The book's quantity returns to the pool.
Schools that need a full audit trail should keep all issues and use status changes; schools that just need to know what's currently checked out can prune trashed records periodically.
Transport
Transport Routes
Components → JoomSchool → Transports. The full list of routes the school operates.
To add a route:
- Click New.
- Fill in:
| Field | Description | Required |
|---|---|---|
| Route Name | Human-readable name (e.g. "North Route", "Bus 7"). | Yes |
| Number of Vehicle | The internal fleet number for the vehicle. | Yes |
| Vehicle Registration No | The vehicle's road registration plate. | Yes |
| Driver Name | The driver's full name. | Yes |
| Driver Contact No | Driver's mobile or contact number. | Yes |
| Route Fare | Per-student fare for this route. Used as the default amount when assigning students. | Yes |
| Driver Photo | Optional photo of the driver. | No |
- Click Save & Close.
Assigning a student to a route
Open the student record (Components → JoomSchool → Students → click a student). On the Academic Info tab, the Transport field is a dropdown of every published route. Pick the route, save the student.
Removing a student from a route is the same: edit the student, set Transport to "Select Transport" (the empty option), save.
Updating route information
Click any route in the list view to re-open the form. Editing a route's name, fare or driver applies to every student linked to it — there is no per-student override. If your school charges different fares for different students on the same route, create separate routes.
Tips & Best Practices
- Catalogue books with ISBNs even if your school has a small library — it makes future cataloguing software migrations much easier.
- Print rack labels (just numbered tags) and stick them on the physical shelves so anyone in the library can find a book from its rack number.
- Reset memberships annually. When you promote students to the next class, also re-issue Book Member records for the new academic year. Otherwise the membership status of last year's students lingers.
- Photograph drivers. A driver photo on the route record is useful when parents call asking who picks up their child. Most schools snap a quick mobile photo on day one.
- Use distinct route names. Avoid "Bus 1, 2, 3..." — those are identical at a glance. Prefer "North Route", "South Route", "Industrial Park Route".
- Update the fare before the new academic year, so promotion picks up the new price.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Book Issue form's Book dropdown is empty. | No published books exist in the chosen Category, or the Category dropdown is blank. | Pick a Category; check the Books list view for published books in that category. |
| Quantity goes negative on a book. | More copies were issued than the catalogue had. | Adjust the book's Quantity manually to match physical stock. |
| Issue record doesn't show in the parent's view. | The frontend doesn't currently expose library checkouts to parents. | Library is admin-only; share information manually if needed. |
| Transport dropdown on the student form is empty. | All routes are unpublished. | Publish at least one route. |
| Student shows on a route but the fare is wrong on their invoice. | The route fare changed after the invoice was created — the invoice keeps the original amount. | Edit the invoice's pay type / total to the new amount, or re-issue. |
| Driver photo doesn't appear after upload. | File too large or wrong format. | Check Options → Attachments for size limits; re-upload as JPG/PNG. |
| Student returned a book but the quantity stayed the same. | The issue record wasn't trashed and no return action was taken. | Either trash the issue or edit it and use a workflow your team agrees on. |