How absentdsaga/tally-buildersgiving works
Tally is a volunteer-hours and safety-reporting app for small nonprofits. Volunteers submit a spoken or typed shift update; the server transcribes and parses it, checks for duplicates, and records hours and concerns for staff review. Separate shift-host features support event check-in, task assignment, messaging, and questions. Staff review and approve hours, handle concerns, and access reports and proof/letter views. The graph follows documented routes and source-index references; some unsampled subsystems are connected only where the README documents their behavior.
Main entry points: update.ts Update processing · database.ts Hours and concerns · app.js Volunteer app · staffdata.ts Staff data
Components 28
Volunteer experience
- Volunteer app
public/app.js
Shift host
- Event and check-in
src/event.ts - Today and check-in API
src/today.ts - Task board
public/tasks.js - Task API
src/taskapi.ts - Task assignments
src/tasks.ts - Shift chat
public/chat.js - Message API
src/messageapi.ts - Message threads
src/messages.ts - Shift questions
public/ask.js - Answer questions
src/ask.ts - Volunteer reports
public/report.js
Server workflows
- Update route
src/index.ts - Update processing
src/update.ts - Audio transcription
src/speech.ts - AI extraction
src/ai.ts - Fallback parser
src/fallback.ts - Spoken responses
src/speak.ts
Records and reporting
- Hours and concerns
src/database.ts - Report handling
src/reports.ts - Hours letter
src/letter.ts - Proof lookup
src/proof.ts
Staff operations
- Staff dashboard
public/staff.js - Staff data
src/staffdata.ts - Staff access
src/staffgate.ts
Other components
- Volunteer
- Speech service
- Gemini AI
Connections 37
- Volunteer → Volunteer app: uses
README.md - Volunteer app → Update route: submits update
README.md - Update route → Update processing: routes update
src/index.ts - Update processing → Audio transcription: transcribes audio
src/update.ts - Audio transcription → Speech service: requests transcription
README.md - Update processing → AI extraction: extracts shift data
src/update.ts - AI extraction → Gemini AI: requests extraction
src/ai.ts - AI extraction → Fallback parser: falls back to
src/ai.ts - Update processing → Fallback parser: checks danger words
src/update.ts - Update processing → Hours and concerns: checks and saves
src/update.ts - Volunteer → Staff dashboard: staff reviews
README.md - Staff dashboard → Staff access: requires passcode
README.md - Staff dashboard → Staff data: requests dashboard data
README.md - Staff data → Hours and concerns: reads and updates
src/staffdata.ts - Staff data → Event and check-in: reads check-ins
src/staffdata.ts - Staff data → Task assignments: reads tasks
src/staffdata.ts - Volunteer app → Today and check-in API: loads shift details
README.md - Today and check-in API → Event and check-in: reads and records check-in
src/today.ts - Today and check-in API → Hours and concerns: checks volunteer history
src/today.ts - Today and check-in API → Task assignments: reads completed tasks
src/today.ts - Task board → Task API: requests task actions
README.md - Task API → Task assignments: manages assignments
src/taskapi.ts - Shift chat → Message API: sends and polls
README.md - Message API → Message threads: reads and writes threads
src/messageapi.ts - Message API → Audio transcription: transcribes voice notes
src/messageapi.ts - Shift questions → Answer questions: asks question
README.md - Answer questions → Event and check-in: uses event notes
src/ask.ts - Answer questions → Task assignments: uses task details
src/ask.ts - Answer questions → Hours and concerns: uses staff notes
src/ask.ts - Volunteer reports → Report handling: submits and checks reports
README.md - Report handling → Hours and concerns: reads and records reports
src/reports.ts - Volunteer app → Hours letter: opens hours letter
README.md - Hours letter → Hours and concerns: reads approved shifts
src/letter.ts - Hours letter → Staff data: uses organization details
src/letter.ts - Volunteer app → Proof lookup: opens proof page
README.md - Proof lookup → Hours and concerns: looks up approved update
src/proof.ts - Update processing → Spoken responses: builds spoken response
src/update.ts