5e67b5069573922ed8a82c32f378892ba5c0ec5a
CMS OCCTO Engenharia v1.0
Sistema de gerenciamento de conteúdo (CMS) desenvolvido para a OCCTO Engenharia.
📋 Visão Geral
CMS completo para gerenciamento do site institucional da OCCTO Engenharia, empresa especializada em engenharia veicular, mecânica e segurança do trabalho.
🚀 Tecnologias
- Frontend: Next.js 16 (App Router)
- Estilização: Tailwind CSS 4
- Banco de Dados: PostgreSQL 12 + Prisma ORM
- Storage: MinIO (S3-compatible)
- Autenticação: JWT com bcryptjs
- Deploy: Docker Compose + Dokploy
📁 Estrutura do Projeto
├── frontend/ # Aplicação Next.js
│ ├── src/
│ │ ├── app/
│ │ │ ├── (public)/ # Páginas públicas (home, sobre, contato, projetos, serviços)
│ │ │ ├── admin/ # Painel administrativo
│ │ │ ├── acesso/ # Página de login
│ │ │ └── api/ # API Routes
│ │ ├── components/ # Componentes reutilizáveis
│ │ └── lib/ # Utilitários (auth, minio, prisma)
│ ├── prisma/
│ │ ├── schema.prisma # Schema do banco de dados
│ │ └── seed.mjs # Dados iniciais
│ └── public/ # Assets estáticos
├── docker-compose.yml # Configuração Docker
└── docs/ # Documentação
✨ Funcionalidades
Painel Administrativo
- 📄 Páginas - Edição completa das páginas Home, Sobre e Contato
- 🛠️ Serviços - CRUD de serviços com ícones personalizáveis
- 📂 Projetos - CRUD de projetos/portfólio com upload de imagens
- 👥 Usuários - Gerenciamento de usuários administradores
- 💬 Leads - Visualização de mensagens de contato recebidas
- ⚙️ Configurações - Personalização de cor primária do tema
Site Público
- Home - Hero, diferenciais, serviços, sobre, depoimentos, estatísticas, CTA
- Sobre - Missão, visão, valores da empresa
- Serviços - Lista de serviços oferecidos
- Projetos - Portfólio de projetos realizados
- Contato - Formulário de contato com informações da empresa
Recursos Técnicos
- ✅ Autenticação JWT segura
- ✅ Upload de imagens para MinIO (S3)
- ✅ Tema dinâmico (cor primária configurável)
- ✅ Design responsivo
- ✅ SEO otimizado
- ✅ Cookies consent LGPD
- ✅ Loading states e feedback visual
- ✅ Confirmação de exclusão
🗄️ Banco de Dados
Modelos Prisma
- User - Usuários administradores
- PageContent - Conteúdo das páginas (JSON flexível)
- Service - Serviços oferecidos
- Project - Projetos do portfólio
- Lead - Mensagens de contato
- SiteSettings - Configurações do site (tema)
🐳 Deploy com Docker
Serviços
- postgres - PostgreSQL 12 Alpine
- minio - MinIO (storage S3-compatible)
- frontend - Aplicação Next.js
Variáveis de Ambiente
# PostgreSQL
POSTGRES_USER=admin
POSTGRES_PASSWORD=sua_senha_segura
POSTGRES_DB=occto_db
# MinIO
MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=sua_senha_segura
# App
DATABASE_URL=postgresql://admin:senha@postgres:5432/occto_db?schema=public
JWT_SECRET=seu_jwt_secret_muito_seguro
MINIO_ENDPOINT=minio
MINIO_PORT=9000
MINIO_ACCESS_KEY=admin
MINIO_SECRET_KEY=sua_senha_segura
MINIO_BUCKET_NAME=occto-images
Comandos
# Deploy
docker compose up -d --build
# Logs
docker compose logs -f frontend
# Rebuild
docker compose down && docker compose up -d --build
🔐 Credenciais Padrão
Após o seed inicial:
- Email:
admin@occto.com - Senha:
admin
⚠️ Importante: Altere as credenciais em produção!
📝 Changelog v1.0
Funcionalidades Implementadas
- Sistema de autenticação JWT
- CRUD completo de serviços
- CRUD completo de projetos
- CRUD completo de usuários
- Edição de páginas (Home, Sobre, Contato)
- Sistema de leads/mensagens de contato
- Upload de imagens para MinIO
- Configuração de tema (cor primária)
- Docker Compose para deploy
- Integração com Dokploy
- Seed de dados iniciais
Correções
- Hover dinâmico baseado na cor primária
- Healthcheck do PostgreSQL
- Compatibilidade com CPUs antigos (PostgreSQL 12 Alpine)
- Seed em JavaScript puro (sem ts-node em produção)
📄 Licença
Projeto desenvolvido para OCCTO Engenharia. Todos os direitos reservados.
Versão: 1.0
Data: Novembro/2025
Desenvolvido por: Assistente IA + Erik
Description
Languages
TypeScript
97%
JavaScript
1.9%
Shell
0.7%
Dockerfile
0.3%