My [GitHub] Projects π
Decentralized E-Voting System
Description: An end-to-end verifiable, open-audit voting system (Helios-inspired) built by a team of three on a peer-to-peer gossip broadcast layer, with no central server for message propagation and any node free to act as election authority, voter, or both. Ballots are encrypted with ElGamal over elliptic curves, anonymized through a Sako-Kilian verifiable mixnet, and tallied under Chaum-Pedersen zero-knowledge decryption proofs, so any auditor can verify the result without learning a single vote.
- Tech Stack:
Go
- Key Features:
- Peer-to-peer gossip broadcast layer with no central propagation server
- ElGamal over elliptic curves (Dedis Kyber), Sako-Kilian verifiable mixnet (80 shadow-mix rounds), and Chaum-Pedersen NIZK decryption proofs, made non-interactive via the Fiat-Shamir heuristic
- Six-phase election protocol: advertisement, registration, credentials, submission, mixing, verified tally
- Application-layer packet fragmentation over UDP with ACK/retransmission, carrying multi-megabyte shuffle proofs past the MTU limit
- 84%+ test coverage under GitHub Actions CI, a 100-node end-to-end election stress test (36 s, 4.2 GB RSS), and benchmarks showing linear scaling at 1.68 ms per node
- Web interface (pongo2 server-side templating with HTMX) and a client-side voting booth that keeps secrets in the browser, exposing one-click individual-ballot and whole-election verification
Clustering Algorithm Analysis
Description: Efficient pipelines are built for approximate nearest-neighbor search and k-means clustering on MNIST. Parts 1β2 invest in heavy index construction to accelerate queries directly in the raw \(28 \times 28\) pixel space via classic hashing and graph-based indices, whereas Part 3 first compresses images to a latent representation \(\lt50D\); timing, approximation, and Silhouette metrics are then compared across all parts.
- Tech Stack:
C/C++,
Python,
Jupyter Notebook,
TensorFlow/Keras
- Key Features:
Implementing a Shell
Description: Implementation of mysh, a lightweight, Unix-like bash shell.
- Tech Stack:
C/C++
- Key Features:
- I/O redirection
- Pipelines
- Background execution
- Wildcard expansion
- Alias management
- Signal handling
- Command history
Client-Server Model through TCP
Description: Implementation of a thread-pooled TCP poller server with a stress-testing client, ensuring safe concurrency through POSIX mutexes and condition variables.
- Tech Stack:
C/C++,
Bash
- Key Features:
poller- Multithreaded C/C++ server that queues incoming sockets,pollSwayer- Multithreaded client that reads an input file and spawns one thread per voter
Data Mining Techniques: Customer Profiling & Goodreads Book Analysis
Description: Customers are segmented with Agglomerative and K-Means clustering for profile analysis, while cosine similarity on vectorized book descriptions supports a recommendation system.
- Tech Stack:
Python,
Jupyter Notebook
