Back End of the sushi bar application.
Management system of a virtual sushi booth in which each customer can consult the online menu; once registered can place the order, indicate the table to be served and pay the bill. Once the bill has been paid, the cook appears with the order to cook and serve to the customer his dinner / lunch. A room administrator has a dashboard available to manage users, customize and compose the menu with the prices of the courses, supervise the work of the cook.
- jdk 11.0.4 or higher
- maven 3.6.1 or higher
- docker 1.6.0 or higher (https://www.docker.com/)
Based on Apache Kafka & spring boot.
Starting Kafka
$ docker compose up -d
Stopping Kafka
$ docker compose down
Connecting to the docker container
$ docker exec -it sushibar-backend-kafka_kafka_1 bash (For Windows add winpty before docker)
$ /bin/kafka-topics --list --bootstrap-server localhost:29092
$ /bin/kafka-console-consumer --bootstrap-server localhost:29092 --topic orders --from-beginning
Connect to the docker kafka connector instance:
$ docker exec -it sushibar-backend-kafka_connect_1 bash
From the docker container install the kafka connector:
$ ./confluent-hub install --no-prompt mongodb/kafka-connect-mongodb:latest
Configure the kafka connector for the specific topic with postman.
- url: http://localhost:8083/connectors
- method: POST
- body:
{"name": "mongo-sink-connector",
"config": {
"connector.class":"com.mongodb.kafka.connect.MongoSinkConnector",
"connection.uri":"mongodb://root:rootpassword@mongodb_container",
"database":"order",
"collection":"sdp_order",
"topics":"orders",
"key.converter.schemas.enable":"true",
"value.converter.schemas.enable": "true",
"key.converter":"io.confluent.connect.avro.AvroConverter",
"key.converter.enhanced.avro.schema.support":true,
"key.converter.schema.registry.url": "http://schema-registry:8081",
"value.converter.schema.registry.url": "http://schema-registry:8081",
"value.converter.enhanced.avro.schema.support":true,
"value.converter": "io.confluent.connect.avro.AvroConverter"
}
}
org.apache.kafka.common.errors.InvalidConfigurationException: Schema being registered is incompatible with an earlier schema; error code: 409
Set the compatibility mode of the topic to NONE.
3 Simple Steps to set up Kafka locally using Docker
http://localhost:8080/swagger-ui/index.html
progetto: gestione di un sushi bar
consegna: 8 settimane divisi in sprint di 2 settimane ciascuno
descrizione: sistema di gestione di un baracchino del sushi virtuale in cui ogni cliente può consultare il menù online; una volta registrato può effettuare l'ordine, indicare il tavolo a cui esssere servito e pagare il conto. Una volta pagato il conto al cuoco compare la comanda da cucinare e servire al cliente la sua cena/pranzo. Un amministratore del locale ha a disposizione una dashboard per gestire gli utenti, personalizzare e comporre il menù con i prezzi delle portate, supervisionare il lavoro del cuoco.
Piano di consegna.
sprint 1
- registrazione utenti (nominativo, email, password) con conferma via mail
- accesso amministratore da backend
- accesso cuoco da backend
- home page con info del ristorante
sprint 2:
- gestione pietanze e costi da parte dell'amministratore (nome, costo, quantità, descrizione, foto)
- navigazione del menù da parte del cliente e possibilità di compore il carrello con le pietanze di cena/pranzo
sprint 3:
- processo di pagamento fake per utenti registrati e invio della comanda al cuoco
- gestione delle comande da parte del cuoco: presa in carico e completamento (fake)
- avviso al cliente (tramite mail) che la sua cena è pronta
sprint 4:
- gestione utenti da parte dell'aministratore
- cambio password per password dimenticata