coderqh

Turnora — Flutter Volunteer Shift Signup App with Firebase and Laravel Admin

Every shift covered. Every hand counted.

Turnora — Flutter Volunteer Shift Signup App with Firebase and Laravel Admin

The live preview on CodeCanyon is this app compiled for the web: the real build, not a video.

A volunteer shift signup app for community events: the organizer posts the shifts and how many people each one needs, volunteers join with a six letter code on their own phones and take a shift with one tap, and the remaining places update on everyone's screen the same second. On the day, check-in and hours live in the same app. Your Firebase project, your brand.

What it does well

from the app
Places you can count — Turnora screen

Places you can count

Each shift is a wristband with a tally on it: one stroke per volunteer, a gate at five. When another volunteer takes a place, the stroke draws itself on your phone too. A full shift says so before you tap.

One tap, one place, one winner — Turnora screen

One tap, one place, one winner

Take this shift is a single press. Two people racing for the last place are settled by a Firestore transaction, so exactly one gets it and the other is offered the waitlist, with the shift's count still right on every screen.

Door check-in and hours, live — Turnora screen

Door check-in and hours, live

On the day the organizer opens the Door tab and watches wristbands snap closed as volunteers tap I am here. Late arrivals are flagged after a grace period, and every checked-in shift adds its hours to the volunteer's own tally.

What it looks like

11 images
Tally — Turnora
Tally
Claim — Turnora
Claim
Door — Turnora
Door
Coverage — Turnora
Coverage
Join — Turnora
Join
Organizer — Turnora
Organizer
More screens — Turnora
More screens
What you get — Turnora
What you get
Admin — Turnora
Admin
Landing — Turnora
Landing
Live preview — Turnora
Live preview

In the box

from the shipped zip
  • Full Flutter source in turnora_app/, no obfuscation and no licence server
  • Offline HTML documentation: setup, re-theming, app name and bundle id, troubleshooting
  • The back end, with full source: Firebase, with a Laravel admin
  • Back-end setup notes for Docker and for shared hosting
  • A one-page landing site for the app, ready to host
  • 35 Dart test files in the app

Run it after download

the app
# unzip the download, then
$ cd turnora_app
$ flutter pub get
$ flutter run

The app runs on its bundled demo data first. The back end has its own README for Docker and for shared hosting, and the app keeps working without it.

Spec

measured
Screen widgets15
Dart files163
Tests in the package35
Dart SDK^3.13.0
Back endFirebase, with a Laravel admin
PlatformsiOS + Android, one codebase

Counted from turnora-v1.0.zip, the file uploaded to CodeCanyon. Screen widgets are the view, screen and page classes in the source, so the number can differ slightly from a count of routes.

Questions

Something else? Ask on the item's CodeCanyon page; the author answers there.

Do volunteers need to create an account?

Only the organizer does. Volunteers join with the event code and their name through anonymous sign in, take shifts straight away, and can attach an email later to keep their hours across phones.

What stops a shift from being overbooked?

Every claim runs as a Firestore transaction that raises the shift's count by exactly one and refuses to pass its capacity, and the security rules that ship with the app enforce the same arithmetic on the server. The documentation has a chapter on exactly where that line sits.

What does the Laravel back end do?

It is a Filament admin panel that reads and edits the same Firebase project from a browser: events, shifts, signups, members and sign in users, plus a push notification page. The app talks to Firebase directly, so the panel is for you, the operator, and it ships with a Docker file and an install script.

See Turnora on CodeCanyon →

Sold on Envato's CodeCanyon marketplace, which handles payment, VAT, invoices and the download.