/bio-attendance-sys

Biometric Attendance System built with computer vision (Python OpenCV), Flask and the MERN stack

Primary LanguageJavaScriptMIT LicenseMIT

Biometric Attendance System

This biometric attendance system is a time and attendance tracking system that allows staff or teachers to organize courses, manage students and mark students' attendance using their most unique physical characteristics—their fingerprints. It's built with computer vision (Python OpenCV), Flask and the MERN stack.

NB: This system has been built and tested with The DigitalPersona U.are.U 4500 scanner only. It only supports Windows OS for now.

Below is an image of a DigitalPersona U.are.U 4500 scanner DigitalPersona U.are.U 4500 scanner

Download and install the client for windows here: HID DigitalPersona Client

Project Structure

The project is divided into three sections:

  1. client (frontend)
  2. server (core backend)
  3. server-py (matching backend)

Getting Started

Follow the steps below to set up the project locally

  1. Clone repo:
[HTTPS] - git clone git@github.com:IamGideonIdoko/bio-attendance-sys.git
[SSH] - git clone https://github.com/IamGideonIdoko/bio-attendance-sys.git
  1. Install client dependencies:
make client-deps
  1. Install server dependencies:
make server-deps
  1. Install server-py dependencies

    i. Create a conda environment

    make conda-env

    ii. Activate created conda environment

    conda activate bas_env

    iii. Install dependencies

    make match-server-deps
  2. Create a MySQL database (eg. bioattendancesysdb)

  3. Set up .env in server and update with neccessary details

make core-server-env
  1. Run DB migration
make dev-migrate
  1. Run DB migration
make dev-migrate
  1. In a new terminal, start server
make core-server
  1. In a conda activated bas_env environment terminal, start server-py
make match-server
  1. In a new terminal, start client
make client-server

Project DB ERD

Entity Relationship Diagram

Screenshots

Screenshot of system 1

Screenshot of system 2

Screenshot of system 3

Screenshot of system 4

Screenshot of system 5

Screenshot of system 6

Screenshot of system 7

Contributing

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

Author

Gideon Idoko - @IamGideonIdoko - iamgideonidoko@gmail.com