Aplicația a fost modularizată cu ajutorul următoarelor pachete:
-
AppEBankingApp, clasa principală a aplicației (Singleton), care se ocupă de inițializarea aplicației și de gestionarea interacțiunii cu utilizatorulAppManager- se ocupă de gestionarea serviciilor aplicațieiProxy- interfață ce definește funcționalitatea de logging a acțiunilor efectuate de utilizatorii aplicației, respectiv a erorilor întâmpinate
-
EntitiesAccountUserStock
-
Exceptions- conține excepțiile custom definite în cadrul aplicației -
ParsersCommandParser- se ocupă de parsarea fișierelor de tip commands.txtExchangeRatesParser- se ocupă de parsarea fișierelui exchangeRates.csv
-
EntityLister- conține funcționalitățile de listare a informațiilor despre utilizatori și portofoliile acestora -
PersonalActions// TODO -
Transactions//TODO
- folosit pentru crearea unei singure instanțe a clasei App
- folosit pentru a media accesul la serviciile reale ale aplicației (Transaction, PersonalAction)
- folosit pentru implementarea funcționalității de notificare a utilizatorilor în cazul în care se modifică starea unui cont
- folosit pentru a itera prin intrările Map-ului asociat prețurilor acțiunilor
- folosit pentru a separa logica de procesare a comenzilor de interfața cu utilizatorul
- Logging feature - application logs all the actions performed by the users
- Transaction history - users can see the history of transactions performed on their accounts
- Additional error handling - application handles corner cases such as unregistered users, invalid commands, etc.
- Notifications - users are notified when their account balance is below a certain threshold