Skip to content

Rithvik-Rajesh/trustless-examination-system

 
 

Repository files navigation

Trustless Examination System

Overview

This project implements a trustless examination system built using Python, where results are published via a verifiable state machine. The system ensures transparency, immutability, and accountability throughout the examination process. This decentralized approach guarantees that no third party can manipulate the results, creating a system of trust without requiring trusted intermediaries.

Features

  • Verifiable State Machine: Results are managed through a state machine that can be verified, ensuring data consistency and integrity.
  • Transparency and Accountability: Every action in the exam process is tracked and verifiable, eliminating the possibility of tampering.
  • Decentralized Publishing: Exam results are published on a verifiable ledger, ensuring they remain immutable.
  • Python-based: The core of the system is built using Python, making it lightweight and easy to extend.

Architecture

The system operates using a finite state machine, representing different states of the examination process:

  1. Initialized: The examination setup is completed and verified.
  2. Ongoing: Exams are being conducted, and submissions are being logged.
  3. Completed: Exams are closed, and results are computed.
  4. Published: Results are publicly available and verifiable.

Each state transition is logged, and the results are made accessible in a tamper-proof manner.

State Machine Diagram

[Initialized] -> [Ongoing] -> [Completed] -> [Published]

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/trustless-exam-system.git
    cd trustless-exam-system
  2. Install dependencies:

    pip install -r requirements.txt
  3. Run the application:

    python app.py

Usage

  1. Initialize the Examination: Define the exam parameters and initialize the system in the Initialized state.
  2. Run the Examination: The state machine transitions to Ongoing as exams are conducted, logging submissions.
  3. Complete the Examination: Transition to the Completed state, where exam results are processed.
  4. Publish Results: Results are transitioned to the Published state, ensuring they are verifiable by all parties.

Roadmap

  • Implement blockchain-based result publishing for stronger verification.
  • Add a user interface for teachers and students to interact with the system.
  • Integration with existing quiz platforms.

Contributing

Feel free to fork this repository and make contributions! To contribute:

  1. Fork the repo
  2. Create a new branch (git checkout -b feature-branch)
  3. Commit your changes (git commit -m "Add new feature")
  4. Push to the branch (git push origin feature-branch)
  5. Open a pull request

License

This project is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 63.0%
  • HTML 30.6%
  • CSS 6.4%