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

 
 
 

Contributors

Languages

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