{"id":26742251,"url":"https://github.com/oluizeduardo/jfood","last_synced_at":"2026-04-10T13:31:43.406Z","repository":{"id":284853131,"uuid":"956248644","full_name":"oluizeduardo/jfood","owner":"oluizeduardo","description":"A microservice-based restaurant management system built with Java and Spring Boot.","archived":false,"fork":false,"pushed_at":"2025-11-15T18:06:44.000Z","size":485,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-11-15T20:22:37.163Z","etag":null,"topics":["docker","flyway","java","keycloak","maven","microservices","postgresql","rabbitmq","rest-api","spring-boot"],"latest_commit_sha":null,"homepage":"","language":"Java","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/oluizeduardo.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-28T00:04:09.000Z","updated_at":"2025-11-15T18:06:43.000Z","dependencies_parsed_at":"2025-03-28T02:35:55.588Z","dependency_job_id":"1d471c4b-949b-489b-8146-33f9e8d982e3","html_url":"https://github.com/oluizeduardo/jfood","commit_stats":null,"previous_names":["oluizeduardo/jfood"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/oluizeduardo/jfood","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oluizeduardo%2Fjfood","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oluizeduardo%2Fjfood/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oluizeduardo%2Fjfood/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oluizeduardo%2Fjfood/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oluizeduardo","download_url":"https://codeload.github.com/oluizeduardo/jfood/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oluizeduardo%2Fjfood/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31645243,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T07:40:12.752Z","status":"ssl_error","status_checked_at":"2026-04-10T07:40:11.664Z","response_time":98,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["docker","flyway","java","keycloak","maven","microservices","postgresql","rabbitmq","rest-api","spring-boot"],"created_at":"2025-03-28T06:17:14.018Z","updated_at":"2026-04-10T13:31:43.320Z","avatar_url":"https://github.com/oluizeduardo.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🍔 JFood\n\nO JFood é uma aplicação moderna desenvolvida em arquitetura de microserviços, focada no gerenciamento completo de restaurantes. Ele oferece funcionalidades essenciais para operações como cadastro e autenticação de usuários, cadastro de produtos e controle de pedidos.\n\nO sistema é composto por um **API Gateway**, um **Service Registry** e diversos microserviços independentes. Alguns desses serviços comunicam-se de forma assíncrona por meio de uma fila **RabbitMQ**, garantindo escalabilidade e desacoplamento entre os módulos.\n\nA autenticação é realizada utilizando o **Keycloak**, com suporte à geração de tokens de acesso (OAuth2) e validação de roles para controle de permissões.\n\n## 📚 Sumário\n- [🧩 Arquitetura da Solução](#arquitetura-da-solução)\n- [🚀 Tecnologias Utilizadas](#tecnologias-utilizadas)\n- [🛠️ Instalação e Execução](#instalação-e-execução)\n- [📬 Testes de API](#testes-de-api)\n\n## Arquitetura da Solução\n![](imgs/JFood-architecture.PNG)\n\n## Tecnologias Utilizadas\n![Java](https://img.shields.io/badge/Java-blue)\n![Spring Boot](https://img.shields.io/badge/Spring%20Boot-brightgreen)\n![Spring Security](https://img.shields.io/badge/Spring%20Security-brightgreen)\n![Spring Data JPA](https://img.shields.io/badge/Spring%20Data%20JPA-brightgreen)\n![Spring Eureka](https://img.shields.io/badge/Spring%20Eureka-brightgreen)\n![Maven](https://img.shields.io/badge/Maven-red)\n![PostgreSQL](https://img.shields.io/badge/PostgreSQL-316192?logo=postgresql\u0026logoColor=white)\n![Flyway](https://img.shields.io/badge/Flyway-cc0000)\n![Keycloak](https://img.shields.io/badge/Keycloak-0a58ca)\n![Docker](https://img.shields.io/badge/Docker-%230db7ed?logo=docker\u0026logoColor=white)\n![RabbitMQ](https://img.shields.io/badge/RabbitMQ-ff6600)\n\n## Instalação e Execução\n1. **Clone o repositório:**\n   ```sh\n   git clone https://github.com/oluizeduardo/jfood.git\n   cd jfood\n   ```\n2. **Configure as variáveis de ambiente:**\n- Crie um arquivo `.env` com base no exemplo disponível e edite-o com suas credenciais e configurações desejadas:\n   ```sh\n   cp .env.example .env\n   ```\n\n3. **Suba os serviços auxiliares com Docker Compose:**\n   ```sh\n   docker-compose up -d\n   ```\n\n4. **Acesse os serviços auxiliares nos seguintes endereços:**\n\n   | Serviço     | URL                     | Usuário / Senha             |\n   |-------------|-------------------------|-----------------------------|\n   | PostgreSQL  | http://localhost:5432   | conforme `.env`             |\n   | PgAdmin     | http://localhost:7000   | conforme `.env`             |\n   | Keycloak    | http://localhost:7001   | conforme `.env`             |   \n   | SonarQube   | http://localhost:7002   | admin / admin               |\n   | Jenkins     | http://localhost:7003   | senha gerada no container   |\n   | RabbitMQ    | http://localhost:7004   | `guest`/`guest`             |\n   | Redis       | http://localhost:6379   |                             |\n\n   **Para parar e remover os containers:**\n   ```sh\n   docker-compose down\n   ```\n5. **Executando os serviços do JFood:**\n\n   Inicie os serviços principais do JFood seguindo a ordem abaixo:\n   - ms-service-registry (Eureka Server)\n   - api-gateway\n   - ms-users\n   - ms-products\n   - ms-notification\n   - ms-orders\n\n   \u003e Importante: Os quatro últimos microserviços (ms-users, ms-products, ms-notification e ms-orders) podem ser iniciados em qualquer ordem, desde que o Service Registry e o API Gateway já estejam ativos.\n   \n## Testes de API\nUma collection Postman está disponível para facilitar o teste dos endpoints da aplicação:\n- [Clique aqui para acessar a Collection](https://documenter.getpostman.com/view/2828428/2sB2cVg2vU)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foluizeduardo%2Fjfood","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foluizeduardo%2Fjfood","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foluizeduardo%2Fjfood/lists"}