- Create a
Vending machine
console program. The data should be persisted in a file. (M1) Milestone 1 - Extend the M1 program to persist the data into a MySql database. (M2) Milestone 2
- Extend the M2 program to create a Rest API instead of console client. (M3) Milestone 3
- Provide a tool for suppliers to update in relatime their prices to different vending machines.
Create a vending machine console application that will persist the data in a file. The data must contains: "products info", "all transactions" and "supplier information".
- A supplier can introduce new product
- A supplier can change product information(name, description, price)
- A customer is able to buy throu console application a product
- OOP principles
- Java 1.8 (Collections, Functional Interfaces, Threads, Java IO, Exceptions)
- Serialize/Deserialise object to a file(Persist state of a program)
Upgrade the M1
application with basic patterns
where applies and persist the data into a mysql
database.
- Change the persistence layer from a file to mysql db
- Decouople domain data from the project.
- Write your own DAO implementation for the product entity. The CRUD abstract class must apply for the further entities as well.
- Apply basic patterns where apply.
Create a spring boot application that will provide vending machine
functionality through a rest api
and persist data into mysql
db.
- Use the rest api through http to be able to create/update/delete/get product data
- Use the rest api through http to be able to buy products
- The api should consider REST API conventions.
- Spring
- Inversion Of Control Pattern
- Rest API concepts
- JPA
Provide to suppliers the possibility to update their prices on a particular vending machine
.
- A supplier can connect using a client to a vending machine pipe and push a message related to price upgrade on a particular product.
- The application must have a router using
apache flink
to process data and persist the updates accordingly to a database. The processing must validate price information berfore inserting to db.