Welcome to the Student Attendance Tracking DAO! This decentralized application harnesses the power of blockchain technology to improve the way student attendance is tracked. Our project not only enhances transparency and efficiency but also empowers educational institutions to manage attendance seamlessly.
This project features a decentralized autonomous organization (DAO) that allows teachers to create attendance forms, track student attendance, and calculate results in real-time. The system ensures that only authorized users can perform specific actions, thanks to a robust role-based access control (RBAC) mechanism.
For a detailed academic exploration of the principles behind this project, check out our publication: STAMP: Blockchain and DAO-based Student Attendance Management Platform.
Before you begin, ensure you have the following installed:
- Ganache - a personal blockchain for Ethereum development.
- Remix IDE - a powerful open-source tool to write, compile, and deploy Solidity smart contracts.
- Node.js - a JavaScript runtime for building and running the web application.
-
Compile and Deploy the Smart Contracts:
- Open the
AttendanceDAO.sol
file in Remix IDE. - Compile the smart contract and resolve any compilation issues.
- Deploy the contract using Ganache as your provider.
- Open the
-
Install Node.js and Web3 Dependencies:
- Install Node.js from here.
- Open your terminal and run the following command to install the necessary dependencies:
npm install web3 ganache-cli
-
Configure the JavaScript Dashboard:
- Open
attendance_dashboard.js
and modify the following constants:contractAddress
: Set this to the deployed contract address.contractABI
: Use the ABI generated by Remix after deploying the contract.
- Open
-
Run the Dashboard:
- Open
attendance_dashboard.html
in your preferred web browser. - Input a number between 0 and 9 to assign addresses (0 for the teacher, others for students).
- Open
-
Add Course:
- Enter a course name in the "Add Course" section and click the "Add" button.
-
Create New Form:
- Select a course, enter student addresses (comma-separated), and click the "Create Form" button.
-
View and Close Forms:
- Select a form from the dropdown to view details.
- Click the "Close Form" button to calculate attendance results.
-
View Attendance by Course:
- Select a course from the dropdown to view attendance results.
-
Select Course:
- Choose a course from the dropdown to view attendance.
-
Select Form to Answer:
- Choose a form from the dropdown to answer.
-
Submit Form:
- Check the students you want to mark as present and click the "Submit Form" button.
- The teacher's address is set to
0
, while addresses1
to9
represent student addresses. - Ensure that Ganache is running and the correct contract address and ABI are set in the JavaScript file.
- Henry Marie MONT - Project Lead & Developer