Skip to content

SnowGlobe5/banking-system

Repository files navigation

Banking System

Studenti

  • 865858 - Sabrina Guidotti
  • 874950 - Mattia Zirpoli

Tecnologie utilizzate

  • Python3 - Django (con libreria xhtml2pdf)
  • SQLite

Note progettuali:

  • I tipi di body supportati sono: application/x-www-form-urlencoded e application/json
  • Un account quando si esegue Account Delete (dettagli in seguito), non viene eliminato, ma invalidato.
    • I dati personali e il bilancio dell'account vengono modificati, (Account Deleted e bilancio a 0).
    • Non verrà visualizzato l'account in Account List, non sarà possibile visualizzarlo in Account Detail, ne modificarlo e eseguire transazioni (anche divert), depositi o prelievi che lo riguardano.
    • Viene mantenuto solo per fini storici nella visualizzazione delle transazioni di altri account.
  • Abbiamo deciso di visualizzare nei trasferimenti non solo il destinatario, ma anche il mittente. E' inoltre presente il tipo di transazione.
  • Abbiamo aggiunto una nuova estensione che rende possibile il download del pdf dell'estratto conto (account balance) di un utente, nel formato spesso usato nei documenti bancari
    • Endpoint: /balance/{account_id}

L'api è documentata nella sua interezza nel file api-docs.md

Frontend Web

Pagina Principale

La pagina principale dell'applicazione è formata da un singolo campo di ricerca che prende un ID di 20 caratteri esadecimali.

Il form, tramite l'attributo pattern dell'elemento HTML input, controlla che l'ID sia nel formato accettato, non permettendo di inviare una richiesta di ricerca altrimenti.

Una volta che si è inserito un ID valido, viene utilizzata l'API di Javascript fetch per inviare una richiesta all'endpont /api/account/{ID} e popolare dinamicamente e senza aggiornare la pagina la tabella delle transazioni associate all'account con l'ID corrispondente.

Se l'ID è in un formato valido ma non viene trovato nel server, mostra un errore.

È possibile inoltre generare un PDF dell'estratto conto, con relative transazioni, cliccando sul tasto apposito nella pagina.

La richiesta viene inviata all'endpoint /balance/{ID}, e viene generato il pdf tramite la libreria python "xhtml2pdf".

Pagina /transfer

L'interfaccia è formata da una seconda pagina (/transfer) , che è formata da tre campi:

  • Sender
  • Receiver
  • Amount

I primi due campi accettano un UUID con le stesse modalità precedenti, mentre il campo amount accetta solo input numerici non-negativi.

I tre campi mostrano dinamicamente errori in modo da guidare l'utente nella compilazione, e una volta compilati correttamente, sempre tramite l'API fetch viene mandata una richiesta POST all'endpoint /api/transfer, con i valori in formato JSON all'interno del body.

Una volta completata la richiesta, viene mostrato un alert sulla pagina che segnala che la transazione è avvenuta con successo, mostrando anche il numero della transazione, o mostrando errore nel caso essa sia andata storta.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors