{"id":22503556,"url":"https://github.com/lucioerlan/flag-secops-hub","last_synced_at":"2025-03-27T23:14:34.958Z","repository":{"id":214565927,"uuid":"734498930","full_name":"lucioerlan/Flag-SecOps-Hub","owner":"lucioerlan","description":"Gerenciador De Feature Flags com um Toque de DevSecOps.","archived":false,"fork":false,"pushed_at":"2024-01-26T03:33:35.000Z","size":9019,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-24T12:50:45.286Z","etag":null,"topics":["atomic-design","clean-architecture","typescript"],"latest_commit_sha":null,"homepage":"https://featureflag-devsecops-gbtech.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lucioerlan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-12-21T20:57:10.000Z","updated_at":"2025-02-23T20:38:31.000Z","dependencies_parsed_at":"2024-01-01T09:25:31.830Z","dependency_job_id":"44751315-cb92-4fe2-8d66-e4e6a7681d1d","html_url":"https://github.com/lucioerlan/Flag-SecOps-Hub","commit_stats":null,"previous_names":["lucioerlan/flag-secops-hub"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucioerlan%2FFlag-SecOps-Hub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucioerlan%2FFlag-SecOps-Hub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucioerlan%2FFlag-SecOps-Hub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucioerlan%2FFlag-SecOps-Hub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lucioerlan","download_url":"https://codeload.github.com/lucioerlan/Flag-SecOps-Hub/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245938232,"owners_count":20697008,"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","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":["atomic-design","clean-architecture","typescript"],"created_at":"2024-12-06T23:34:46.262Z","updated_at":"2025-03-27T23:14:34.941Z","avatar_url":"https://github.com/lucioerlan.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n![Interface](./frontend/docs/images/home.png)\n[Explore o design no Figma](https://www.figma.com/file/bm74nLFsmGi07IZCxIOZ3t/Flag-SecOps-Hub?type=design\u0026node-id=0%3A1\u0026mode=design\u0026t=69BMYVDYpLNlbjmj-1).\n\n\u003c!-- Badges Section --\u003e\n\n![Frontend](https://github.com/lucioerlan/Flag-SecOps-Hub/actions/workflows/frontend-ci.yml/badge.svg?branch=main)\n![Backend](https://github.com/lucioerlan/Flag-SecOps-Hub/actions/workflows/backend-ci.yml/badge.svg?branch=main)\n\n[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=lucioerlan_Flag-SecOps-Hub\u0026metric=bugs)](https://sonarcloud.io/summary/new_code?id=lucioerlan_Flag-SecOps-Hub)\n[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=lucioerlan_Flag-SecOps-Hub\u0026metric=code_smells)](https://sonarcloud.io/summary/new_code?id=lucioerlan_Flag-SecOps-Hub)\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=lucioerlan_Flag-SecOps-Hub\u0026metric=coverage)](https://sonarcloud.io/summary/new_code?id=lucioerlan_Flag-SecOps-Hub)\n[![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=lucioerlan_Flag-SecOps-Hub\u0026metric=duplicated_lines_density)](https://sonarcloud.io/summary/new_code?id=lucioerlan_Flag-SecOps-Hub)\n[![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=lucioerlan_Flag-SecOps-Hub\u0026metric=ncloc)](https://sonarcloud.io/summary/new_code?id=lucioerlan_Flag-SecOps-Hub)\n[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=lucioerlan_Flag-SecOps-Hub\u0026metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=lucioerlan_Flag-SecOps-Hub)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=lucioerlan_Flag-SecOps-Hub\u0026metric=alert_status)](https://sonarcloud.io/summary/new_code?id=lucioerlan_Flag-SecOps-Hub)\n[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=lucioerlan_Flag-SecOps-Hub\u0026metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=lucioerlan_Flag-SecOps-Hub)\n[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=lucioerlan_Flag-SecOps-Hub\u0026metric=security_rating)](https://sonarcloud.io/summary/new_code?id=lucioerlan_Flag-SecOps-Hub)\n[![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=lucioerlan_Flag-SecOps-Hub\u0026metric=sqale_index)](https://sonarcloud.io/summary/new_code?id=lucioerlan_Flag-SecOps-Hub)\n[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=lucioerlan_Flag-SecOps-Hub\u0026metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=lucioerlan_Flag-SecOps-Hub)\n\n\u003c!-- More Badges --\u003e\n\n\u003c/div\u003e\n\nFlag SecOps Hub é um projeto para gestão de Feature Flags, com foco em segurança, performance e escalabilidade. Desenvolvido com práticas modernas e tecnologias de ponta, o projeto visa fornecer uma solução eficiente e confiável para o gerenciamento dinâmico de recursos em aplicações.\n\n---\n\n## 🛡️ Visão Geral do Projeto\n\n- **Objetivo**: Simplificar a gestão de Feature Flags.\n- **Usuários-alvo**: Desenvolvedores, gerentes de projeto e equipes de QA em busca de uma gestão eficiente e segura.\n- **Estrutura**: Composto por Backend e Frontend, integrando-se para fornecer uma solução completa.\n\n---\n\n## 🏗️ Arquitetura e Tecnologias\n\n#### Backend\n\n- **Arquitetura**: Clean Architecture e DDD para modularidade e manutenção eficiente.\n- **Tecnologias**: Node.js, TypeScript, Fastify, MongoDB, Jest, Docker, Swagger, Winston, entre outros.\n- **Segurança**: Implementações específicas para garantir a proteção dos dados e das operações.\n\n#### Frontend\n\n- **Arquitetura**: Design Atômico para organização eficiente e manutenível dos componentes.\n- **Tecnologias**: React, Vite, Redux, Formik, Styled Components, i18next, React Testing Library, Cypress, Storybook, entre outros.\n- **Usabilidade e Acessibilidade**: Foco em uma interface amigável e acessível para todos os usuários.\n- **Design Figma**: [Visualize o design no Figma](https://www.figma.com/file/bm74nLFsmGi07IZCxIOZ3t/Flag-SecOps-Hub?type=design\u0026node-id=0%3A1\u0026mode=design\u0026t=69BMYVDYpLNlbjmj-1).\n\n---\n\n## 🚀 Como Executar\n\n### 🐳 Docker Compose\n\n1. Certifique-se de ter Docker e Docker Compose.\n2. Execute `docker-compose up` na raiz do projeto.\n3. O frontend vai estar disponivel em `http://localhost:3000` e o backend em `http://localhost:5000`. Isso vai subir tanto o backend quanto o frontend em containers Docker.\n\n### 🧰 Makefile\n\nPara facilitar a execução de comandos, utilize o arquivo Makefile disponível na raiz do projeto:\n\n- **Para construir as imagens Docker:**: `make build`\n- **Para executar o projetoo**: `make up`\n- **Para parar os serviços**: `make down`\n\n## 📚 Documentação\n\nCada parte do projeto (Backend e Frontend) possui documentação específica detalhando sua configuração, uso e características.\n\n#### Backend\n\n- **Documentação Interativa Swagger**: Acesse em `http://localhost:5000/documentation` após iniciar o projeto.\n- **Docsify**: Para uma visão mais detalhada, a documentação completa está disponível em [Docsify backend](./backend/docs/README.md). Execute `npm run docs:serve` na raiz do backend para iniciar o servidor de documentação Docsify.\n\n#### Frontend\n\n- **Storybook**: Explore componentes e guias no Storybook acessando `http://localhost:6006` após executar o comando `npm run storybook`.\n- **Docsify**: Para uma visão mais detalhada, a documentação completa está disponível em [Docsify frontend](./frontend/docs/README.md). Execute `npm run docs:serve` na raiz do frontend para iniciar o servidor de documentação Docsify.\n\n---\n\n## 🛠️ Comandos Comuns\n\n- `npm install`: Instala as dependências do projeto.\n- `npm run dev`: Inicializa o projeto em modo de desenvolvimento.\n- `npm run test`: Executa todos os testes do projeto.\n- `npm run lint`: Aplica linting em todo o projeto.\n\n---\n\n## 🧪 Testes\n\nPara executar os testes end-to-end com Cypress, Use `npm run test:cypress:open` para interface interativa ou `npm run test:cypress:run` para execução headless.\n\n---\n\n## 🌟 CI/CD com GitHub Actions e SonarCloud\n\nO projeto possui integração contínua e entrega contínua (CI/CD) com o GitHub Actions. Os resultados de qualidade de código são analisados pelo **SonarCloud**, incluindo métricas de bugs, code smells, cobertura de código e muito mais. O CD é realizado na Vercel.\n\n---\n\n## 🧑‍💻 Contribuição\n\nContribuições são bem-vindas para melhorar a documentação, adicionar funcionalidades ou corrigir bugs. Crie um pull request ou abra uma issue para colaborar.\n\n---\n\n## 🚧 Melhorias Futuras\n\nPara uma lista detalhada das melhorias futuras planejadas para o projeto, incluindo atualizações técnicas e otimizações, por favor visite o seguinte link: [Melhorias Futuras](https://github.com/lucioerlan/Flag-SecOps-Hub/discussions/68)\n\n---\n\n## 📃 Licença\n\nO projeto é distribuído sob a Licença MIT. Veja [`LICENSE`](https://opensource.org/licenses/MIT) para mais informações.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucioerlan%2Fflag-secops-hub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flucioerlan%2Fflag-secops-hub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucioerlan%2Fflag-secops-hub/lists"}