Catalog ›Education & public sector ›Associations & volunteering
Volunteer shift and hours log
A simple log to track the shifts of the people helping out at your association: who, when, how many hours and for what activity. Useful for reporting hours to members, to funders, or just to see who has stepped up in recent months.
What it records
- Volunteer's name
- Hours worked (e.g. 3)
- Activity (e.g. meal distribution)
How it works
This is a Reactive app: a plain text document that your browser turns into a working app — forms, live data, tables, statistics and even charts, with nothing to install or configure.
- Use it right away. Hit “Use this app”: it opens right in your browser, ready to go, with data saved only on your device.
- Your data stays yours. Everything is stored locally on your device, kept separate for each app: no account, no server, nothing to set up.
- Make it your own. The text below is the entire app: copy it, tweak fields, views and words, and your changes become interactive instantly.
- Share it as a file. An app is a simple file: save it, export it or share it with a link; and with encrypted collaboration several people edit the same data in real time.
The app’s source
# 🤝 Volunteer shift log
A simple log to track the shifts of the people helping out at your
association: who, when, how many hours and for what activity. Useful for
reporting hours to members, to funders, or just to see who has stepped up in
recent months.
## Log a shift
::::form{path="shifts" id="ft"}
::input{form="ft" field="volunteer" placeholder="Volunteer's name" required="true"}
::input{form="ft" field="date" type="date" required="true" legend="Shift date"}
::input{form="ft" field="hours" type="number" placeholder="Hours worked (e.g. 3)" required="true"}
::input{form="ft" field="activity" placeholder="Activity (e.g. meal distribution)"}
::add-form{form="ft" path="shifts" label="Log shift"}
::::
:::sort{path="shifts" field="date" order="desc" as="table" headers="Date,Volunteer,Hours,Activity" deletable="true" editform="ft"}
{date} | **{volunteer}** | {hours} | {activity}
:::
## Total hours
Volunteer hours logged so far: **:sum[hourstot]{path="shifts" field="hours"}** over :count[n]{path="shifts"} shifts.
Keep it updated after every shift: the running total is ready any time for a
report to members, a grant application, or simply to thank whoever has given
the association the most time.