Mohamed Magdy Dewidar
View Repository
C++ Systems Engineering & Distributed Architecture

Secure Distributed Banking System

A high-performance C++/Qt banking platform engineered for secure, real-time financial operations across a multi-threaded client-server architecture.

Encrypted Request Pipeline

To prevent packet sniffing and data tampering, I developed a custom communication protocol using QTcpSocket with XOR-based encryption. Every request—from balance checks to wire transfers—is packaged into a structured JSON object, encrypted on the client side, and decrypted server-side before execution.

Bitwise XOR Security

Custom low-level encryption ensures secure data exchange without the overhead of heavy external libraries.

RBAC Implementation

Granular Role-Based Access Control separates standard user features from administrative database management.

Encrypted JSON Request sequence diagram
Multi-threaded server processing logs

Concurrent Request Handling

The server is designed for high availability, utilizing multi-threading to handle simultaneous client requests without blocking operations. A Singleton-patterned JSON database provides centralized, persistent storage for accounts, transaction histories, and repayment schedules.

JSON Persistent Storage

Implemented a robust mapping system that translates nested JSON structures into in-memory objects for rapid access and update cycles.

Role-Based Dashboard Orchestration

I engineered custom Qt Widgets to deliver a tailored experience for different user tiers, ensuring that sensitive administrative tools are strictly decoupled from standard user interfaces.

Standard User Dashboard showing balance and history

Standard User Interface

  • Secure Session Management: Integrated encrypted login protocols to establish authorized client-server sessions.
  • Real-Time Financial Oversight: Instant access to account balances and transaction history formatted into high-readability tables.
  • Transactional Integrity: Facilitated secure fund transfers and wire operations with automated server-side verification.
Administrative Control Panel for bank management

Administrative Control Panel

  • Full User Lifecycle (CRUD): Authorized tools to create, update, and delete user accounts directly within the persistent database.
  • Global Database Visibility: Advanced access to view and audit the entire JSON-based bank registry for system consistency.
  • Audit Logging & Monitoring: Real-time logging of all incoming client requests for debugging and security auditing.