Inspiration
Free Geek Toronto (FGT) refurbishes donated computers and sells them at affordable prices. The case puts its situation plainly: the more volunteer hours FGT secures, the more technology it can return to the community. Yet it has one full-time and five part-time staff, a volunteer pool of 30 to 40 people, and an orientation session that runs only twice a month. Its Community Hub has been underused since COVID, and the donations arriving at the door are increasingly irregular and slow to refurbish.
Two things stood out to me. Every Ontario secondary student has to complete 40 community involvement hours to graduate, so a new group of people who need volunteer hours appears every year. And the donations that are hardest to sell are well suited to learning on. A student can practise on a broken 2001 Toyota instead of a Lamborghini.
The part I kept returning to was that FGT's real shortage is staff time, not people. Every new volunteer has to be oriented, scheduled, supervised and tracked. More volunteers without less admin would only make things worse, so the program had to come with a tool.
What it does
Free Geek Repair Lab is a pilot program and a small web app that supports it. The pilot runs at one school with about 15 students, on four Saturday sessions over eight weeks, with a teacher present at every session.
A student first completes a short online orientation and a ten-question quiz (80% to pass, unlimited retries). A student cannot book a seat until the quiz is passed and a teacher has recorded their age confirmation and parental consent. Students then book one of 15 seats on a Saturday session at the Hub. At the door, the teacher scans each student's QR badge to check them in and out. Hours are counted only for time inside the scheduled session. If someone forgets to check out, the entry is closed automatically, flagged, and does not count until the teacher approves it. At the end, the teacher issues a signed hours record with a verification code that the school can check on a public page.
The app also includes a donation sorter. Only FGT staff can mark an item as wiped or as having no storage, and until they do, students cannot see it. A checklist then suggests whether the item should go back to FGT for refurbishment and sale or become a training kit, and a teacher or staff member confirms the choice. Student work reaches FGT's shelves in three countable ways: pre-tested stock, repaired units, and harvested parts. I deliberately did not forecast a dollar value, because I don't know FGT's pricing. The app reports counts and leaves the pricing to FGT.
The pilot is budgeted at $420 for badges, hand tools, safety gear and printing, with FGT staff time capped at about two hours a week. The software costs nothing to run.
How we built it
I built it alone, and I chose tools that FGT staff could keep running without a developer. The server uses plain Node.js with its built-in modules and SQLite (node:sqlite). The front end is vanilla HTML and JavaScript with no build step. QR codes are generated with qrcode-generator and read in the browser with jsQR. The demo runs on a free hosting tier, and a handover document explains how to maintain it.
Before writing code, I wrote down every number and rule in one facts file and checked the app against it. That covered hour calculation, the booking gate, the session cap and the pilot costs. The app and the written proposal draw on the same source, so they don't contradict each other.
Challenges we ran into
Choosing the problem was the hardest part. My first idea tried to solve everything at once, and when I scored it honestly against the rubric it did badly. I narrowed it to a single problem, a shortage of volunteer hours, and cut anything that did not serve it.
FGT already plans to adopt a volunteer management platform, so I had to be clear about what my app adds. I concluded that it adds the consent and orientation gate for minors, a signed record that schools can verify, and the wipe-gated sorter. Where FGT's platform overlaps with the app, FGT's should win. I kept CSV export so the two can run side by side.
Hour tracking was another difficulty. Early versions let a forgotten check-out inflate someone's hours, which would have made the school record worthless. I rewrote the logic so that only time inside the scheduled session counts, and a missing check-out is not credited until a person approves it.
Finally, there are things I could not confirm from where I sit: whether the school will accept the hours, FGT's minimum volunteer age and insurance position, and whether a staff member is in the building on Saturdays. I listed each one as an open item rather than assuming an answer.
Accomplishments that we're proud of
- A working prototype that covers the full path from orientation gate to booking, QR check-in and check-out, verified hours, a signed record and the sorter.
- 55 automated tests, all passing, covering the gates, hour calculation, overlapping sessions, auto-closing, review rules, sorter safety and access control. A separate adversarial review turned up several issues, which I fixed and re-tested.
- Privacy by design. The app stores no date of birth, address, photo, email or phone number for students.
- Honest labelling. Every demo page is marked as demo data and the dashboard never claims a target has been met, so none of the demo numbers can be mistaken for results.
What we learned
A good tool for a small non-profit saves staff time first, and everything else follows from that. Writing out who has to do what, and how long it takes, changed the design more than any feature idea did.
I also learned how much a plan gains from stating its limits. The pilot gives each student at most 16 of their 40 hours, and I say so. A proposal that names its assumptions and open questions is easier to trust than one that hides them.
On the technical side, I learned how much can be done with built-in tools. Leaving out a framework and a build step made the app much easier to hand over.
What's next for Free Geek Repair Lab
The next step is to talk to FGT and a school principal: confirm that the hours count toward the 40, confirm the age and insurance rules, and name a lead teacher. Staff would then review the orientation content, and the pilot would run in February and March 2027, followed by a report from the app's export and a decision on a second school.
If it works, pilot students would get first seats in spring sessions so they can finish their 40 hours, and the students who reach peer mentor level would help run the first bench at the next school. Later ideas, outside this pilot, include school laptop-fleet donations, paid field trips to the Hub, and a "sponsor a repair bench" option for businesses.
Built With
- css3
- html5
- javascript
- jsqr
- netlify
- node.js
- qrcode-generator
- render
- sqlite
Log in or sign up for Devpost to join the conversation.