Skip to content

F3-Organization/api-content-flow

Repository files navigation

Content Flow - API

Uma API para gerenciamento de conteúdo, construída com TypeScript, Node.js e clean-architecture.

📋 Pré-requisitos

Antes de começar, certifique-se de ter instalado:

  • Git - Para controle de versão
  • SSH configurado com GitHub - Para acesso aos repositórios privados
  • Node.js (via nvm) - Ambiente de execução JavaScript
  • npm - Gerenciador de pacotes (instalado com Node.js)
  • Docker - Para containerização (Instalação)
  • Ansible - Para automação de configuração (Instalação)

Instalação do NVM e Node.js

Siga as instruções oficiais para instalar o NVM: NVM Installation Guide

Após instalar o NVM:

Instalar e usar a versão LTS do Node.js

nvm install --lts
nvm use --lts

🚀 Configuração Rápida

1. Clonar o Repositório

git clone git@github.com:F3-Organization/api-content-flow.git
cd api-content-flow

2. Setup Completo (Recomendado)

Execute o comando abaixo para configurar tudo automaticamente:

npm run setup-dev

Este comando irá:

  • ✅ Configurar as variáveis de ambiente (.env)
  • ✅ Instalar todas as dependências
  • ✅ Construir e iniciar os containers Docker

3. Iniciar Desenvolvimento

npm run up-dev

📝 Scripts Disponíveis

Script Descrição
npm run setup-env Configura variáveis de ambiente (.env)
npm run setup-dev Setup completo para desenvolvimento
npm run up-dev Inicia containers Docker
npm run up-dev-build Inicia containers Docker com rebuild
npm run test Executa testes unitários
npm run coverage Executa testes com relatório de cobertura
npm run update-swagger Atualiza documentação Swagger

🔐 Como Funciona a Configuração Automática

O projeto utiliza Ansible para automatizar a configuração das variáveis de ambiente:

  1. Repositório de Configurações: As variáveis ficam em um repositório privado separado
  2. Chave SSH: Usa sua chave SSH local (~/.ssh/id_ed25519) para acessar o repositório
  3. Automação: O Ansible clona o repositório e copia o arquivo .env.development
  4. Segurança: Suas credenciais ficam seguras e não são versionadas no código

Estrutura do Repositório de Configurações

config-repo/
└── .env.development

🏗️ Arquitetura do Projeto

src/
├── application/     # Casos de uso e lógica de aplicação
├── domain/         # Entidades e regras de negócio
├── infra/          # Infraestrutura (DB, HTTP, etc.)
└── config/         # Configurações da aplicação

📚 Documentação Adicional

  • API Documentation: Acesse http://localhost:1500/api/swagger-docs/ quando o servidor estiver rodando
  • Database Schema: Consulte docs/database/DDL.sql
  • Docker Compose: Configuração em docker-compose-dev.yaml

🤝 Contribuindo

  1. Fork o projeto
  2. Crie uma branch para sua feature (git checkout -b feature/AmazingFeature)
  3. Commit suas mudanças (git commit -m 'Add some AmazingFeature')
  4. Push para a branch (git push origin feature/AmazingFeature)
  5. Abra um Pull Request

📄 Licença

Copyright (c) 2025 Felipe Oliveira Souza. Todos os direitos reservados.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages