- Alex Calabrese | LinkedIn
- Matteo Lombardo
โ ๏ธ This is a Bank System created for Distributed System exam.
๐ Score: 30 with honors / 30.
We took the opportunity of this project to be able to approach the use of Python and Django as, highly demanded by the market, but unknown to us.
In addition, it was interesting to manage the dynamics of group work among colleagues by using software versioning tools.
If you want to run on your machine โก๏ธ Installation.
Framework: Vuejs.
To avoid additional dependencies, everything needed for the Frontend is included using CDNs, which is why there may be some small part of the interface that is not stylized.
For convenience in retrieving ids and verifying the correctness of the information, without having to interface directly with the database, within the homepage (server root): an additional section has been added that includes the list of all registered accounts with related information.
Framework: Python w/ Django.
To store the information, SQLite database is used.
Deposits/Withdrawals are modelled with a special "selfTransaction" table to distinguish them from the "Transaction" concept.
- The "account" table provides the "is_active" field indicating whether the account is active, or "deleted" (using the DELETE "/api/account" endpoint).
- Obviously, the parts of the system that view/manage accounts, will have no visibility into deleted accounts (is_active = 0).
- When an account is deleted, its id will continue to be present in the transaction history to preserve the integrity of transactions.
- The "transaction" table provides the "is_diverted" field that indicates whether the transaction has been cancelled (using the POST endpoint "/api/divert").
- Cancelling a transaction is a one-time operation.
- In case, one of the two accounts involved in the transaction you want to cancel should have been deleted, you will not be able to cancel that transaction.