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.
Client (Voter)
│
│ Java RMI (Remote Method Invocation)
▼
Server (VotingServer)
│
├── Ticket issuance & validation
├── Session control
├── Vote recording
└── Result access management
- 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
Java Java RMI Client-Server Architecture Distributed Systems
- Java JDK 11+
- IntelliJ IDEA (recommended) or any Java IDE
git clone https://github.com/Mololola/Java-RMI-Secure-Voting-System.git
cd Java-RMI-Secure-Voting-SystemOpen in IntelliJ IDEA → Run the Server first, then run the Client.
- Java RMI remote interface design
- Distributed object communication
- Session and state management across a network
- Secure voting protocol design