For developers

OSVolunteer is one Cloudflare Worker in plain JavaScript with server-rendered HTML, backed by Cloudflare D1, and built on OSCivic core. The source, tests and install steps are in the repository.

Open data on every install

FeedAddressWhat's in it
Shifts/shifts.jsonShifts still to come, with places left right now; ?program= for one program, ?for= a partner's host
Programs/programs.jsonPrograms, with their partner pages and their shifts' feed
Calendar/shifts.icsA calendar of the shifts
News/feed.xmlRSS of the shifts
Records/v1/records.jsonEvery published record in the OSCivic shared envelope, with its provenance and a Merkle root

Every feed carries its provenance

Pages and feeds are read from OSCivic core's keeper, not from the tables coordinators edit. A shift's date, times, place, address, places needed, minimum age and cancellation are relied-upon facts: a change to one needs a reason, published with it. Approved hours are kept as personal records under a pseudonym, never in a feed.

From another OS app

An app shows "Volunteer for this" from its own pages by reading /shifts.json?for= with its own host, for example https://halcyon.osvolunteer.com/shifts.json?for=halcyon.osfairground.com. A site that wants sign-ups inside its own install can use core's shifts module directly.

How it's checked

Every push runs the unit tests, then a walk-through of what volunteers and coordinators do, with axe-core WCAG 2.1 AA checks at desktop and phone width. After each deploy and every night, the walk-through runs against the demo; a failure opens an issue.

Contributing

Pull requests are welcome. Database migrations only add; code more than one OSCivic project needs goes into OSCivic core first; every bug fix adds a test. See CONTRIBUTING.md.