An open API service indexing awesome lists of open source software.

https://github.com/samuel-ricardo/codelivery_api


https://github.com/samuel-ricardo/codelivery_api

Last synced: 3 months ago
JSON representation

Awesome Lists containing this project

README

        

# Codelivery API





🚀 🟨 Full Cycle Event - 2023 🟨 🚀


Application developed during a Programmer Event, the Full Cycle Immersion promoted by @FullCycleSchool

#


|  
Overview   |   
Technologies   |   
Project   |  
Routes   |   
Run   |  
Author   |   

#


| :artificial_satellite: About:


This project is a application of a complete Full Cycle project, with amazing technologies like NextJS for front-end, NestJS for back-end, MongoDB database, GO Lang for microsservice, Docker & Kubernetes for devops, metrics with Elastic Search & Kibana, Message / Event Driven Architeture with Kafka and more.


The purpose of this Back-End is work as intermediator of front-end application and all travel related services and datas with Mongo Data Base, it will send request to start a travel and will monmitoring all data, handling and sending it back to fron-end as data stream, that will have the state and relevant informations about it.


This application use NestJS to manage all infrastructure because it's very good for work with microsservices and make easly connections with technologies used on this full cycle project like Kafka and work good with serve sent events (Event Driven Architeture).


I use Kubernetes that is a container orchestration system that can be used to deploy and manage containers. It is a way to manage the running containers of a system, and to let the system run in a container environment.

>




- This Back-End is hosted on Google Cloud Platform - [GCP] With Kubernetes
- Current Version: 1.0.0


#

- Front-End : NextJS | [ [repositories](https://github.com/Samuel-Ricardo/codelivery-site) ]
- microsservice : GO Lang | [ [repositories](https://github.com/Samuel-Ricardo/travel_simulator/tree/main) ]
- Back-End : NestJS | [ [repositories](https://github.com/Samuel-Ricardo/codelivery_api) ]

#



:building_construction: | Technologies and Concepts Studied:

>

- NestJS
- Websockets
- MongoDB
- SocketIO
- Typescript
- Mongoose
- JS
- Test
- Jest
- Kafka
- Kubernetes
- Docker
- Perfomance
- Event Driven Architeture
- Scalability
- Real Time

> Among Others...


#


💻 | Application:

- Front-End : NextJS | [ [repositories](https://github.com/Samuel-Ricardo/codelivery-site) ]
- Back-End : NestJS | [ [repositories](https://github.com/Samuel-Ricardo/codelivery_api) ]
- microsservice : GO Lang | [ [repositories](https://github.com/Samuel-Ricardo/travel_simulator/tree/main) ]
- Devops : Kafka | Elastic - [ [repositories](https://github.com/Samuel-Ricardo/travel_simulator/tree/main) ]



In Resume this project have a Microsservice responsible to start and manage a travel returning the travel data in real time by streams, kafka recive this data and garant that all comunications between applications work together without data loses and with scalable Perfomance of Kafka platform.


The Back-End send by kafka a event to microsservice that trigger a start of a route, after that, the route data like position and if is it finished are send to kafka, the back end listen the event by kafka and get data to handle it and send to front end, that render all date with the travel route and real time position, cleaning it when finished.


All data is tracked and stored in Elastic Search with kafka intermediator that provide by your platform the Kibana that create amazing views to handle with Data Analytics building beautiful graphics for example.


This application is hosted on Google Cloud Platform with Kubernetes - [GCP]


>


#



## :construction: API Routes:

Base URL - http://localhost:3000


- Travel Routes - /routes

- Get all Routes - GET - /


- Start a travel - POST - /[id]/start



#

#


👨‍💻 | How to use


### Open your Git Terminal and clone this repository

```git
$ git clone "[email protected]:Samuel-Ricardo/codelivery_api.git"
```

### Make Pull

```git
$ git pull "[email protected]:Samuel-Ricardo/codelivery_api.git"
```


This application use `Docker` so you dont need to install and cofigurate anything other than docker on your machine.

>


Navigate to project folder ` $ cd ./codelivery_api/ ` and run it using ` docker-compose `

```bash

# After setup docker environment just run this commmand on root project folder:

$ docker-compose up --build # For First Time run this command

$ docker-compose up # to run project

```

```bash

#Apps Running on:

$ API: http://localhost:3000

$ Mongo: http://localhost:8081

See more: ./codelivery_api/docker-compose.yaml

```



👨‍💻 | How to run the full project

First, you need to setup the Kafka platform with the Travel Microsservice, click on image bellow to setup it
>

Now, you need to setup the NestJS API, click on image bellow to setup it
>

Now, you can setup this NextJS App, click on image bellow to setup it
>

#


#


:octocat: | Author:

>

- Samuel Ricardo