{"id":38265962,"url":"https://github.com/jasonjiang8866/attendance","last_synced_at":"2026-01-17T01:44:16.471Z","repository":{"id":177798439,"uuid":"660929200","full_name":"jasonjiang8866/attendance","owner":"jasonjiang8866","description":"a handy face attendance system for taking attendance just using face","archived":false,"fork":false,"pushed_at":"2025-08-24T09:43:42.000Z","size":227,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-24T09:58:16.664Z","etag":null,"topics":["angular","facial-recognition"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jasonjiang8866.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-07-01T08:48:26.000Z","updated_at":"2025-08-23T23:10:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"92cdbdaf-df0b-4a86-a653-f0705917e3bc","html_url":"https://github.com/jasonjiang8866/attendance","commit_stats":null,"previous_names":["jasonjiang8866/attendance"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jasonjiang8866/attendance","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasonjiang8866%2Fattendance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasonjiang8866%2Fattendance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasonjiang8866%2Fattendance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasonjiang8866%2Fattendance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jasonjiang8866","download_url":"https://codeload.github.com/jasonjiang8866/attendance/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasonjiang8866%2Fattendance/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28491630,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T00:50:05.742Z","status":"ssl_error","status_checked_at":"2026-01-17T00:43:11.982Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","facial-recognition"],"created_at":"2026-01-17T01:44:16.361Z","updated_at":"2026-01-17T01:44:16.445Z","avatar_url":"https://github.com/jasonjiang8866.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Attendance System with Face Recognition\n\nA real-time attendance tracking system that uses facial recognition technology to automatically identify and record attendance. The system consists of a Python FastAPI backend with face recognition capabilities and an Angular frontend for user interaction.\n\n## 🚀 Features\n\n- **Real-time Face Recognition**: Uses OpenCV and face_recognition library for accurate face detection and identification\n- **Live Video Streaming**: Real-time webcam feed with face detection overlay\n- **Web-based Interface**: Modern Angular frontend with Material Design components\n- **RESTful API**: FastAPI backend for handling video streams and face recognition processing\n- **Automatic Attendance**: Seamless attendance tracking through facial recognition\n- **Known Face Management**: System to encode and store known faces for recognition\n\n## 📸 User Interface Screenshots\n\n### Face Registration\nThe system provides an intuitive interface for registering new faces. Users can upload a clear photo along with their name to register for attendance tracking.\n\n![Face Registration Interface](screenshots/face-registration-tab.png)\n\n### Live Attendance Tracking\nThe main attendance interface features a live video feed with real-time face recognition capabilities, plus manual attendance options as a fallback.\n\n![Take Attendance Interface](screenshots/take-attendance-tab.png)\n\n### Attendance Records\nView and manage attendance history with a clean, organized interface showing timestamps and recent attendance activities.\n\n![Attendance Records Interface](screenshots/attendance-records-tab.png)\n\n## 🛠️ Technology Stack\n\n### Backend\n- **FastAPI**: Modern Python web framework for building APIs\n- **OpenCV**: Computer vision library for image processing\n- **face_recognition**: Face recognition library built on dlib\n- **Uvicorn**: ASGI server for running the FastAPI application\n\n### Frontend\n- **Angular 16**: Modern web application framework\n- **Angular Material**: Material Design components for Angular\n- **Bootstrap**: CSS framework for responsive design\n- **TypeScript**: Typed superset of JavaScript\n\n## 📋 Prerequisites\n\n### Python Dependencies\n- Python 3.7+\n- OpenCV (`cv2`)\n- face_recognition\n- FastAPI\n- Uvicorn\n- NumPy\n\n### Node.js Dependencies\n- Node.js 16+\n- Angular CLI\n- npm or yarn\n\n## 🔧 Installation\n\n### Option 1: Automatic Setup (Recommended)\n\nWe provide automated setup scripts that use [uv](https://github.com/astral-sh/uv) for fast and reliable Python dependency management:\n\n```bash\n# Clone the repository\ngit clone https://github.com/jasonjiang8866/attendance.git\ncd attendance\n\n# Run the automated setup script (Python)\npython setup.py\n\n# Or use the shell script alternative\nchmod +x setup.sh\n./setup.sh\n```\n\nThe setup script will:\n- Install uv package manager if not already installed\n- Create a virtual environment and install all Python dependencies\n- Install face recognition models\n- Create the required 'faces' directory\n\n### Option 2: Manual Setup\n\n#### 1. Clone the Repository\n```bash\ngit clone https://github.com/jasonjiang8866/attendance.git\ncd attendance\n```\n\n#### 2. Backend Setup\n```bash\n# Install Python dependencies manually\npip install fastapi uvicorn opencv-python face-recognition numpy jinja2\n\n# Create a 'faces' directory and add known face images\nmkdir faces\n# Add images of known people to the faces directory (format: name.jpg)\n```\n\n#### 3. Frontend Setup\n```bash\n# Navigate to the Angular application\ncd UI/i-attendance\n\n# Install dependencies\nnpm install\n\n# Build the application\nnpm run build\n```\n\n## 🚀 Usage\n\n### Running the Backend\n\nIf you used the automated setup (recommended):\n```bash\n# From the repository root\nuv run python main.py\n```\n\nIf you used manual installation:\n```bash\n# From the repository root\npython main.py\n```\n\nThe FastAPI server will start on `http://127.0.0.1:8000`\n\n### Running the Frontend\n```bash\n# Navigate to the Angular application\ncd UI/i-attendance\n\n# Start the development server\nnpm start\n```\nThe Angular application will be available on `http://localhost:4200`\n\n### API Endpoints\n- `GET /`: Main interface with live video stream\n- `GET /video_feed`: Video streaming endpoint for face recognition\n\n## 📁 Project Structure\n\n```\nattendance/\n├── README.md                 # This file\n├── main.py                   # FastAPI backend application\n├── face_recognizor.py        # Face recognition logic and processing\n├── setup.py                  # Automated Python setup script for developers\n├── setup.sh                  # Automated shell setup script for developers\n├── pyproject.toml           # Python project configuration and dependencies\n├── .python-version          # Python version specification for uv\n├── templates/                # HTML templates for the web interface\n│   └── index.html           # Main template for video streaming\n├── UI/                      # Frontend application\n│   └── i-attendance/        # Angular application\n│       ├── src/             # Angular source code\n│       ├── package.json     # Node.js dependencies\n│       └── README.md        # Angular-specific README\n├── faces/                   # Directory for known face images (created by setup)\n├── .gitignore              # Git ignore rules\n└── known_face_*.dat        # Generated face encoding files\n```\n\n## 🎯 How It Works\n\n1. **Face Encoding**: The system scans the `faces/` directory and creates encodings for all known faces\n2. **Real-time Detection**: Uses webcam feed to detect faces in real-time\n3. **Recognition**: Compares detected faces with known face encodings\n4. **Confidence Scoring**: Provides confidence percentage for face matches\n5. **Visual Feedback**: Displays bounding boxes and names on the video feed\n\n## 📝 Adding New Faces\n\n1. Add high-quality images of people to the `faces/` directory\n2. Name the files with the person's name (e.g., `john_doe.jpg`)\n3. Restart the application to update the face encodings\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## 📄 License\n\nThis project is open source and available under the [MIT License](LICENSE).\n\n## ⚠️ Important Notes\n\n- Ensure good lighting conditions for optimal face recognition accuracy\n- The system requires camera permissions to function properly\n- Face recognition accuracy depends on the quality of images in the `faces/` directory\n- For production use, consider implementing additional security measures and data protection\n\n## 🔧 Troubleshooting\n\n### Common Issues\n- **Camera not detected**: Ensure your webcam is connected and not being used by other applications\n- **Face recognition not working**: Check if the `faces/` directory contains images and face encodings are generated\n- **Performance issues**: Reduce video frame size or adjust processing frequency in the code\n\n### Requirements Installation Issues\nIf you encounter issues installing face_recognition:\n```bash\n# On Ubuntu/Debian\nsudo apt-get install cmake libopenblas-dev liblapack-dev libx11-dev libgtk-3-dev\n\n# On macOS\nbrew install cmake\n```\n\n## 📞 Support\n\nFor support and questions, please open an issue in the GitHub repository.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjasonjiang8866%2Fattendance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjasonjiang8866%2Fattendance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjasonjiang8866%2Fattendance/lists"}