A modern, privacy-first attendance tracking system for high school clubs and organizations.
RollCall provides a simple QR code-based check-in system that helps club organizers track member attendance while engaging students through gamification. Built with a focus on student privacy and FERPA compliance.
- QR Code Check-in: 2-minute expiring codes with auto-refresh
- Multi-tenant Architecture: Support multiple schools/organizations
- Custom URLs: Friendly slugs like
/org/lincoln-high/club/robotics - Meeting Scheduling: Plan meetings with required/optional designation
- Role Management: Organizer, Assistant, Viewer, and Member roles
- Achievement Badges: Reward consistent attendance and engagement
- Perfect Attendance (required meetings only)
- Early Bird (first 5 minutes)
- Club Regular (90% attendance)
- Streak Master
- Bonus Enthusiast (optional meetings)
- Points System: Track engagement across clubs
- Leaderboards: Optional competitive elements
- FERPA Compliant: Designed for educational records protection
- Minimal Data Collection: Only essential information
- Secure Authentication: Via Clerk with multiple login options
- In-Person Only: QR codes prevent remote check-ins
- Content Moderation: Automated filtering for profiles
- Backend: Go 1.23+ with Echo framework
- Database: SQLite with sqlc for type-safe queries
- Frontend: HTMX + Templ + Tailwind CSS
- Authentication: Clerk (10K free MAUs)
- Development: Air for hot reload
# Install Go 1.23+
# Install Node.js 18+ (for Tailwind)
# Install development tools
go install github.com/air-verse/air@latest
go install github.com/sqlc-dev/sqlc/cmd/sqlc@latest
go install github.com/pressly/goose/v3/cmd/goose@latest
go install github.com/a-h/templ/cmd/templ@latest# Copy example environment file
cp .envrc.example .envrc
# Edit .envrc with your configuration
# Required: Clerk API keys
# Required: Database path
# Optional: OAuth credentials
# Load environment variables
source .envrc# Run migrations
make migrate
# Seed development data (optional)
make seed# Install dependencies
make deps
# Start development server with hot reload
make run
# Visit http://localhost:8080# Build production binary
make build
# Run tests
make test
# Lint code
make lintrollcall/
├── cmd/ # Application entry points
├── service/ # HTTP handlers and business logic
├── storage/ # Database layer
├── views/ # Templ templates
├── public/ # Static assets
├── internal/ # Internal packages
└── scripts/ # Utility scripts
- Configure organization domains
- Set up organization profile and logo
- Monitor system usage
- Manage tenant settings
- Create your club with custom slug
- Schedule meetings (mark as required/optional)
- Display QR code for check-in
- View attendance reports
- Manage assistants and viewers
- Sign up with school email
- Join clubs
- Scan QR code to check in
- View your badges and achievements
- Track attendance history
Coming soon. The application primarily uses server-side rendering with HTMX for interactivity.
- Go 1.23+
- SQLite with WAL mode enabled
- Reverse proxy (Nginx/Caddy)
- SSL certificate
- Clerk account
# Dockerfile coming soon# /etc/systemd/system/rollcall.service
[Unit]
Description=RollCall Attendance System
After=network.target
[Service]
Type=simple
User=rollcall
WorkingDirectory=/opt/rollcall
ExecStart=/opt/rollcall/bin/rollcall
Restart=on-failure
Environment="PORT=8080"
Environment="DATABASE_PATH=/var/lib/rollcall/data.db"
[Install]
WantedBy=multi-user.targetWe welcome contributions! Please see CONTRIBUTING.md for guidelines.
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request
- Report security vulnerabilities privately
- No storage of sensitive student data
- Regular security updates
- FERPA compliance maintained
- Documentation: See PRD.md and TECH_STACK.md
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- ✅ Multi-tenant architecture
- ✅ Basic attendance tracking
- ✅ QR code check-in
- ✅ User profiles
- ✅ Meeting scheduling
- 🚧 Basic reporting
- 🚧 Initial badges
- Advanced analytics
- Email notifications
- Parent portal
- Enhanced gamification
- API for integrations
- Mobile apps
- Advanced reporting
- School system integration
Built with modern web development best practices and a focus on student privacy.