Skip to content

Mololola/Java-RMI-Secure-Voting-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🗳️ 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

About

A Java RMI–based client–server application implementing a secure voting system with session control. The server issues tickets, validates voting sessions, records votes, and manages result access, while clients interact remotely using RMI to cast votes and retrieve results.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages