![]() |
Banking_System_Server
1.0.0
Qt-based banking app for user/admin account management, transactions, secure server communication via PostgreSQL/Supabase.
|
QT-Banking-System-Server is the server-side implementation of a banking system, developed using the Qt 6/C++ framework. The server handles client requests, performs database operations using PostgreSQL with Supabase hosting, and ensures secure and efficient communication between clients and the database.
The server application is designed to be multi-threaded, enabling concurrent handling of multiple clients and requests. It includes features such as request handling, database operations, logging, and secure communication to provide a robust and reliable banking system.
[!NOTE] This project is part of a Banking System (TCP Client-Server) project, which includes the following repositories:
- QT-Banking-System-Client: The client-side implementation of the banking system.
- QT-Banking-System-Server: The server-side implementation of the banking system.
QThreadStorage
for thread-local storage.QTcpServer
and QTcpSocket
classes.To run the server application, execute the following command:
The server handles various requests through the RequestManager
and specific request classes located in the requestModule/Requests
directory. Each request class inherits from the base Request
class and implements the necessary logic for processing the request, including validation, database operations, and response generation.
for more details, see the Requests Documentation.
More detailed diagrams for each module can be found in the Modules Sequence Diagrams or
docs/diagrams/
directory.
Database operations are managed through the dbModule
(or DB
namespace), which includes classes for connecting to the database, executing queries, and handling results in a multi-threaded environment using Qt's QThreadStorage
for thread-local storage. This module is built as a separate library to ensure modularity and reusability across the server application.
More detailed diagrams for each module can be found in the Modules Sequence Diagrams or
docs/diagrams/
directory.
Unit tests are written using GoogleTest. To build and run the tests, execute the following command:
Comprehensive documentation is available, detailing the purpose, design, and usage of each class and function within the project. The documentation is generated using Doxygen and can be viewed by opening the docs/html/index.html
file in a web browser or by visiting the GitHub Page site.
The project uses GitHub Actions for continuous integration. The build and test status can be monitored through the following badges:
Documentation | Pages Build Deployment | Ubuntu CI Test |
---|---|---|
Contributions are welcome! Please open an issue or submit a pull request for any changes or enhancements.
This project is licensed under the MIT License. See the LICENSE file for details.
Happy coding!