Skip to content

Samuel-Ricardo/codelivery_api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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   |   


| 🛰️ 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


🏗️ | 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:


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]



🚧 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 clone "git@github.com:Samuel-Ricardo/codelivery_api.git"

Make Pull

  $ git pull "git@github.com: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

  # 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

  #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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published