Skip to content

Latest commit

 

History

History
62 lines (45 loc) · 1.54 KB

File metadata and controls

62 lines (45 loc) · 1.54 KB

🗳️ Secure Voting System — Java RMI

A university distributed systems project implementing a secure remote voting system using Java RMI (Remote Method Invocation). Demonstrates client-server architecture, session management, and secure access control.


🏗️ Architecture

Client (Voter)
     │
     │  Java RMI (Remote Method Invocation)
     ▼
Server (VotingServer)
     │
     ├── Ticket issuance & validation
     ├── Session control
     ├── Vote recording
     └── Result access management

✨ Features

  • Ticket-based Authentication — server issues unique tickets per voting session
  • Session Validation — prevents double voting and unauthorised access
  • Remote Vote Casting — clients cast votes and retrieve results over RMI
  • Result Access Control — results only accessible after voting session closes
  • Secure Design — server-side enforcement of all voting rules

🛠️ Tech Stack

Java Java RMI Client-Server Architecture Distributed Systems


🚀 Getting Started

Prerequisites

  • Java JDK 11+
  • IntelliJ IDEA (recommended) or any Java IDE

Run the project

git clone https://github.com/Mololola/Java-RMI-Secure-Voting-System.git
cd Java-RMI-Secure-Voting-System

Open in IntelliJ IDEA → Run the Server first, then run the Client.


📚 Concepts Demonstrated

  • Java RMI remote interface design
  • Distributed object communication
  • Session and state management across a network
  • Secure voting protocol design