Project Interfaces
Inventory Server
¡¤ Methods (behavior):
- getItem()
- getItemList()
- getItemDescription()
- getItemCost()
- getItemPrice()
- getItemQuantity()
- setItemDescription()
- setItemCost()
- setItemPrice()
- setItemQuantity()
- addItem()
- removeItem()
¡¤ Attributes (structure):
- Number of ongoing queries
- Number of ongoing inventory modifications
- Inventory - list of items and their IDs, descriptions, prices, costs, and quantities
¡¤ Exceptions (error messages):
- Server unavailable
- Query or modification attempt on a non-existent item
- Item out of stock
- Request exceeds maximum item quantity allowed
- Request exceeds maximum item price allowed
- Attempt to add item failed due to full inventory
- Attempt to add item with incomplete information
User Server
¡¤ Methods (behavior):
- viewProfile()
- updateProfile()
- addUser()
- removeUser()
- login()
- logout()
¡¤ Attributes (structure):
- Number of purchasers currently logged in
- Number of sellers currently logged in
- List of users and their profiles
¡¤ Exceptions (error messages):
- Server unavailable
- Invalid username or password
- Attempt to add an existing user
- Attempt to add a user with invalid parameters (i.e. username or password too long)
- Attempt to remove, update, or query a non-existent user profile
Purchase Server
¡¤ Methods (behavior):
- getPurchaseOrders()
- queryPurchaseOrder()
- confirmPurchaseOrder()
- generatePurchaseReport()
¡¤ Attributes (structure):
- Number of ongoing purchase orders
- Number of connected purchasers
- List of current purchase orders
¡¤ Exceptions (error messages):
- Server unavailable
- Timeout on purchase confirmation
- Invalid purchase order request field (price, quantity, etc.)
Sales Server
¡¤ Methods (behavior):
- getSalesOrders()
- querySalesOrder()
- confirmSalesOrder()
- generatePurchaseReport()
¡¤ Attributes (structure):
- Number of ongoing sales orders
- Number of connected sellers
- List of current sales orders
¡¤ Exceptions (error messages):
- Server unavailable
- Timeout on sales confirmation
- Invalid sales order request field (price, quantity, etc.)