Skip to content

A travel planning application built using Spring Boot

Notifications You must be signed in to change notification settings

vitorstaub/plan.ner-nlw

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Plan.ner

Java SpringBoot AWS Flyway postgres docker actions kubernetes

Getting StartedAPI EndpointsApplication ArchitectureDatabaseKubernetes

About

This project is an API built using Java, Java Spring.

The API emulates a travel planning application. The API has been deployed on AWS utilizing Amazon EKS.

Getting started

Prerequisites

  • Cloning de repository
git clone https://github.com/vitorstaub/plan.ner-nlw.git

cd plan.ner-nlw
  • Install dependencies with Maven
  • Install Docker

Starting

- Start the application with Docker
docker-compose up -d

Accessible at

http://localhost:8081

API Endpoints

The API provides the following endpoints:

POST /trips - Register a new trip.

GET /trips/{tripId} - Retrieve a specific trip by ID.

PUT /trips/{tripId} - Update a trip.

GET /trips/{tripId}/confirm - Confirm a trip.

POST /trips/{tripId}/activities - Register a new activity to a trip.

GET /trips/{tripId}/activities - Retrieve all activities.

POST /trips/{tripId}/invite - Invite a participant to a trip.

GET /trips/{tripId}/invite - Retrieve all participants.

POST /trips/{tripId}/links - Register a new link to a trip.

GET /trips/{tripId}/links - Retrieve all links.

Application Architecture

Image Example

Database

The project uses Postgres. The necessary database migrations are managed using Flyway.

Start with Kubernetes

Prerequisites

Starting

k3d cluster create planner-nlw --servers 2 --api-port localhost:6443 // create a cluster in docker

kubectl cluster-info // show cluster information

kubectl create namespace planner  // create a namespace

kubectl apply -f k8s -n planner // run kubernetes files

To manage Kubernetes clusters with dashboards install -> Lens

Contributing

When contributing to this project, please the existing code style, commit conventions, and submit your changes in a separate branch.