Skip to content

soat-fiap/FIAP.TechChallenge.ByteMeBurger

Repository files navigation

FIAP Tech Challenge - ByteMeBurger API

CI

Description

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.

Tech challenge deliverables

You can find all Phase 1 deliverables on the Wiki page

Getting Started

Prerequisites

  • Docker
  • .NET SDK
  • Optionally, an IDE such as Visual Studio or VSCode

Setup

  1. Clone the repository:

    git clone https://github.com/soat-fiap/FIAP.TechChallenge.ByteMeBurger.git
    cd FIAP.TechChallenge.ByteMeBurger
  2. Configure environment variables

    • Configure .env file. You can use the .env.sample
    • Remember to create the .env file
  3. Start the services using Docker:

     docker-compose up -d
  4. Service health (check if the service is healthy before testing)

    http:https://localhost:8080/healthz

  5. To verify the existing endpoints, go to

    http:https://localhost:8080/swagger/index.html

  6. 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

  7. Logs should (not guaranteed) be available in here http:https://localhost:8081

  8. Stop the services using Docker:

     docker-compose down

Running with Kubernetes locally

Prerequisites

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

Database

docker build -t techchallenge/db:latest -f .\database\Dockerfile .\database
docker image push techchallenge/db:latest
    image: techchallenge/db:latest

API

docker build -t techchallenge/api:latest -f .\src\FIAP.TechChallenge.ByteMeBurger.Api\Dockerfile .
docker image push techchallenge/api:latest
    image: techchallenge/api:latest

Setup kubernetes

Run deploy.ps1 script to deploy the application to minikube

Use tunnel and port-forward to access the application

To access Seq from host

kubectl port-forward service/svc-seq 30008:80

To access the API from host

minikube tunnel

To forward mercado pago webhook notifications to host

whcli forward --token=f513d4a6-4dbd-4e32-93f5-b35376f33c89 --target=http:https://localhost/api/notifications/mercadopago

Cleanup

Once you are done, you can stop the services running rollback.ps1script