- Clone the repository.
git clone https://github.com/Trishna2005Das/Attendance-App.git cd Attendance-App - Navigate to the
backenddirectory and install the required Python packages:cd backend python3 -m venv env source ./env/bin/activate pip install -r requirements.txt
- Navigate to the
frontend/attendance_appdirectory and install the required Dart packages:cd ../frontend/attendance_app flutter pub get
- Start the backend server:
cd backend source ./env/bin/activate python app.py
- Start the frontend application:
cd frontend/attendance_app flutter run
Attendance-app/
│── backend/ # Flask backend
│ ├── app.py # Main Flask app
│ ├── config.py # Configuration settings (MongoDB, Heroku settings)
│ ├── requirements.txt # Python dependencies
│ ├── routes/ # API endpoints
│ │ ├── auth_routes.py # Login/signup, face verification
│ │ ├── qr_routes.py # QR generation & validation
│ │ ├── attendance_routes.py # Attendance marking logic
│ │ ├── face_scanner_routes.py # Face scanner endpoints
│ ├── models/ # Database models
│ │ ├── user_model.py # User (Teacher/Student) model
│ │ ├── attendance_model.py # Attendance model
│ ├── utils/ # Helper functions
│ │ ├── qr_generator.py # QR code generation logic
│ │ ├── face_scanner.py # Face scanner logic
│ │ ├── token_validator.py # Token/session validation
│ ├── templates/ # HTML files for testing API (optional)
│ ├── static/ # Static files (if needed)
│ ├── tests/ # Unit tests for backend
│ ├── .env # Environment variables (MongoDB URI, secret keys)
│ ├── Procfile # Heroku deployment config
│
│── frontend/ # Flutter frontend
│ ├── lib/
│ │ ├── main.dart # Entry point of the app
│ │ ├── screens/ # UI Screens
│ │ │ ├── login_screen.dart # Login with face auth
│ │ │ ├── face_scan.dart # Face scanning
│ │ │ ├── teacher_dashboard.dart # Teacher dashboard
│ │ │ ├── student_scanner.dart # QR scanner for students
│ │ │ ├── attendance_list.dart # Attendance records
│ │ ├── widgets/ # Reusable UI components
│ │ │ ├── qr_scanner.dart # QR scanning logic
│ │ │ ├── attendance_card.dart # Attendance display
│ │ │ ├── face_widget.dart # Face UI component
│ │ ├── services/ # API Calls
│ │ │ ├── auth_service.dart # Handles login & face auth
│ │ │ ├── qr_service.dart # Handles QR generation & scanning
│ │ │ ├── attendance_service.dart # Attendance submission
│ │ ├── utils/ # Helper functions
│ │ │ ├── constants.dart # App-wide constants
│ │ │ ├── themes.dart # Styling and themes
│ │ ├── plugins/ # Third-party packages (like biometric auth)
│ │ │ ├── local_auth.dart # Flutter's biometric authentication
│ ├── pubspec.yaml # Flutter dependencies
│ ├── android/ # Android-specific files
│ ├── ios/ # iOS-specific files
│ ├── web/ # Web-specific files
│ ├── build/ # Build outputs
│ ├── test/ # Unit tests for frontend
│
│── .gitignore # Ignore unnecessary files
│── README.md # Project documentation
│── LICENSE # Open-source license (optional)
│── docs/ # Documentation files
│── devops/ # CI/CD scripts, Dockerfile
│ ├── Dockerfile # Containerization
│ ├── heroku.yml # Heroku config (if needed)
│ ├── github-actions.yml # GitHub Actions for CI/CD
We plan to integrate a face scanner to verify students' identities. The raw face data will be stored and matched using the face_match.py utility. The process involves:
- Capturing the face data from the scanner.
- Storing the face data securely in the database.
- Using the face_match.py utility to match the scanned face with the stored data during attendance verification.
We will implement a real-time QR code generator to conduct attendance. The QR code will be updated in real-time and displayed to students. The process involves:
- Generating a unique QR code for each attendance session using the qr_generator.py utility.
- Displaying the QR code on the frontend.
- Students will scan the QR code using their devices.
- The backend will verify the scanned QR code and update the attendance record.
- The QR code will be refreshed periodically to ensure security.
In addition to QR code scanning, we will use biometric verification to ensure the authenticity of the students. The process involves:
- Capturing the student's face during the QR code scan.
- Matching the face with the stored data using the https://github.com/Sammisam8888/face-scanner.git utility.
- Verifying the student's identity and updating the attendance record.
Contributions are welcome! Please fork the repository and submit a pull request.
This project is licensed under the MIT License.