This repository contains the source code for the ByteMeBurger API, part of the FIAP Tech Challenge. The API is designed to manage a burger restaurant's operations, including order placement, customer registration, and product management. The recent updates introduce a new endpoint for customer registration and enhance various aspects of the application, such as error handling, data models, and service configurations.
- You can find all Phase 1 deliverables on the Wiki page
- Phase 2 Deliverables
- Business requirements
- Infrastructure
- Diagrams
- Testing locally
- to get some help with application flow testing, click here
- Docker
- .NET SDK
- Optionally, an IDE such as Visual Studio or VSCode
-
Clone the repository:
git clone https://github.com/soat-fiap/FIAP.TechChallenge.ByteMeBurger.git cd FIAP.TechChallenge.ByteMeBurger
-
Configure environment variables
- Configure .env file. You can use the .env.sample
- Remember to create the
.env
file
-
Start the services using Docker:
docker-compose up -d
-
Service health (check if the service is healthy before testing)
-
To verify the existing endpoints, go to
-
If you want to quickly seed the database with fake data and test some of the endpoints use the FIAP_TechChallenge_ByteMeBurger-endpoints.http file
-
Logs should (not guaranteed) be available here https://localhost:8081
-
Stop the services using Docker:
docker-compose down
- Docker with Minikube configured
- webhook.site token
To Use local docker images in minikube, you can use the following commands to Push directly to the in-cluster Docker daemon (docker-env)
minikube start
minikube -p minikube docker-env --shell powershell | Invoke-Expression
docker build -t techchallenge/db:latest -f .\database\Dockerfile .\database
docker image push techchallenge/db:latest
- update the image in pod-mysql.yaml file
image: techchallenge/db:latest
docker build -t techchallenge/api:latest -f .\src\FIAP.TechChallenge.ByteMeBurger.Api\Dockerfile .
docker image push techchallenge/api:latest
- update the image in deployment-api.yaml file
image: techchallenge/api:latest
Run deploy.ps1 script to deploy the application to minikube
Use tunnel and port-forward to access the application
kubectl port-forward service/svc-seq 30008:80
minikube tunnel
whcli forward --token=f513d4a6-4dbd-4e32-93f5-b35376f33c89 --target=https://localhost/api/notifications/mercadopago
You can use the postman collection for testing
To test mercado pago integration don't forget to add your credentials to the secret-mercadopago file and the notification url on configmap-api
Once you are done, you can stop the services running rollback.ps1 script