{"id":20314172,"url":"https://github.com/samuel-ricardo/travel_simulator","last_synced_at":"2025-08-27T17:15:11.596Z","repository":{"id":153372534,"uuid":"619934753","full_name":"Samuel-Ricardo/travel_simulator","owner":"Samuel-Ricardo","description":null,"archived":false,"fork":false,"pushed_at":"2023-06-18T16:19:01.000Z","size":5612,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-14T00:55:37.607Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Samuel-Ricardo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-27T17:48:52.000Z","updated_at":"2023-04-18T13:18:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"a162fdc9-920b-4912-8192-dc039549156b","html_url":"https://github.com/Samuel-Ricardo/travel_simulator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Samuel-Ricardo/travel_simulator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Samuel-Ricardo%2Ftravel_simulator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Samuel-Ricardo%2Ftravel_simulator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Samuel-Ricardo%2Ftravel_simulator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Samuel-Ricardo%2Ftravel_simulator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Samuel-Ricardo","download_url":"https://codeload.github.com/Samuel-Ricardo/travel_simulator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Samuel-Ricardo%2Ftravel_simulator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272355882,"owners_count":24920192,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-27T02:00:09.397Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T18:14:15.003Z","updated_at":"2025-08-27T17:15:06.566Z","avatar_url":"https://github.com/Samuel-Ricardo.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Travel Simulator\n\n\u003cp align=\"center\"\u003e \n  \u003ca href=\"https://fullcycle.com.br/\" target=\"_blank\"\u003e\n    \u003cimg width=\"auto\" src=\"https://miro.medium.com/v2/resize:fit:650/1*HkZDCVL7uUpYxOqpR5e_wg.png\"/\u003e\n  \u003c/a\u003e \n\u003c/p\u003e\n\n\u003ch4 align=\"center\" \u003e🚀 🟨 Full Cycle Event - 2023 🟨 🚀\u003c/h4\u003e\n\n\u003ch4 align=\"center\"\u003e\n  Application developed during a Programmer Event, the \u003ca style=\"color: #8a4af3;\" href=\"https://github.com/search?q=imers%C3%A3o%20full%20cycle\u0026type=repositories\" target=\"_blank\"\u003eFull Cycle Immersion\u003c/a\u003e promoted by \u003ca style=\"color: #8a4af3;\" href=\"https://fullcycle.com.br/\" target=\"_blank\"\u003e@FullCycleSchool\u003c/a\u003e\n\u003c/h4\u003e\n\n#\n\n\u003cp align=\"center\"\u003e\n  |\u0026nbsp;\u0026nbsp;\n  \u003ca style=\"color: #8a4af3;\" href=\"#project\"\u003eOverview\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca style=\"color: #8a4af3;\" href=\"#techs\"\u003eTechnologies\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca style=\"color: #8a4af3;\" href=\"#app\"\u003eProject\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\n  \u003ca style=\"color: #8a4af3;\" href=\"#run-project\"\u003eRun\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\n  \u003ca style=\"color: #8a4af3;\" href=\"#author\"\u003eAuthor\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n\u003c/p\u003e\n\n#\n\n\u003ch1 align=\"center\"\u003e\n  \n  \u003ca href=\"https://github.com/Samuel-Ricardo\"\u003e\n    \u003cimg src=\"https://img.shields.io/static/v1?label=\u0026message=Samuel%20Ricardo\u0026color=black\u0026style=for-the-badge\u0026logo=GITHUB\"/\u003e\n  \u003c/a\u003e\n\n  \u003ca herf=\"https://www.instagram.com/samuel_ricardo.ex/\"\u003e\n    \u003cimg src='https://img.shields.io/static/v1?label=\u0026message=Samuel.ex\u0026color=black\u0026style=for-the-badge\u0026logo=instagram'/\u003e \n  \u003c/a\u003e\n\n  \u003ca herf='https://www.linkedin.com/in/samuel-ricardo/'\u003e\n    \u003cimg src='https://img.shields.io/static/v1?label=\u0026message=Samuel%20Ricardo\u0026color=black\u0026style=for-the-badge\u0026logo=LinkedIn'/\u003e \n  \u003c/a\u003e\n\n\u003c/h1\u003e\n\n\u003cbr\u003e\n\n\u003cp id=\"project\"/\u003e\n\n\u003ch2\u003e  | :artificial_satellite: About:  \u003c/h2\u003e\n\n\u003cp align=\"justify\"\u003e\n    This project is a application of a complete Full Cycle project, with amazing technologies like NextJS for front-end, NestJS for back-end, PostgreSQL database, GO Lang for microsservice, Docker \u0026 Kubernetes for devops, metrics with Elastic Search \u0026 Kibana, Message / Event Driven Architeture with Kafka and more.\n\u003c/p\u003e\n\n\u003cimg src=\"./readme_files/techs.png\"/\u003e\n\n\u003cp align=\"justify\"\u003e\n  The propurse of this microsservice is only one, simulate and provide travels routes for all applications of this project, for this comunication between apps, i use Kafka that is a amazing solution to handle data traffic using events, super scaleble, garant the safety of every byte of data whithout data loses.\n\u003c/p\u003e\n\n\u003cp align=\"justify\"\u003e\n  The Kubernetes manages this applications on Google Cloud Platform, with a amazing peformance and scalability. Kubernetes is a container orchestrator thats ensures resilience to your application using the most advanced strategies for handle your applications\n\u003c/p\u003e\n\n\u003cp align=\"justify\"\u003e\n   All goes as data stream having Kafka as intermediator thats ensures no loses keeping the original order of the message even though something crash, when it back to work will run as if nothing has happen, it all is sended to back-end that processes them and send to front-end. All data have backup in Elastic Search thats in addition to besides being a Powerfull Search Engine, it is also a full ecosystem that includes Kibana a full Data Analytics that allow you to use data provideded by Elastic to build powerfull graphics and Analytics\n\u003c/p\u003e\n\n\u003e \u003ca href=\"https://samuel-ricardo.github.io/\"\u003e \u003cimg src=\"./readme_files/app_preview.png\"\u003e \u003c/a\u003e\n\n  \u003cbr\u003e\n  \n- This Microsservice is hosted on Google Cloud Platform - [GCP] with Kubernetes \n- Current Version: \u003cb\u003e 1.0.0 \u003c/b\u003e\n\n\u003cbr\u003e\n\n\u003e \u003ca target=\"_blank\" href=\"https://cloud.google.com/?hl=pt-br\"\u003e \u003cimg width=\"128px\" src=\"https://i.pcmag.com/imagery/reviews/02yVL9f8Jw1atwoG6sgFZDH-7..v1569482492.jpg\"/\u003e \u003c/a\u003e\n\n\u003cbr\u003e\n\n#\n\n\u003cbr/\u003e\n\n- Front-End : NextJS | [ [repositories](https://github.com/Samuel-Ricardo/codelivery-site) ]\n- Back-End : NestJS | [ [repositories](https://github.com/Samuel-Ricardo/codelivery_api) ]\n- microsservice : GO Lang | [ [repositories](https://github.com/Samuel-Ricardo/travel_simulator/tree/main) ]\n\n#\n\n\u003cbr\u003e\n\n\u003ch2 id=\"techs\"\u003e\n  :building_construction: | Technologies and Concepts Studied:\n\u003c/h2\u003e\n\n\u003e \u003ca href='https://go.dev/'\u003e \u003cimg width=\"64px\" src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/go/go-original-wordmark.svg\" /\u003e \u003c/a\u003e\n\n- Go Lang\n- Kafka\n- Kubernetes\n- Docker\n- Elastic Search\n- Kibana\n- Data Analytics\n- Perfomance\n- Event Driven Architeture\n- Scalability\n- Real Time\n\n\u003e Among Others...\n\n\u003cbr\u003e\n\n#\n\n\u003ch2 id=\"app\"\u003e\n  💻 | Application:\n\u003c/h2\u003e\n\n\u003cimg src=\"./readme_files/scheme.png\" /\u003e\n| Project Scheme\n\n\u003cimg src=\"./readme_files/deploy.png\"/\u003e\n| Google Cloud Platform\n\n\u003cimg src=\"./readme_files/confluent.png\"/\u003e\n| Confluent Dashboard - [Kafka]\n\n\u003cimg src=\"./readme_files/elastic_platform.png\"/\u003e\n| Elastic Platform\n\n\u003cimg src=\"./readme_files/kibana.png\"/\u003e\n| Kibana Data Analytics\n\n#\n\n\u003ch2 id=\"run-project\"\u003e \n   👨‍💻 | How to use\n\u003c/h2\u003e\n\n\u003cbr\u003e\n\n### Open your Git Terminal and clone this repository\n\n```git\n  $ git clone \"git@github.com:Samuel-Ricardo/travel_simulator.git\"\n```\n\n### Make Pull\n\n```git\n  $ git pull \"git@github.com:Samuel-Ricardo/travel_simulator.git\"\n```\n\n\u003cbr\u003e\n\nThis application use `Docker` so you dont need to install and cofigurate anything other than docker on your machine.\n\n\u003e \u003ca target=\"_blank\" href=\"https://www.docker.com/\"\u003e \u003cimg width=\"48px\" src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/docker/docker-plain-wordmark.svg\" /\u003e \u003c/a\u003e\n\n\u003cbr\u003e\n\n\u003cp align=\"justify\"\u003e\n\nFirst you need to up Apache Kafka and Elastic Search environment, we will use docker for this. so let's to apache folder `$ cd ./.docker/apache_kafka/` and run it.\n\n\u003c/p\u003e\n\n```bash\n\n  # Once docker is configured:\n\n  $ cd ./.docker/apache_kafka/\n  $ docker-compose up\n\n\n```\n\n\u003cp align=\"justify\"\u003e\n\nOnce Apache Kafka, Confluent Dashboard, Zookeper, Elastic Search and Kibana are up, we can start the project :D (to go back for root project folder: `$ cd ../../`)\n\n\u003c/p\u003e\n\n```bash\n\n  # After setup docker environment just run this commmand on root project folder:\n\n  $ docker-compose up --build   # For First Time run this command\n\n  $ docker-compose up           # to run project\n\n\n```\n\n```bash\n\n  #Apps Running on:\n\n  $ Elastic Search: http://localhost:9200\n\n  $ Kibana: http://localhost:5601\n\n  $ [Kafka] Confluent Dashboard: http://localhost:9021\n\n  See more: ./.docker/apache_kafka/docker-compose.yaml\n\n```\n\n\u003cbr\u003e\n\n\u003ch2\u003e \n   👨‍💻 | How to run the full project\n\u003c/h2\u003e\n\nFirst, you need to setup the Kafka platform with the Travel Microsservice, click on image bellow to setup it\n\n\u003e \u003ca target=\"_blank\" href=\"https://github.com/Samuel-Ricardo/travel_simulator#------how-to-use\"\u003e \u003cimg width=\"128px\" src=\"https://cdn.thenewstack.io/media/2022/05/57bb2a1f-golang.png\"/\u003e \u003c/a\u003e\n\nNow, you need to setup the NestJS API, click on image bellow to setup it\n\n\u003e \u003ca target=\"_blank\" href=\"https://github.com/Samuel-Ricardo/codelivery_api#------how-to-use\"\u003e \u003cimg width=\"128px\" src=\"https://imgs.search.brave.com/hM_dWTDZ7a9nUL-Xf70pL9QQeiO6v0_q0rHk8NQlNSU/rs:fit:200:200:1/g:ce/aHR0cHM6Ly9uZXN0/anMuY29tL2ltZy9u/ZXN0LW9nLnBuZw\"/\u003e \u003c/a\u003e\n\nNow, you can setup this NextJS App, click on image bellow to setup it\n\n\u003e \u003ca target=\"_blank\" href=\"https://github.com/Samuel-Ricardo/codelivery-site#run-project\"\u003e \u003cimg width=\"128px\" src=\"https://pbs.twimg.com/card_img/1669374288581853186/RoVDMNTV?format=jpg\u0026name=4096x4096\"/\u003e \u003c/a\u003e\n\n#\n\n\u003cbr\u003e\n\u003cbr\u003e\n\n#\n\n\u003ch2 id=\"author\"\u003e\n  :octocat: | Author:  \n\u003c/h2\u003e\n\n\u003e \u003ca target=\"_blank\" href=\"https://www.linkedin.com/in/samuel-ricardo/\"\u003e \u003cimg width=\"350px\" src=\"https://github.com/Samuel-Ricardo/bolao-da-copa/blob/main/readme_files/IMG_20220904_220148_188.jpg?raw=true\"/\u003e \u003cbr\u003e \u003cp\u003e \u003cb\u003e - Samuel Ricardo\u003c/b\u003e \u003c/p\u003e\u003c/a\u003e\n\n\u003ch1\u003e\n  \u003ca herf='https://github.com/Samuel-Ricardo'\u003e\n    \u003cimg src='https://img.shields.io/static/v1?label=\u0026message=Samuel%20Ricardo\u0026color=black\u0026style=for-the-badge\u0026logo=GITHUB'\u003e \n  \u003c/a\u003e\n  \n  \u003ca herf='https://www.instagram.com/samuel_ricardo.ex/'\u003e\n    \u003cimg src='https://img.shields.io/static/v1?label=\u0026message=Samuel.ex\u0026color=black\u0026style=for-the-badge\u0026logo=instagram'\u003e \n  \u003c/a\u003e\n  \n  \u003ca herf='https://twitter.com/SamuelR84144340'\u003e\n    \u003cimg src='https://img.shields.io/static/v1?label=\u0026message=Samuel%20Ricardo\u0026color=black\u0026style=for-the-badge\u0026logo=twitter'\u003e \n  \u003c/a\u003e\n  \n   \u003ca herf='https://www.linkedin.com/in/samuel-ricardo/'\u003e\n    \u003cimg src='https://img.shields.io/static/v1?label=\u0026message=Samuel%20Ricardo\u0026color=black\u0026style=for-the-badge\u0026logo=LinkedIn'\u003e \n  \u003c/a\u003e\n\u003c/h1\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamuel-ricardo%2Ftravel_simulator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamuel-ricardo%2Ftravel_simulator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamuel-ricardo%2Ftravel_simulator/lists"}