Teller Cash Mgmt Solution Concept
The following document is in draft and subject to change.
All UML Diagrams created with UMLet, attached you'll find all design files.
Proposal
A Teller could hold one of the following states:
inactive
Teller is ready to be opened
active
Teller is opened and ready to use for postings and settling
pending
Teller is settled and needs to be closed
To ease the reporting of Transactions and the related Teller Journal all postings are stored in the related account and an entity Transaction is created.
A Transaction could be one of the following types:
open
opens the Teller with amounts for debit and credit
receipt
indicates a deposit
payment
indicates a withdrawal
settle
Teller gets closed but needs balance verification
close
Teller is closed and all postings are cleared to the related accounts
The Journal collects all related transaction information and provides a summary for the Teller.
Activity Diagram
Definition
Teller
Resource /tellers
HTTP Method | Query Parameter | Request Body | Response Body | HTTP Status Code |
|---|---|---|---|---|
GET | officeId | NA | List<Teller> | 200, 404, 500 |
POST | NA | Teller | NA | 201, 400, 404, 500 |
Resource /tellers/{id}
HTTP Method | Query Parameter | Request Body | Response Body | HTTP Status Code |
|---|---|---|---|---|
GET | NA | NA | Teller | 200, 404, 500 |
PUT | NA | Teller | Teller | 201, 400, 404, 500 |
PATCH | NA | TellerChangeRequest | NA | 200, 400, 404, 500 |
DELETE | NA | NA | NA | 200, 404, 500 |
Class Diagram
Because of simplicity, implementations are omitted!
Cashier
Resource /cashiers
HTTP Method | Query Parameter | Request Body | Response Body | HTTP Status Code |
|---|---|---|---|---|
GET | officeId tellerId statffId date = today | NA | List<Cashier> | 200, 404, 500 |
Resource /tellers/{id}/cashiers
HTTP Method | Query Parameter | Request Body | Response Body | HTTP Status Code |
|---|---|---|---|---|
GET | date = today | NA | List<Cashier> | 200, 404, 500 |
POST | NA | Cashier | NA | 201, 400, 404, 500 |
Resource /tellers/{id}/cashiers/{id}
HTTP Method | Query Parameter | Request Body | Response Body | HTTP Status Code |
|---|---|---|---|---|
GET | NA | NA | Cashier | 200, 404, 500 |
PUT | NA | Cashier | Cashier | 201, 400, 404, 500 |
DELETE | NA | NA | NA | 200, 404, 500 |
Class Diagram
Because of simplicity, implementations are omitted!
Transaction
Resource /tellers/{id}/transactions
HTTP Method | Query Parameter | Request Body | Response Body | HTTP Status Code |
|---|---|---|---|---|
GET | cashierId dateRange = today | NA | List<Transaction> | 200, 404, 500 |
POST | NA | Transaction | NA | 201, 400, 404, 500 |
Resource /tellers/{id}/transactions/{id}
HTTP Method | Query Parameter | Request Body | Response Body | HTTP Status Code |
|---|---|---|---|---|
GET | NA | NA | Transaction | 200, 404, 500 |
Class Diagram
Because of simplicity, implementations are omitted!
Journal
Resource /journals
HTTP Method | Query Parameter | Request Body | Response Body | HTTP Status Code |
|---|---|---|---|---|
GET | officeId tellerId cashierId dateRange = today | NA | List<Journal> | 200, 404, 500 |
Resource /teller/{id}/journals
HTTP Method | Query Parameter | Request Body | Response Body | HTTP Status Code |
|---|---|---|---|---|
GET | cashierId dateRange = today | NA | List<Journal> | 200, 404, 500 |
Class Diagram
Because of simplicity, implementations are omitted!
Query Parameters
dateRange
A date range parameter could be one date (eg. 2014-05-07) and will return all transaction of this day or, it could be a range (eg. 2014-04-01..2014-04-30) and will return all transaction within this range including the end date.