Open-source event check-in app. Scan a student ID QR code, log attendance in under a second.
A free replacement for pen-and-paper attendance sheets — installable as a PWA on any phone, no app store.
Case Study · Screenshots · Quick Start · Features
Universities still take event attendance with paper sign-in sheets. A single seminar with hundreds of students means a long queue at the door, unreadable handwriting, hours of manual encoding afterwards, and no reliable way to catch someone signing in for a friend.
Evento replaces that with a QR scan. Officers open the web app on their own phone, point it at a student ID, and attendance is recorded in real time — no hardware to buy, no app to install, no encoding afterwards.
Built for: student councils, university organizations, department events, seminars, general assemblies, school clubs, and any event that needs fast, verifiable check-in.
📖 Read the full case study: https://www.danodoms.com/case-studies/evento
| Feature | What it does | |
|---|---|---|
| 📷 | QR code attendance scanning | Scan existing student ID QR codes with any phone camera — check-in takes under a second. |
| 📲 | Installable PWA | Add to home screen on Android, iOS, or desktop. No app store, no APK, no install friction for volunteers. |
| ⚡ | Real-time attendance records | Every scan syncs instantly across all devices — multiple officers can scan at different doors simultaneously. |
| 🔐 | Role-based access control | Main admin, secondary admin, and officer roles with scoped permissions so officers can scan but not alter records. |
| 📊 | Event management | Create events, track attendance per event, and review who attended without manual encoding. |
| 🔔 | Instant feedback | Toast notifications confirm every scan, so officers know immediately whether a check-in succeeded. |
| 📱 | Responsive on any device | Works on budget Android phones, tablets, and desktops — the same URL for everyone. |
| Layer | Technology |
|---|---|
| Framework | React + TypeScript |
| Styling | Tailwind CSS + shadcn/ui |
| State | Zustand |
| Data fetching | TanStack Query (React Query) |
| QR scanning | Html5Qrcode |
| Animation | Framer Motion |
| Notifications | React Toastify |
| PWA | Service worker + web app manifest |
Prerequisites: Node.js 18+ and npm.
# 1. Clone the repository
git clone https://github.com/domsdano/events-attendance.git
cd events-attendance
# 2. Install dependencies
npm install
# 3. Run the development server
npm startOpen the local URL printed in your terminal.
Build for production:
npm run buildDeploy the build output to Vercel, Netlify, Cloudflare Pages, or any static host. Serve over HTTPS — the browser camera API required for QR scanning will not work over plain HTTP.
- Log in — admins and officers sign in with their credentials.
- Create an event — set the event name, date, and which officers can scan for it.
- Scan student IDs — open the scanner and point the camera at each student's ID QR code.
- Watch attendance live — records appear in real time across every logged-in device.
- Manage users — assign admin or officer roles and revoke access when an event ends.
- CSV / Excel export of attendance records
- Offline-first scanning with background sync
- Time-in / time-out tracking
- Bulk student import
- Docker deployment guide
Have a request? Open an issue.
Does it need special scanning hardware? No. Any phone with a camera works. Evento runs in the browser.
Does it work with our existing student IDs? Yes, as long as the ID has a QR code encoding the student number.
Can it work offline? Not yet — offline-first scanning is on the roadmap. It currently needs a connection to sync in real time.
Is it free? Yes, fully open source. Self-host it for free.
Contributions are welcome — bug reports, feature ideas, and pull requests.
- Fork the repository on GitHub (use the Fork button).
- Clone your fork and create a branch:
git clone https://github.com/YOUR-USERNAME/events-attendance.git cd events-attendance git checkout -b feature/your-feature-name - Commit your changes:
git commit -m "feat: add your feature" - Push and open a pull request:
git push origin feature/your-feature-name
Check the open issues for good places to start.
MIT
Built by danodoms
⭐ If Evento is useful to you or your school, a star helps other organizations find it.






