Giter Site home page Giter Site logo

banksystem's Introduction

Welcome to our awesome Bank! ๐Ÿ’ธ

๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป Group

  • Alex Calabrese | LinkedIn
  • Matteo Lombardo

๐Ÿ“œ Description

โš ๏ธ 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.

๐ŸŽจ Design Choices

๐Ÿ–Œ ย  Frontend

Framework: Vuejs.

๐Ÿ‚ ย  Dependencies

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.

โž• ย  Additions

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.

๐Ÿ Backend

Framework: Python w/ Django.

๐Ÿ—ƒ ย  Database

To store the information, SQLite database is used.

๐Ÿ’ณ ย  Deposits/Withdrawals

Deposits/Withdrawals are modelled with a special "selfTransaction" table to distinguish them from the "Transaction" concept.

โŒ ย  Deleted Accounts

  • 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.

โŒ ย  Cancelled Transactions (diverted)

  • 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.

banksystem's People

Contributors

alexcalabrese avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.