StepReady: tender proposal
DSS2026/RFQ/0210
1. Cover
| Title | StepReady: a step-by-step work-task application for students at the packing workstation |
|---|---|
| Tender reference | DSS2026/RFQ/0210 (ASPN ITQ Brief) |
| Submitted to | APSN Delta Senior School (DSS) |
| Supplier | The Support Station Private Limited |
| Supplier contact name | Huang Zhongying (Zave), Managing Director |
| Supplier contact email and phone | zave@skubbs.com · +65 9783 7452 |
| Supplier registration (UEN) | 201406326K |
| Registered address | 114 Lavender Street, #10-72, Singapore 338729 |
| Date | 20 October 2026 |
| Version | 1.0 |
Prices are given separately in the quotation. This document contains none.
2. Executive summary
The brief asks for a simple web application on a 10–11 inch tablet at a packing workstation, so that students can start, continue, check, complete and hand over tasks with fewer reminders from an adult, while still asking for clarification, requesting help and reporting when they finish.
StepReady does this. It shows one photo and one short instruction at a time, from TODAY to NEXT. Staff create, edit, copy and remove tasks themselves behind a PIN, with no programming. Everything stays on the tablet, and it works offline after the first load. A working prototype is live now, so DSS staff can try it before deciding.
3. Our understanding of the requirement
The brief states its purpose as a simple web application for "a 10–11-inch tablet mounted at a packing workstation". The learner moves through a fixed six-stage sequence, one screen at a time:
TODAY → NOW → HOW → CHECK → DONE → NEXT
- Today shows the work planned for the day.
- Now shows the task to start.
- How presents one instruction at a time using a short sentence and a photograph.
- Check provides a short checklist for checking the completed work.
- Done reminds the learner to report that the task is complete.
- Next shows the next scheduled task.
The interface calls for large buttons, clear photographs, short instructions and minimal distractions. Employers and trainers must be able to create and update tasks without programming knowledge. The worked example is "Packing One Parcel" (five steps, four checks, a reporting phrase).
We read the aim as reducing adult prompts, not removing the adult. The student should act alone where they can, and ask for help easily where they cannot.
4. Proposed solution
4.1 The six stages
| Stage | What the student sees | Built in |
|---|---|---|
| TODAY | The day's tasks in order; the current task is highlighted | src/screens/TodayScreen.tsx |
| NOW | The current task name, a "What you need" list, and a large START button | src/screens/NowScreen.tsx |
| HOW | One step: photo, short instruction, "Step N of M", NEXT STEP, BACK, I NEED HELP | src/screens/HowScreen.tsx |
| CHECK | A tick list; DONE stays unavailable until every item is ticked | src/screens/CheckScreen.tsx |
| DONE | "Please report to staff" with the task's handover phrase | src/screens/DoneScreen.tsx |
| NEXT | The next scheduled task | src/screens/NextScreen.tsx |
A read-only stage bar on every student screen shows where the student is (src/components/StudentLayout.tsx). The student sequence is a state machine in src/state/appState.ts, so there is nothing to mistype or bookmark.
4.2 Independence and help-seeking supports
Each support is tied to one verb in the brief's purpose and replaces a specific adult prompt. A support that did not map to a verb was not built. None adds a second main action or blocks the sequence, except the staff check, which staff switch on per task.
| Purpose verb | Support | Adult prompt it replaces | Built in |
|---|---|---|---|
| Start | "What you need" list on NOW. Ticking is optional and never blocks START | "Have you got everything?" | src/screens/NowScreen.tsx |
| Start | TODAY highlights the next task | "What are you doing next?" | src/screens/TodayScreen.tsx |
| Continue | One step per screen, with Step N of M and encouragement after each step | "Keep going" | src/screens/HowScreen.tsx, src/components/FeedbackLayer.tsx |
| Continue | BREAK and CONTINUE return the student to the same step | "Where were you up to?" | src/components/StudentTools.tsx, src/state/appState.ts |
| Continue | A gentle nudge if a step stalls: a button pulse and a short card, at most twice per step, default 120 seconds, staff can turn it off | "Are you stuck?" | src/components/useIdleNudge.ts, src/lib/feedback.ts |
| Check | A checklist the student ticks; DONE stays grey until all are ticked | "Did you check it?" | src/screens/CheckScreen.tsx |
| Ask for clarification | Tap to enlarge the step photo; BACK re-reads the previous step; review the steps from CHECK | "Show me again" | src/screens/HowScreen.tsx, src/screens/CheckScreen.tsx |
| Request help | I NEED HELP shows the task's help phrases without leaving the step | A raised hand or a spoken request | src/screens/HowScreen.tsx |
| Request help | SHOW MY SUPERVISOR opens a full-screen card the student holds up | Calling across the workshop | src/components/StudentTools.tsx |
| Complete and hand over | DONE shows the exact words to say to staff; read-aloud is optional | "What do you say now?" | src/screens/DoneScreen.tsx |
| Complete and hand over | Optional staff check: staff press and hold for two seconds to confirm before the next task. Off unless staff turn it on for that task | "Come and check this" | src/screens/DoneScreen.tsx, src/screens/DashboardScreen.tsx |
Calm chimes and short spoken encouragement are on by default and staff can switch each off (src/components/FeedbackSettingsPanel.tsx, src/lib/sound.ts, src/content/encouragement.ts). Every spoken phrase also appears as a short text message. There are no points, badges, streaks, confetti or countdown timers.
Help and completion signals are shown on the tablet only. Nothing is sent to another device and nothing is logged.
4.3 The seven staff functions
Staff open a PIN-protected section from TODAY (src/screens/PinScreen.tsx). A wrong PIN shakes and clears. No code or files are involved.
| # | Staff function | How | Built in |
|---|---|---|---|
| 1 | Create and edit task templates, with steps, photographs, checklists, help phrases and completion phrases | Form editor; photos from camera or gallery, resized on the device | src/screens/EditScreen.tsx, src/components/StepPhotoField.tsx, src/lib/resizeImage.ts |
| 2 | Copy a template | Copy makes "<name> (copy)" with everything, and opens the editor on it | src/screens/DashboardScreen.tsx, copyTask in src/db/repo.ts |
| 3 | Remove a template | Removing archives it and takes it off the schedule. There is no hard delete | archiveTask in src/db/repo.ts |
| 4 | Arrange the tasks for the day | Add, remove and reorder with up and down buttons | src/screens/DashboardScreen.tsx |
| 5 | Preview what the learner will see | Preview mode with an orange banner; tap the banner to exit | src/screens/PreviewScreen.tsx |
| 6 | Reset or resume an unfinished task | Resume returns the student to their step; Reset starts the task again | src/screens/DashboardScreen.tsx |
| 7 | Back up and restore | Export JSON downloads stepready-backup-YYYY-MM-DD.json; Restore loads it | src/components/BackupRestore.tsx, exportAll and importAll in src/db/repo.ts |
Staff also control sound, encouragement, read-aloud and nudge settings (src/components/SoundSettings.tsx, src/components/FeedbackSettingsPanel.tsx), and the staff check and materials list per task.
4.4 Included in delivery (not yet in the prototype)
The items below are not live today. We will build them and test them as part of delivery.
- NOW / NEXT / LATER labels on TODAY, as in the page-2 example.
- STAFF lock at the top right, as in the page-2 example. In the prototype the STAFF link is at the bottom left of TODAY.
- Android tablet test project. The app is built for Android Chrome. The automated suite currently runs WebKit iPad viewports. We will add a Chromium Android-tablet project.
- The trainer's real tasks and photographs, replacing the demonstration content.
- Rehearsal on the school's own tablets. Sign-off on a physical iPad is prepared (
docs/IPAD_SIGNOFF.md) but has not been run.
5. Compliance table
Status: Live means it exists in the prototype now and the evidence is named. Included in delivery means we will build it, as listed in 4.4. Live URL: https://stepready.skubbsmate.com. Test files are in e2e/ and src/.
| Ref | Brief requirement | How StepReady meets it | Status | Evidence |
|---|---|---|---|---|
| ITQ-01 | A simple web application for a 10–11-inch tablet mounted at a packing workstation | Fullscreen landscape PWA; designed and tested at 1180×820 and 1194×834 | Live | vite.config.ts, playwright.config.ts, e2e/demo.spec.ts "offline" (runs at both viewports) |
| ITQ-02 | Android (page 3) | Installable PWA that runs in Android Chrome; automated test on a Chromium Android-tablet viewport to be added | Included in delivery | 4.4; rehearsal on Android tablet |
| ITQ-03 | The sequence TODAY → NOW → HOW → CHECK → DONE → NEXT | Six screens driven by a state machine | Live | src/state/appState.ts, src/ScreenSwitcher.tsx, src/state/appState.test.ts "walks today→now→how→check→done→next", e2e/demo.spec.ts "offline" (TODAY to DONE) |
| ITQ-04 | TODAY: shows the work planned for the day | Ordered list of today's tasks, current task highlighted | Live | TodayScreen.tsx, src/screens/studentFlow.test.tsx, e2e/demo.spec.ts "offline" |
| ITQ-05 | NOW: shows the task to start | Task name and large START button | Live | NowScreen.tsx, studentFlow.test.tsx, e2e/brief.spec.ts "NOW lists the 5 materials" |
| ITQ-06 | HOW: one instruction at a time, short sentence and photograph | One step per screen with photo, instruction limited to two lines | Live | HowScreen.tsx, src/screens/howScreen.test.tsx |
| ITQ-07 | CHECK: a short checklist for the completed work | Tick list; DONE unavailable until all ticked | Live | CheckScreen.tsx, src/screens/finishFlow.test.tsx "gates DONE on all checks", e2e/demo.spec.ts "offline" |
| ITQ-08 | DONE: reminds the learner to report completion | "Please report to staff" and the handover phrase | Live | DoneScreen.tsx, src/screens/finishFlow.test.tsx |
| ITQ-09 | NEXT: shows the next scheduled task | Next task named; last-task message when none remain | Live | NextScreen.tsx, finishFlow.test.tsx |
| ITQ-10 | Large buttons | Primary buttons at least 64 px high | Live | PrimaryButton.tsx, howScreen.test.tsx "all buttons 64px tall", e2e/brief.spec.ts "NOW lists the 5 materials in 64 px rows" |
| ITQ-11 | Clear photographs | Singapore-setting photos for all three seed tasks, generated and reviewed by a person, bundled. Replaced by the trainer's own photos in delivery | Live (demonstration photos) | src/seed/photos/, docs/parcel-contact-sheet.jpg |
| ITQ-12 | Short instructions | Two-line limit in the student view and in the editor | Live | HowScreen.tsx, EditScreen.tsx |
| ITQ-13 | Minimal distractions | No navigation chrome; back swipe, long-press and pull-to-refresh blocked | Live | StudentLayout.tsx, src/state/useKioskProtection.test.ts |
| ITQ-14 | Page 2: six-stage indicator | Read-only stage bar on every student screen | Live | src/components/StudentLayout.tsx (StageRail), docs/screenshots/03-how.png |
| ITQ-15 | Page 2: BACK button | BACK on step 1 returns to NOW; elsewhere to the previous step; never records completion | Live | HowScreen.tsx, howScreen.test.tsx "BACK goes to the previous step", appState.test.ts "BACK steps back" |
| ITQ-16 | Page 2: NEXT STEP button | Advances one step | Live | HowScreen.tsx, howScreen.test.tsx "advances steps", e2e/demo.spec.ts "offline" |
| ITQ-17 | Page 2: I NEED HELP button | Opens help phrases without leaving the step | Live | HowScreen.tsx, howScreen.test.tsx "I NEED HELP opens overlay", e2e/brief.spec.ts "create a task" (opens help in Preview) |
| ITQ-18 | Page 2: STAFF lock at top right | STAFF link exists at bottom left of TODAY; moved to a subdued lock at top right | Included in delivery | 4.4; TodayScreen.tsx |
| ITQ-19 | Page 2: "Step N of M" | Shown on every HOW step | Live | HowScreen.tsx, e2e/demo.spec.ts "offline", e2e/brief.spec.ts "resumes where it was left" |
| ITQ-20 | Page 2: TODAY list with NOW / NEXT / LATER labels | Highlighted current task today; labels added | Included in delivery | 4.4 |
| ITQ-21 | Page 3, staff setup: staff select the day's tasks and place them in order, then return to learner mode | Add, remove, reorder; Exit Staff View | Live | DashboardScreen.tsx, e2e/brief.spec.ts "arrange the day" |
| ITQ-22 | Page 3, TODAY: "Pack parcels / Sort supplies / Clean work area"; highlights the current task | Seed schedule of those three tasks in that order | Live | src/db/seed.ts, src/db/repo.test.ts |
| ITQ-23 | Page 3, NOW: "Current task: Pack one parcel. A large START button is shown." | As described | Live | NowScreen.tsx, studentFlow.test.tsx "START TASK goes to NOW" |
| ITQ-24 | Page 3, HOW step 1: "Take the assigned item, box and packing materials." with a photograph of the required materials | Exact text and photo | Live | seed.ts, src/seed/photos/ |
| ITQ-25 | Page 3, HOW step 2: "Check the item and quantity against the packing instruction." | Exact text | Live | seed.ts, repo.test.ts |
| ITQ-26 | Page 3, HOW step 3: "Place the item in the box. Add the required protective material." with a photograph of the expected placement | Exact text and photo | Live | seed.ts, src/seed/photos/ |
| ITQ-27 | Page 3, HOW step 4: "Close and seal the box." | Exact text | Live | seed.ts |
| ITQ-28 | Page 3, HOW step 5: "Attach the supplied parcel label in the correct position." | Exact text | Live | seed.ts |
| ITQ-29 | Page 3, HOW: the student presses NEXT STEP through steps 1–5 | Five steps. The page-2 mock-up shows "Step 2 of 4"; we follow the page-3 table | Live | e2e/demo.spec.ts "offline" (Step 1 of 5, four NEXT STEP presses) |
| ITQ-30 | Page 3, CHECK: "Correct item and quantity", "Item is protected", "Box is sealed", "Correct label is attached" | Exact four items | Live | seed.ts, repo.test.ts |
| ITQ-31 | Page 3, CHECK: the student marks each item only after checking the parcel | DONE unavailable until all four are ticked | Live | CheckScreen.tsx, finishFlow.test.tsx "gates DONE on all checks" |
| ITQ-32 | Page 3, DONE: "Packing completed. Please report to staff." Suggested phrase: "I have finished packing this parcel. Please check." | Phrase shown exactly; other tasks use their own phrase | Live | DoneScreen.tsx, seed.ts, finishFlow.test.tsx |
| ITQ-33 | Page 3, NEXT: the next scheduled task appears, for example "Sort supplies" | As described | Live | NextScreen.tsx, finishFlow.test.tsx "then next task" |
| ITQ-34 | A PIN-protected staff section | PIN screen; demo PIN 1234 | Live | PinScreen.tsx, pinScreen.test.tsx, e2e/brief.spec.ts "PIN protects" |
| ITQ-35 | Staff function 1: create task templates | + New Task | Live | EditScreen.tsx, e2e/brief.spec.ts "create a task" |
| ITQ-36 | Staff function 1: edit task templates | Editor | Live | EditScreen.tsx, editScreen.test.tsx |
| ITQ-37 | Staff function 2: copy task templates | Copy button; editor opens on the copy | Live | DashboardScreen.tsx, repo.test.ts copyTask, dashboardScreen.test.tsx "copies a template" |
| ITQ-38 | Staff function 3: remove task templates | Archive with confirmation | Live | dashboardScreen.test.tsx "archives with confirmation", e2e/backup.spec.ts (archives a template) |
| ITQ-39 | Add task steps, photographs and checklists | Step list, photo field, checklist | Live | EditScreen.tsx, StepPhotoField.tsx, resizeImage.test.ts |
| ITQ-40 | Staff function 4: arrange the tasks for the day | Up and down buttons | Live | DashboardScreen.tsx, e2e/brief.spec.ts "arrange the day" |
| ITQ-41 | Add help phrases | Help phrase list per task | Live | EditScreen.tsx, editScreen.test.tsx |
| ITQ-42 | Add completion-reporting phrases | Handover phrase per task; fallback "I have finished this task. Please check." | Live | EditScreen.tsx, DoneScreen.tsx |
| ITQ-43 | Staff function 5: preview what the learner will see | Preview mode | Live | PreviewScreen.tsx, previewScreen.test.tsx |
| ITQ-44 | Staff function 6: reset or resume an unfinished task | Resume and Reset on the dashboard | Live | DashboardScreen.tsx, dashboardScreen.test.tsx "Resume returns to that step", e2e/brief.spec.ts "Reset sends an unfinished task back to the start" |
| ITQ-45 | Staff function 7: back up and restore the task information | Export JSON and Restore | Live | BackupRestore.tsx, e2e/backup.spec.ts, backupRestore.test.tsx |
| ITQ-46 | Staff can update the application without programming knowledge | All changes by forms and buttons | Live | e2e/brief.spec.ts "create a task", "arrange the day", "Reset sends an unfinished task back" |
| ITQ-47 | Purpose: start, continue, check, complete and hand over tasks with fewer adult reminders; ask for clarification, request help, report completion | Supports in 4.2, one per verb | Live | NowScreen.tsx, StudentTools.tsx, useIdleNudge.ts, DoneScreen.tsx; nowScreen.test.tsx, e2e/brief.spec.ts "NOW lists the 5 materials" |
6. Technical approach
- Progressive Web App. React 18, Vite and TypeScript, built to static files. It installs to the home screen and opens fullscreen.
- Offline after the first load. A service worker precaches the app, photos and voice clips (vite-plugin-pwa).
e2e/demo.spec.tsloads once, goes offline, reloads and completes a task. - On-device storage. Task templates, photos, schedule and progress live in the tablet's IndexedDB (Dexie). Photos are resized to 1200 px at most before storage.
- No accounts, no server, no tracking. There is no backend, no API call and no analytics. Help requests and completion times are not recorded anywhere.
- Devices. A 10–11 inch tablet in landscape: iPad in Safari, and Android tablet in Chrome. See 4.4 for the Android test project.
- Personal data. No personal data leaves the tablet, which keeps PDPA exposure small. The app holds no student names or accounts. We have not made a formal PDPA assessment for the school.
- Sound and speech. Chimes are produced on the device. Encouragement uses short pre-recorded clips bundled with the app. Read-aloud of staff-written text uses the tablet's own voice.
- Content generation. Seed photos and clips were generated at build time with Cloudflare Workers AI and reviewed by a person. The running app never calls an AI service.
- Hosting. Static files on Cloudflare Pages over HTTPS. Backups are a JSON file staff keep.
7. Live prototype
| What | Where |
|---|---|
| The working app | https://stepready.skubbsmate.com |
| Guided demo, with the app in an iPad frame | https://stepready.skubbsmate.com/demo/ |
| Staff PIN | 1234 |
Open the app on an iPad in Safari, let it load once, then use Share → Add to Home Screen. To restore the demonstration content, clear the site data or re-add the icon. The demo page's Restart button clears this browser's StepReady data, so use a browser that holds no real trial data. A ten-step demo script is in README.md.
8. Delivery plan and timeline
Weeks run from the award date.
| Weeks | Phase | Output |
|---|---|---|
| 1 | Setup | Kick-off with the trainer. Choose the first real tasks. Collect or take the photographs. Confirm which tablets are used |
| 2–3 | Configuration | Tasks entered with real photos and phrases. NOW / NEXT / LATER labels and top-right STAFF lock added. Support settings agreed. Android tablet test project added |
| 4 | On-site rehearsal | Run the full sequence on the school's tablets, in Safari or Chrome, at the workstation. Log and fix defects |
| 5 | Staff training | Hands-on sessions for trainers: create, copy, arrange, preview, reset and back up |
| 6 | Handover | Final build zip with README, hosted URL, backup of the configured tasks, and sign-off |
The timeline assumes the school supplies tablets, trainer time and photo access in weeks 1–2.
9. Testing and acceptance
- Automated tests. Unit and component tests (Vitest) sit beside the code in
src/and cover the learner sequence, BACK, help, the CHECK gate, copy, archive, reset and resume, and backup. Playwright end-to-end tests ine2e/currently pass for the PIN, creating and previewing a task, arranging the day, reset, the NOW materials list, encouragement settings, backup and restore, and the offline run at both iPad viewports. The remaining end-to-end specs (the full demo script, BACK on step 1, template copy, and the 64 px screen audit) are being brought in line with the current build and will all pass before delivery. - Traceability.
docs/ITQ_COMPLIANCE.mdmaps each requirement to code and tests. We will keep it current, and add the purpose statement and the new items in 4.4. - Real-tablet sign-off. A written checklist (
docs/IPAD_SIGNOFF.md) is run on a physical tablet at rehearsal, covering the demo script, offline use, sounds and read-aloud. The result is recorded and given to the school. - Acceptance. The school accepts when the rehearsal checklist passes on its tablet, the trainer has created and previewed a task of their own, and a backup restores correctly.
10. Training, handover and support
- Training. One hands-on session for trainers (about 90 minutes), using their own task. A one-page quick guide for staff covers the seven functions.
- Handover pack. The static build as
stepready-prototype.zip, a README, the hosted URL, the backup file of the configured tasks, and the test and sign-off records. - Support. The supplier contact named in section 1 answers questions by email during the delivery period. Fixes to defects found against this proposal are made at no extra charge. Ongoing support terms are in the quotation.
- Updates. When a new version is deployed, a tablet picks it up on its next online load. Staff should take a backup before any update.
11. Assumptions, limits and exclusions
- No alerts to other devices. The help card and the handover phrase appear on the tablet only. Staff are not notified remotely.
- No cloud sync, no multiple students. Each tablet holds its own data for one student's flow. Data is moved between tablets by Export JSON and Restore.
- Fixed staff PIN. The PIN is 1234 in this version. There are no staff accounts. It deters casual access and is not a security control.
- Device lock. A web app cannot lock the whole tablet. We recommend iPadOS Guided Access (or Android screen pinning) to keep a student in the app.
- Browser storage. iOS may clear stored data for sites left unused for a long time. Staff should take regular backups.
- Photos. The demonstration photos are AI-generated to look like a Singapore workstation. Real photos from the trainer are used in delivery.
- Voice. Read-aloud uses the tablet's own voice, so it sounds different on iPad and Android.
- Out of scope. Real authentication, analytics, drag-and-drop ordering, more than one language, video, and hard deletion of templates (Remove archives).
- Assumptions. The school supplies the tablets, a stable first-load network connection, and trainer time for the photos and task content.
12. Later-phase options
These are optional, separate from this proposal, and not priced here.
- Cloud sync so several tablets share task templates.
- Staff accounts to replace the fixed PIN.
- Multiple students, with each student's own progress.
13. Company profile and track record
StepReady is submitted by The Support Station Private Limited, a Singapore-based software team. We are not a special-education provider. We read this specification, understood why existing task-prompting tools fail it, and built a solution from the brief.
| Company | The Support Station Private Limited |
|---|---|
| UEN | 201406326K |
| Registered address | 114 Lavender Street, #10-72, Singapore 338729 |
| Year established | 2014 |
| Entity type | Private Limited Company |
| Telephone | +65 6717 6668 |
| zave@skubbs.com | |
| GeBIZ registration | Registered supplier, Financial Grade S7 (tendering capacity S$5,000,000), valid to 02 June 2027 |
| GeBIZ supply head | EPU/CMP/10 — Computer Related Hardware, Software and Services |
| Authorised signatory | Huang Zhongying (Managing Director) |
What we do. Since 2014 we have delivered custom web and mobile applications, user-experience design and hosted platforms for government-linked organisations, national membership associations, healthcare providers and social-service clients. Our core capability is building applications that non-technical users administer themselves — content management, task configuration and day-to-day setup without a developer. That is exactly what this tender needs: a staff admin panel a vocational trainer can run without programming knowledge. Our team of roughly 40 people — delivery, UI/UX, engineering, QA, DevOps and account management — is based in Singapore.
Why this maps to the brief.
- Accessible UI/UX. Our designers work to WCAG 2.1 AA in production. For StepReady, accessibility is the primary design constraint, not a checklist: large touch targets, high-contrast typography, one action per screen and photos before text.
- Offline-first browser apps. The brief's core requirement — a browser app that runs fully offline on school-managed iPads with no mandatory cloud subscription — is met with a Progressive Web App (React 18, TypeScript, IndexedDB storage, service-worker offline).
- No-code staff administration. We have built content-management interfaces that non-technical operators use daily. The StepReady staff panel (task templates, photo upload, day scheduling, backup/restore) applies the same approach.
- Source-code handover, no lock-in. We routinely hand over complete source, project files and deployment assets at completion. DSS or any appointed third party may maintain or extend the application afterwards, with no licence restriction and no subscription required for continued use.
Security and compliance. PDPA-aligned handling (no student data leaves the device unless staff export it), OWASP ASVS L2-aligned development practice, WCAG 2.1 AA interfaces, and Singapore data residency for any optional cloud components.
Track record — selected relevant projects.
| Client and platform | Period | Why it is relevant here |
|---|---|---|
| HomeTeamNS — OneHome members platform | 2022–present | Web and mobile portal with a staff-facing content-management interface used by non-technical administrators; serves a large, diverse membership. |
| Kiztopia — check-in and visitor management | 2022–present | Tablet app on fixed kiosk stations at venue entrances — directly analogous to a workstation-mounted tablet. |
| SAFRA — KidzAmaze management system | 2025–present | Enterprise platform with staff-facing scheduling and session tools for non-technical venue operators. |
| IHP — members club gamification and loyalty | 2025–present | Step-based engagement with configurable actions and photo verification for non-technical administrators. |
| Automobile Association of Singapore — web and insurance services | 2021–present | Full-stack platform with sustained delivery and ongoing maintenance for a high-profile institutional client. |
| Howden Group / MediHub — employee healthcare app | 2023–present | Mobile application for an organisation with duty-of-care obligations toward its end users. |
We have delivered accessible applications for larger membership bodies than this one. This engagement is smaller in scale and, in our view, more important to get right.
14. Project team
All members below are employees of The Support Station Private Limited and are available for the engagement. No subcontractors are proposed. The Managing Director is the authorised signatory and the primary escalation contact for DSS throughout. If a team member becomes unavailable, we maintain a bench of full-stack developers and designers who can be onboarded without loss of knowledge, since all project assets and the codebase are held in our managed environment.
| Role | Name | Experience |
|---|---|---|
| Project Director | Huang Zhongying (Zave) | 18+ years |
| Solution Architect / DevOps Lead | Low Ee Chiang | 15+ years |
| Project Manager / Scrum Master | Teo Yi Ki | 5+ years |
| Technical Lead / Senior Full-Stack Engineer | Aaron Briones | 14+ years |
| Senior Full-Stack Developer | Aung Khant Zaw | 6+ years |
| UI/UX Designer & Developer | Vea Parale | 3+ years |
| QA Tester | Sumegha Chinigepalli | 2+ years |
Huang Zhongying (Zave) — Project Director. Managing Director of The Support Station since 2014; Certified Scrum Master and designated Data Protection Officer. Accountable for delivery quality, DSS stakeholder engagement and escalation. Has overseen delivery across government-linked, healthcare and social-service clients, including the HomeTeamNS OneHome and SAFRA KidzAmaze platforms.
Low Ee Chiang — Solution Architect / DevOps Lead. Defines the StepReady architecture — offline-first PWA structure, IndexedDB schema, service worker and iPad deployment — and owns the build pipeline and security/PDPA data-handling design. Lead architect across the company's application portfolio; specialises in offline-capable PWAs, CDN/static-site deployment and OWASP-aligned security.
Teo Yi Ki — Project Manager / Scrum Master. Day-to-day project management and the primary point of contact for DSS on scheduling, milestone sign-off and documentation. Coordinates UAT with non-technical client stakeholders: plain-language test scripts, feedback sessions, defect logs tracked to sign-off.
Aaron Briones — Technical Lead / Senior Full-Stack Engineer. Leads the StepReady build — React 18 component architecture, IndexedDB data layer, service-worker offline, the staff admin panel and student workflow logic — and owns code quality and the definition of done. 14+ years full-stack; technical lead on tablet-based kiosk and multi-role platforms.
Aung Khant Zaw — Senior Full-Stack Developer. Implements the student-facing screens (TODAY through NEXT), the HELP overlay, and photo display and navigation; contributes staff-panel features including template forms, day scheduling and backup/restore. Experienced in React 18/TypeScript, IndexedDB and in-browser image handling.
Vea Parale — UI/UX Designer & Developer. Leads the design for all student screens and the staff panel, runs the design review with DSS, and implements the front-end layout to match. Practical WCAG 2.1 AA experience, and design of kiosk-mode, tablet-first interfaces operable without reading instruction text.
Sumegha Chinigepalli — QA Tester. Writes the functional and UAT test plans for DSS staff, runs testing on school-managed iPads (Safari and Chrome) across all screens and admin functions, and manages the defect log through to rectification. Prepares plain-language UAT scripts a vocational trainer can execute without technical knowledge.
Quotation SR-Q-2026-001
Every figure or term marked DRAFT – owner to confirm is a recommended default that the owner has not yet confirmed. The line items are held in src/proposal/quote.json, which the proposal page and the e2e check use, so the numbers below and on the page come from one set.
Header
| Quotation number | SR-Q-2026-001 |
|---|---|
| Date | 20 October 2026 |
| Validity | 30 days from the date (to 19 November 2026). DRAFT – owner to confirm |
| Client | APSN Delta Senior School (DSS) |
| Tender reference | DSS2026/RFQ/0210 (ASPN ITQ Brief) |
| Currency | Singapore dollars (SGD) |
| Supplier | The Support Station Private Limited |
| UEN | 201406326K |
| GST registration | GST-registered, number [TBC]. DRAFT – owner to confirm. If the supplier is not registered, delete the GST line and the grand total equals the subtotal |
| Contact | Huang Zhongying (Zave), Managing Director · zave@skubbs.com · +65 9783 7452 |
<!--QUOTE-->
Payment milestones
DRAFT – owner to confirm. Invoices are payable within 30 days.
| # | Milestone | % | Amount before GST (S$) | GST (S$) | Invoice (S$) |
|---|---|---|---|---|---|
| 1 | On acceptance of the quotation | 50% | 3,000.00 | 270.00 | 3,270.00 |
| 2 | On sign-off at handover | 50% | 3,000.00 | 270.00 | 3,270.00 |
| Total | 100% | 6,000.00 | 540.00 | 6,540.00 |
Timeline
Weeks run from the award date. The full plan is in docs/PROPOSAL.md section 8 (Delivery plan and timeline). DRAFT – owner to confirm.
| Weeks | Phase |
|---|---|
| 1 | Setup |
| 2–3 | Configuration |
| 4 | On-site rehearsal |
| 5 | Staff training |
| 6 | Handover and sign-off (second payment milestone) |
The timeline assumes the school supplies tablets, trainer time and photo access in weeks 1–2.
Inclusions
- The student app and the staff panel described in
docs/PROPOSAL.mdsections 4 and 5, with the supports in 4.2. - Setting up the trainer's real tasks and photographs, plus up to two rounds of changes to task wording and photos. DRAFT – owner to confirm
- The deliverables: a static build zipped as
stepready-prototype.zipwith a README, and the live HTTPS deployment for trial. - One hands-on training session (about 90 minutes) and a one-page staff quick guide.
- Automated tests, the requirement-to-test trace, and sign-off on a real tablet.
- Fixes to defects found against this proposal during the warranty period.
Exclusions
- Tablet hardware and mounts.
- MDM, Guided Access or screen-pinning set-up on the school's tablets.
- Cloud sync between tablets.
- Multiple student accounts.
- Staff accounts (the PIN is fixed at 1234).
- Alerts or notifications to other devices.
- Real authentication, analytics, multi-language support and video.
- Tasks beyond the three delivered, unless ordered as an optional item.
Optional items
Not included in the total above.
| Item | Price |
|---|---|
| Hosting, updates and support for 12 months (S$150 a month, billed yearly). Includes hosting, fixes and up to 2 hours of changes each quarter. DRAFT – owner to confirm | S$1,800.00 a year |
| Extra task set-up (per additional task), with steps, photos and checks. DRAFT – owner to confirm | S$150.00 each |
| Phase two: cloud sync and staff accounts | Priced on request |
| Phase two: multiple students | Priced on request |
Terms
All terms are DRAFT – owner to confirm.
- Validity: 30 days from the date of issue.
- Payment: per the milestones above, within 30 days of invoice.
- IP and licence: the supplier keeps ownership of the source code. DSS receives a perpetual, royalty-free licence to host, use and copy the delivered build, and owns its own task content and photographs.
- Warranty: defects against this proposal are fixed at no charge for 90 days after sign-off.
- Support window: email support from the named supplier contact for 90 days after sign-off, in Singapore business hours. Ongoing support is an optional item.
- Data protection: no personal data leaves the tablet, and the supplier does not collect student data.
- GST: amounts exclude GST, which is added at the prevailing rate (9% at the date of this quotation).