Veda is a web-based attendance system designed to address the inefficiencies of manual attendance recording in Nigerian schools and universities. Leveraging microcontroller technology and biometric verification, Veda offers a secure, accessible, and timely solution for managing student attendance. The system is developed around key components such as the Arduino UNO microcontroller, ESP8266 ESP01s WiFi module, R307S fingerprint module, and a web server, ensuring a scalable and extendable platform for various educational and professional settings.
- Student Registration: Easily register and track student data.
- Attendance Tracking: Automated attendance system for accurate tracking.
- Grade Management: Input and calculate student grades with ease.
- Reporting: Generate detailed scored for students attendance performance.
- Biometric Verification: Utilizes R307S fingerprint module for accurate student identification.
- Real-Time Attendance Tracking: Marks attendance for registered students and provides immediate access to records.
- Web-Based Access: Attendance records are accessible through a local web server, facilitating easy management and review.
- Scalable Design: Can be extended to other classes, departments, and colleges with minimal changes to hardware.
- Hardware Integration: Incorporates Arduino UNO, ESP8266 WiFi module, and other components for a comprehensive attendance solution.
- Arduino UNO Microcontroller
- ESP8266 ESP01s WiFi Module
- R307S Fingerprint Module
- 1602a LCD Display
- LEDs, Push Buttons
- I2C Adapter Module
- Hardware Setup: Assemble the hardware components based on the circuit diagrams provided in the appendices.
- Software Configuration: Upload the Arduino and server codes to the microcontroller and configure the local web server.
- System Testing: Follow the testing procedures outlined in the documentation to ensure system integrity and performance.
To deploy the Veda server, follow these steps:
-
Clone the repository to your local machine:
git clone https://github.com/Jesulayomi/Veda.git
-
Navigate to the project directory:
cd Veda
-
Create a virtual environment and activate it:
python3 -m venv venv source venv/bin/activate
-
Install the required dependencies:
pip install -r requirements.txt
-
Set up the environment variables:
- Create a
.env
file in the project root directory. - Add the following variables to the
.env
file:
DB_VEDA_MODE = MODE DB_VEDA_HOST = HOST DB_VEDA_USER = USER DB_VEDA_PASSWORD = PWD DB_VEDA_NAME = NAME SECRET_KEY = KEY VEDA_HOST = HOST VEDA_PORT = PORT
- Create a
-
Run database creation script:
cat reg.sql | mysql -u root -p
-
Start the server with flask:
cd api/ flask run
Access the server at
http://localhost:5000/
and make sure everything is working correctly. -
GitHub Actions will run the tests on the server, or fork the Postman Collection
-
Configure Nginx for deployment:
- Install Nginx on your server if it's not already installed.
- Create an Nginx configuration file for your Veda server. For example, create a file named
veda.conf
in the/etc/nginx/conf.d/
or/etc/nginx/sites-available/
directory. - Add the following configuration to the
veda.conf
file:server { listen 80; server_name your_domain; location / { proxy_pass http://localhost:5000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
- Save the file and exit.
-
Restart Nginx to apply the changes:
sudo service nginx restart
-
Access your Veda server using your domain name or server IP address.
Congratulations! You have successfully deployed the Veda server using Nginx.
- Registering a Student: Click the enroll button on the device and place student finger on the sensor to register. An ID will be assigned to the student.
- Updating Student Information: On the web interface, click on edit to edit a student's information. First name, last name, and matric number can be updated.
- Marking Attendance: Click the attend button on the device and place the student's finger on the sensor. The student's attendance will be recorded, and sent to the web application's server, the database will be updated and the student will be marked present.
- Access Records: View and download attendance records with scores through the web-based interface.
This project was developed by Aina Jesulayomi Michael, under the guidance of Dr. O. I. Adebisi, and in partial fulfillment of the requirements for the Bachelor of Engineering degree at the Federal University of Agriculture, Abeokuta. Special thanks to all who supported and contributed to the success of this project.
We welcome contributions to Veda! If you have any ideas, suggestions, or bug reports, please open an issue or submit a pull request. Follow these steps to contribute:
- Fork the Repository: Click the 'Fork' button at the top right of the repository page.
- Clone Your Fork:
git clone https://github.com/your-username/Veda.git
- Create a Branch:
git checkout -b feature-name
- Make Your Changes and Commit:
git commit -m "Description of your changes"
- Push to Your Fork:
git push origin feature-name
- Open a Pull Request: Go to the original repository and open a pull request with a detailed description of your changes.
Veda is licensed under the MIT License. See the LICENSE file for more details.
For any inquiries or support, please contact:
- Owner: Jesulayomi Michael Aina
- LinkedIn: Jesulayomi Aina
- GitHub: Jesulayomy
Feel free to explore and contribute to the Veda project. Your feedback and participation are highly valued!