GS.Let's talk
← All workAvphania
Live

Avphania

Booking, scheduling and barcode equipment tracking for a church AV & lighting team.

AvphaniaInteractive demo · sample data

What it is

Avphania runs a church AV & lighting team. Anyone can request the team for an event, or rent the equipment on its own, from a public page. Servants sign in to a dashboard showing their week. Every mic, cable and case has a barcode, so the gear for an event can be checked out and back in by scanning.

Why I built it

The team was juggling event requests, rentals and a growing pile of gear through messages and memory. I wanted one place where requests come in with enough notice, nobody books gear that's already out, and a whole case of equipment can be signed out with a single scan instead of item by item.

14 daysminimum notice for public requests
$300cash deposit on equipment rentals
1 scanchecks out a whole nested case

How it works

Rules at the front door

Public requests must be at least 2 weeks out, checked by date on both the form and the server. Equipment-only rentals also need the renter to acknowledge a $300 cash deposit before the form will submit.

Only show gear that's actually free

When someone picks rental dates, the server leaves out anything marked LOST or DAMAGED, anything assigned to a pending or approved event on those dates, and anything in an overlapping rental. The list only shows what can really go out.

Cases inside cases

Items get barcodes like I000105 and containers like C000012. Containers can nest: a mic case holds a mic pouch and a cable bag, which hold the items. Scanning a container walks the whole tree breadth-first and checks out every item inside. Anything already out is skipped and reported, and scanning a single item that's out gives 'Item already checked out'.

Closing the loop

Marking an event COMPLETED returns any check-outs still open for it, so gear doesn't stay 'out' forever because someone forgot to scan it back in.

A dashboard for servants

After signing in, servants see upcoming events for the next 30 days, pending approvals, rentals going out this week, a 7-day strip, quick links and serving tips. Each servant also has a sound level and a lighting level from 0 to 3, with training videos to practise with.

Built with

ReactMaterial UINode.js + ExpressMySQLJWT sign-inbwip-js + PDFKit (CODE128 labels)Camera barcode scanning