Thanks for your interest in contributing to AttendAI! This guide will help you get started.
- Code of Conduct
- Getting Started
- How to Contribute
- Issue Labels
- Pull Request Process
- Commit Message Format
- Project Structure
Please read our CODE_OF_CONDUCT.md before contributing.
git clone https://github.com/<your-username>/AttendAI.git
cd AttendAIpip install -r requirements.txtCreate a .env file in root:
SUPABASE_URL=your_supabase_project_url
SUPABASE_KEY=your_supabase_service_role_key
SECRET_KEY=your_flask_secret_key
Run the SQL from the README in your Supabase SQL Editor.
python app.pyVisit http://localhost:5000
- Browse open issues
- Look for
good first issuelabel if you're new - Comment "I'd like to work on this" and wait for assignment
- Do NOT submit a PR for an unassigned issue
git checkout -b fix/issue-title
# or
git checkout -b feat/feature-name- Test your changes locally before submitting
- Make sure the app runs without errors
- Keep changes focused — one issue per PR
| Label | Points | Description |
|---|---|---|
level-1 |
3 pts | Small fixes — UI, typos, README updates |
level-2 |
5 pts | Medium features — new routes, UI components |
level-3 |
10 pts | Complex features — new modules, integrations |
bug |
— | Something is broken |
enhancement |
— | New feature request |
good first issue |
— | Great for beginners |
documentation |
— | Docs improvement |
- Make sure your branch is up to date with
main - Fill out the PR template completely
- Link the issue number:
Closes #<issue-number> - Wait for review — don't merge your own PR
- Address review comments promptly
feat: add dark mode to dashboard
fix: resolve CSV export bug on Windows
docs: update setup instructions
refactor: clean up face_utils.py
type: short description
Types: feat | fix | docs | style | refactor | test | chore
Examples:
feat: add QR-based student self-checkin
fix: mediapipe blink threshold on low-light webcam
docs: add env setup instructions to README
AttendAI/
├── app.py # Main Flask app — routes & logic
├── face_utils.py # Face recognition utilities
├── train.py # LBPH model training script
├── db.py # Supabase database helpers
├── templates/ # HTML templates (Jinja2)
├── images/ # Registered face images (gitignored)
├── trainer.yml # Trained model (gitignored)
├── labels.pickle # Label map (gitignored)
└── .env # Environment variables (gitignored)
Open a Discussion or ping the project admin on the NSoC Discord.
Happy Contributing! 🚀