This guide details the step-by-step process for setting up and operating the Off-Chain Verification & E-Voting System, assuming a fresh installation with no existing data.
Since a fresh database has no users, you must create the first administrator account via the terminal.
- Open your terminal in the backend directory (
.../evoting_backend). - Run the following command:
python manage.py createsuperuser
- Follow the prompts:
- Email:
admin@college.edu(or your preference) - Password: [Enter a secure password]
- Bypass other fields (press Enter for defaults if allowed).
- Email:
- Open the frontend:
http://localhost:5173 - Navigate to Login.
- Select role Super Admin.
- Enter the credentials you just created.
Before users can register, you must define the college structure.
- Go to Department Management in the Admin Dashboard.
- Click "Add Department".
- Enter details (e.g., Name: "Computer Science", Code: "CS").
- Repeat for all college departments (EE, ME, Civil, etc.).
You have two ways to assign an HOD:
Option A: Invite a New User
- In Department Management, find the department.
- Click "Invite HOD".
- Enter the email of the faculty member you wish to appoint.
- The system sends an email (or generates a link in dev mode) for them to register directly as HOD.
Option B: Promote Existing Faculty
- Wait for a faculty member to register (see Section 3).
- Go to User Management.
- Find the faculty member.
- Edit their profile and change Role to
HOD, assigning them to the relevant Department.
- Faculty members go to
/register/faculty. - They fill out the form, uploading their ID proof.
- Status: Account is created but marked Pending.
- HOD logs in -> Goes to Approvals.
- Views pending Faculty requests for their department.
- Verifies ID proof -> Clicks Approve.
- Note: Super Admin can also approve faculty if no HOD is assigned yet.
- Students go to
/register/student. - They fill out personal details and upload College ID + Govt ID.
- Status: Account is created but marked Pending.
- Faculty (Class Teacher) or HOD logs in.
- Goes to Approvals (or Class Management).
- Reviews Student data -> Clicks Verify.
- Student can now log in.
- Super Admin goes to Election Management.
- Clicks "Create Election".
- Details: Title, Description, Date/Time.
- Scope:
- Global: Leave "Departments" empty (e.g., Student Council).
- Departmental: Select specific departments (e.g., CS Rep).
- HOD logs in -> Goes to Elections.
- Finds the active election.
- Clicks "Add Classes".
- Selects specific classes (e.g., "CS-3A", "CS-3B") allowed to vote.
- Security Check: HOD can only add classes from their own department.
- Students log in during the election window.
- They see eligible elections on their dashboard.
- Click "Vote Now".
- Vote is recorded on the Blockchain (simulated or testnet).
- Once the election
End Datepasses, the status becomes Closed. - Results are calculated automatically based on blockchain tallies.
- Admins/HODs can publish results to the students.
- Super Admin can view the Audit Log to trace critical actions:
- Who approved a student?
- Who edited a class?
- User IP and timestamp for all sensitive mutations.