I'm a Computer Science student interested in software development, algorithms, systems programming, networking, and machine learning. I enjoy building practical software and exploring how algorithms, data structures, and system design can be applied to real-world problems.
- 💻 Software Development & System Design
- 🧠 Algorithms & Data Structures
- 🌐 Networking & Distributed Systems
- 🔐 Cryptography & Secure Communication
- 🤖 Machine Learning & Deep Learning
- ⚙️ Optimization & Heuristic Search
- 🧩 Compilers & Formal Languages
Here are some of the projects I've worked on, focusing on algorithms, software architecture, systems programming, networking, and practical problem solving.
Multiplayer Card Game · C++20 · SFML · TGUI · Crow · SQLite
A multiplayer card game developed as a team project, featuring a graphical client, REST backend, authentication, multiplayer lobbies, persistent storage, and real-time player synchronization.
My contributions included:
- 🔐 Authentication and session management
- 🎮 Multiplayer lobby and player activity synchronization
- 👤 Player profiles, statistics, account management and avatars
- 🗄️ Database management and client-server data integration
- 🧩 Core game architecture and static library organization
- 🧪 Unit testing for game and session-management components
Graph Algorithms Framework · C++14 · Qt · Graph Algorithms
A modular graph algorithms framework developed independently for a university Graph Algorithms course and progressively extended across seven assignments. The project evolved from an interactive graph editor into a complete framework covering graph traversal, connectivity, shortest paths, minimum spanning trees, TSP approximation, and network flow.
Key implementations:
- 🕸️ Interactive directed and undirected graph framework
- 🔍 BFS, non-recursive DFS, connected components and strongly connected components
- 🔄 Topological sorting, cycle detection and shortest paths
- 🧱 Labyrinth-to-graph conversion and BFS-based exit path finding
- 🗺️ Geographic maps with KD-Tree nearest-node search and Dijkstra
- 🌳 Kruskal and Union-Find for Minimum Spanning Trees
- 🧭 Floyd–Warshall and MST-based TSP approximation
- 🌊 Ford–Fulkerson maximum flow and minimum cut
- 🎨 Interactive Qt visualization with step-by-step algorithm execution
Lossless Data Compression · C++20 · Data Structures · Binary Trees
A C++20 implementation of the Huffman coding algorithm for lossless text compression, originally developed for a university Data Structures assignment and later refactored into a standalone project.
Key implementations:
- 🌳 Huffman binary tree construction
- 📊 Character frequency analysis using
std::unordered_map - ⬇️ Min-priority queue using
std::priority_queuewith a custom comparator - 🔢 Prefix-free Huffman code generation through recursive tree traversal
- 📋 Character-to-code lookup table
- 🔐 Lossless text encoding
- 📝 Support for multi-line text, spaces, tabs, newlines and punctuation
- 🛡️ Input validation and edge-case handling
- 🧹 Dynamic memory management for the Huffman tree
- 🧪 Testing with multiple input scenarios and edge cases
Client-Server Reservation System · Java 21 · Quarkus · PostgreSQL · TCP Sockets
A multi-module client-server reservation system developed in Java using Quarkus, PostgreSQL, JPA/Hibernate and TCP sockets, supporting concurrent clients, persistent reservations, user authentication and session management.
Key implementations:
- 🌐 Multi-module client-server architecture using TCP sockets
- 🔐 User registration, login, logout and session management
- 🔒 BCrypt password hashing and authorization checks
- 🎫 Reservation creation, cancellation and personal reservation management
- ⚡ Concurrent client handling using
ExecutorService - 🗄️ PostgreSQL persistence with JPA/Hibernate
- 🔐 Pessimistic locking to prevent concurrent duplicate reservations
- 📡 Command-based client-server communication protocol
- 🧩 Modular separation between client, protocol and server components
Grid Pathfinding · C++20 · A* Search · Data Structures
A C++20 grid pathfinding application developed for a university Data Structures assignment and later refactored into a standalone project. It models a terrain map as a weighted search space and uses the A* algorithm to find an optimal route while respecting terrain accessibility and elevation constraints.
Key implementations:
- ⭐ A* search with
f(n) = g(n) + h(n) - 📐 Manhattan-distance heuristic for four-directional grid movement
- 🥾 Elevation-aware movement costs and terrain accessibility constraints
- 📊
std::priority_queuewith a custom comparator for efficient frontier management - 🔗 Path reconstruction using predecessor tracking
- 🗺️ Grid map loading, validation and optimal-path visualization
- 🛡️ Robust handling of invalid input, malformed maps and unreachable destinations
- 🧪 Validation through multiple pathfinding and edge-case test scenarios
Secure Client-Server Chat · C# · .NET 8 · TCP · ECDH · AES-256
A secure client-server chat application developed in C# using TCP sockets, Elliptic Curve Diffie-Hellman (ECDH) for per-client key exchange, and AES-256 for encrypted communication. The project demonstrates secure session establishment, encrypted messaging, packet integrity verification, and asynchronous multi-client communication.
Key implementations:
- 🤝 ECDH key exchange using the NIST P-256 curve
- 🔑 Unique AES-256 session key derived for each client
- 🔒 AES encryption with a random IV for every message
- 🛡️ SHA-256 packet integrity verification
- 📡 Asynchronous TCP client-server communication with multiple clients
- 📦 JSON-based secure packet serialization through a shared library
- 🔄 Server-side decryption and per-client message re-encryption
- 🔁 Automatic client reconnection after connection loss
- 💻 GitHub: Antonio Visan
- 💼 LinkedIn: Antonio Visan
- 📧 visan.antonio2004@gmail.com
I enjoy gaming in my free time, especially simulation and strategy games. Lately, I've been exploring different countries in Euro Truck Simulator 2.
