Ferramentas Utilizadas
Esta página apresenta todas as tecnologias, linguagens e ferramentas utilizadas no desenvolvimento da plataforma Divino Alimento.
Linguagens de Programação
JavaScript / Node.js
Versão: Node.js (runtime backend)
Licença: MIT
Node.js é utilizado como runtime principal para o backend da aplicação, permitindo executar JavaScript no servidor. Escolhido por sua eficiência em operações I/O assíncronas e vasto ecossistema de pacotes.
Uso no projeto:
- Backend API (Express.js)
- Scripts de automação
- Gerenciamento de dependências
TypeScript
Versão: ^5.8.3
Licença: Apache-2.0
TypeScript adiciona tipagem estática ao JavaScript, aumentando a segurança e manutenibilidade do código frontend.
Uso no projeto:
- Todo o código do frontend React
- Interfaces e tipos para API
- Validação em tempo de desenvolvimento
SQL
Licença: Varia por implementação
PostgreSQL como banco de dados principal, com queries SQL para operações complexas.
Uso no projeto:
- Definição de schemas
- Queries otimizadas com JOINs
- Migrations de banco de dados
Backend
Frameworks e Bibliotecas
Express.js
Versão: ^4.21.2
Site: expressjs.com
Licença: MIT
Framework web minimalista e flexível para Node.js, utilizado para criar o servidor HTTP e gerenciar rotas.
Características:
- Roteamento robusto
- Middleware flexível
- Suporte a templates (EJS)
- Grande comunidade
Sequelize
Versão: ^6.37.1
Site: sequelize.org
Licença: MIT
ORM (Object-Relational Mapping) para Node.js que facilita a interação com bancos de dados relacionais.
Características:
- Suporte a PostgreSQL, MySQL, SQLite
- Migrations e seeds
- Validações de modelo
- Relacionamentos complexos
EJS (Embedded JavaScript)
Versão: ^3.1.6
Site: ejs.co
Licença: Apache-2.0
Engine de templates para renderização server-side de páginas HTML.
Uso no projeto:
- Views do sistema legado
- Renderização de páginas dinâmicas
- Partials reutilizáveis
APIs
GraphQL
Versão: ^16.11.0
Site: graphql.org
Licença: MIT
Linguagem de query para APIs que permite aos clientes solicitar exatamente os dados necessários.
Bibliotecas relacionadas:
- graphql-http ^1.22.4 (MIT): Servidor GraphQL sobre HTTP
- Ruru ^2.0.0-beta.30 (MIT): IDE GraphQL integrado
Vantagens:
- Flexibilidade nas consultas
- Tipagem forte
- Menos requisições ao servidor
- Documentação automática
Autenticação
express-openid-connect
Versão: ^2.4.0
Licença: MIT
Middleware para autenticação OAuth 2.0 / OpenID Connect no Express.
Características:
- Suporte a múltiplos provedores
- Gerenciamento automático de sessões
- Integração com Auth0 e outros
Utilitários Backend
PDFKit
Versão: ^0.12.1
Site: pdfkit.org
Licença: MIT
Biblioteca para geração de documentos PDF no Node.js.
Uso no projeto:
- Relatórios em PDF
- Documentos de pedidos
- Comprovantes
json2csv
Versão: ^5.0.7
Licença: MIT
Conversão de dados JSON para formato CSV.
Uso no projeto:
- Exportação de relatórios
- Dados de pedidos
- Listas de produtos
dotenv
Versão: ^9.0.1
Licença: BSD-2-Clause
Carrega variáveis de ambiente de arquivos .env.
Uso no projeto:
- Configurações sensíveis
- URLs de APIs
- Credenciais de banco
Frontend
Framework e Build Tools
React
Versão: ^18.3.1
Site: react.dev
Licença: MIT
Biblioteca JavaScript para construção de interfaces de usuário baseada em componentes.
Características:
- Componentes reutilizáveis
- Virtual DOM eficiente
- Hooks para gerenciamento de estado
- Grande ecossistema
Vite
Versão: ^5.4.19
Site: vitejs.dev
Licença: MIT
Build tool moderna e rápida para projetos frontend.
Vantagens:
- Hot Module Replacement (HMR) instantâneo
- Build otimizado para produção
- Suporte nativo a TypeScript
- Configuração simples
Roteamento e Estado
React Router DOM
Versão: ^6.30.1
Site: reactrouter.com
Licença: MIT
Biblioteca de roteamento para React, gerenciando navegação client-side.
Características:
- Roteamento declarativo
- Nested routes
- Lazy loading de rotas
- Hooks (useNavigate, useParams)
TanStack React Query
Versão: ^5.83.0
Site: tanstack.com/query
Licença: MIT
Biblioteca poderosa para gerenciamento de estado do servidor.
Características:
- Cache automático
- Refetch inteligente
- Mutations
- Otimização de performance
graphql-request
Versão: ^7.3.1
Licença: MIT
Cliente GraphQL minimalista para fazer requisições.
Uso no projeto:
- Queries GraphQL
- Mutations
- Integração com React Query
UI e Estilização
Tailwind CSS
Versão: ^3.4.17
Site: tailwindcss.com
Licença: MIT
Framework CSS utility-first para construção rápida de interfaces.
Características:
- Classes utilitárias
- Responsivo por padrão
- Customização completa
- Tree-shaking automático
Plugins:
- @tailwindcss/typography ^0.5.16: Estilização de conteúdo
- tailwindcss-animate ^1.0.7: Animações
shadcn/ui
Site: ui.shadcn.com
Licença: MIT
Coleção de componentes React reutilizáveis e acessíveis, construídos com Radix UI e Tailwind CSS.
Componentes incluídos (50+):
- Accordion, Alert Dialog, Avatar
- Button, Card, Checkbox, Dialog
- Dropdown Menu, Form, Input
- Select, Table, Tabs, Toast
- E muitos outros...
Radix UI
Site: radix-ui.com
Licença: MIT
Conjunto de componentes primitivos não-estilizados focados em acessibilidade.
Vantagens:
- WAI-ARIA compliant
- Suporte a teclado
- Compatibilidade com screen readers
- Customizável
Lucide React
Versão: ^0.462.0
Site: lucide.dev
Licença: ISC
Biblioteca de ícones para React, fork do Feather Icons.
Características:
- 1000+ ícones
- Tree-shakeable
- Customizável
- Consistente
Forms e Validação
React Hook Form
Versão: ^7.62.0
Site: react-hook-form.com
Licença: MIT
Biblioteca para gerenciamento de formulários com foco em performance.
Vantagens:
- Mínimas re-renderizações
- Validação fácil
- Integração com Zod
- TypeScript friendly
Zod
Versão: ^3.25.76
Site: zod.dev
Licença: MIT
Biblioteca de validação e parsing de schemas TypeScript-first.
Características:
- Type-safe
- Validações complexas
- Mensagens de erro customizáveis
- Integração com React Hook Form
Componentes Especializados
React Day Picker
Versão: ^8.10.1
Licença: MIT
Componente de seleção de datas flexível e acessível.
date-fns
Versão: ^3.6.0
Site: date-fns.org
Licença: MIT
Biblioteca moderna para manipulação de datas em JavaScript.
Vantagens:
- Modular
- Imutável
- Tree-shakeable
- Suporte a i18n
Recharts
Versão: ^2.15.4
Site: recharts.org
Licença: MIT
Biblioteca de gráficos para React construída com D3.
Tipos de gráficos:
- Line, Bar, Area, Pie
- Scatter, Radar
- Composed charts
Embla Carousel
Versão: ^8.6.0
Site: embla-carousel.com
Licença: MIT
Carousel/slider leve e extensível.
Plugins:
- embla-carousel-autoplay: Auto-play
Sonner
Versão: ^1.7.4
Licença: MIT
Biblioteca de toast notifications elegante e customizável.
Next Themes
Versão: ^0.3.0
Licença: MIT
Gerenciamento de temas (dark mode) para aplicações React.
Banco de Dados
PostgreSQL
Versão: 13+
Site: postgresql.org
Licença: PostgreSQL License
Sistema de gerenciamento de banco de dados relacional open-source.
Características:
- ACID compliant
- Suporte a JSON
- Extensível
- Performance robusta
Biblioteca de conexão:
- pg ^8.11.3: Cliente PostgreSQL para Node.js
- pg-hstore ^2.3.4: Serialização hstore
SQLite
Versão: ^5.0.2
Site: sqlite.org
Licença: Public Domain
Banco de dados SQL embutido, utilizado em ambiente de testes.
Vantagens para testes:
- Rápido
- Em memória
- Sem configuração
- Isolamento
Testes
Cucumber
Versão: ^12.2.0
Site: cucumber.io
Licença: MIT
Framework para testes BDD (Behavior-Driven Development).
Características:
- Linguagem Gherkin legível
- Feature files descritivos
- Step definitions
- Documentação viva
Jest
Site: jestjs.io
Licença: MIT
Framework de testes JavaScript com foco em simplicidade.
Características:
- Zero configuração
- Snapshot testing
- Coverage reports
- Mocking fácil
Mocha
Versão: ^11.7.4
Site: mochajs.org
Licença: MIT
Framework de testes flexível para Node.js.
Uso no projeto:
- Testes E2E
- Testes de integração
Chai
Versão: ^4.3.6
Site: chaijs.com
Licença: MIT
Biblioteca de asserções para testes.
Estilos:
- Assert
- Expect
- Should
Faker.js
Versão: ^10.0.0
Site: fakerjs.dev
Licença: MIT
Geração de dados falsos para testes.
Uso no projeto:
- Dados de teste realistas
- Factories
- Seeds
DevOps e Deployment
Docker
Site: docker.com
Licença: Apache-2.0
Plataforma de containerização para empacotamento e distribuição de aplicações.
Uso no projeto:
- Containerização do backend
- PostgreSQL em container
- Frontend em container
- Mock OAuth2 server
Docker Compose
Versão: v2
Site: docs.docker.com/compose
Licença: Apache-2.0
Ferramenta para definir e executar aplicações Docker multi-container.
Arquivos:
compose.live.yml: Ambiente de desenvolvimento/produçãocompose.tests.yml: Ambiente de testes
Services:
- app.dev (Backend)
- db.dev (PostgreSQL)
- frontend (React)
- mock-oauth2-server (Auth)
Rake
Site: ruby.github.io/rake
Licença: MIT
Ferramenta de automação de tarefas em Ruby.
Tarefas no projeto:
rake vivo:constroi # Build containers
rake vivo:liga # Start services
rake vivo:para # Stop services
rake vivo:popular # Seed database
rake vivo:migracao # Run migrations
rake vivo:psql # Access PostgreSQL
rake vivo:sh # Access app shell
Ferramentas de Desenvolvimento
Nodemon
Versão: ^2.0.7
Site: nodemon.io
Licença: MIT
Monitor de aplicações Node.js que reinicia automaticamente em mudanças.
Uso:
npm run dev # Inicia com nodemon
ESLint
Versão: ^9.32.0
Site: eslint.org
Licença: MIT
Linter para identificar e corrigir problemas em código JavaScript/TypeScript.
Configurações:
- eslint-plugin-react-hooks
- eslint-plugin-react-refresh
- typescript-eslint
Sequelize CLI
Versão: ^6.6.2
Licença: MIT
Interface de linha de comando para Sequelize ORM.
Comandos:
npx sequelize-cli db:migrate # Run migrations
npx sequelize-cli db:seed:all # Run seeds
npx sequelize-cli migration:create # Create migration
PostCSS
Versão: ^8.5.6
Licença: MIT
Ferramenta para transformar CSS com plugins JavaScript.
Uso no projeto:
- Autoprefixer
- Tailwind CSS processing
UI/UX Libraries
Bootstrap
Versão: ^5.0.2
Site: getbootstrap.com
Licença: MIT
Framework CSS popular (usado em views legadas).
jQuery
Versão: ^3.6.0
Site: jquery.com
Licença: MIT
Biblioteca JavaScript (usada em views legadas).
Outras Ferramentas
clsx
Versão: ^2.1.1
Licença: MIT
Utilitário para construir strings de className condicionalmente.
class-variance-authority
Versão: ^0.7.1
Licença: Apache-2.0
Criação de variantes de componentes type-safe.
cmdk
Versão: ^1.1.1
Licença: MIT
Command menu para React (command palette).
vaul
Versão: ^0.9.9
Licença: MIT
Componente drawer não-estilizado para React.
input-otp
Versão: ^1.4.2
Licença: MIT
Input para códigos OTP (One-Time Password).
react-resizable-panels
Versão: ^2.1.9
Licença: MIT
Painéis redimensionáveis para layouts complexos.
Resumo por Categoria
| Categoria | Componente | Tecnologia/Ferramenta |
|---|---|---|
| Backend | Runtime | Node.js |
| Framework | Express.js | |
| ORM | Sequelize | |
| Database | PostgreSQL, SQLite | |
| API | GraphQL, REST | |
| Auth | OAuth 2.0 / OpenID Connect | |
| Frontend | Framework | React 18 + TypeScript |
| Build | Vite | |
| Styling | Tailwind CSS | |
| Components | shadcn/ui + Radix UI | |
| State | React Query + Context API | |
| Routing | React Router v6 | |
| Testing | BDD | Cucumber |
| Unit | Jest | |
| E2E | Mocha + Chai | |
| Data | Faker.js | |
| DevOps | Containers | Docker + Docker Compose |
| Automation | Rake | |
| CI/CD | (a definir) |
Links Úteis
Próximos Passos
- Instalação - Configure seu ambiente
- Arquitetura - Entenda a estrutura do sistema
- Como Contribuir - Setup de desenvolvimento