Compare commits
1 Commits
d8332b894f
...
cms-octto-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5e67b50695 |
162
README.md
Normal file
162
README.md
Normal file
@@ -0,0 +1,162 @@
|
|||||||
|
# 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
|
||||||
|
|
||||||
|
```env
|
||||||
|
# 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
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 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
|
||||||
|
|
||||||
|
- [x] Sistema de autenticação JWT
|
||||||
|
- [x] CRUD completo de serviços
|
||||||
|
- [x] CRUD completo de projetos
|
||||||
|
- [x] CRUD completo de usuários
|
||||||
|
- [x] Edição de páginas (Home, Sobre, Contato)
|
||||||
|
- [x] Sistema de leads/mensagens de contato
|
||||||
|
- [x] Upload de imagens para MinIO
|
||||||
|
- [x] Configuração de tema (cor primária)
|
||||||
|
- [x] Docker Compose para deploy
|
||||||
|
- [x] Integração com Dokploy
|
||||||
|
- [x] Seed de dados iniciais
|
||||||
|
|
||||||
|
### Correções
|
||||||
|
|
||||||
|
- [x] Hover dinâmico baseado na cor primária
|
||||||
|
- [x] Healthcheck do PostgreSQL
|
||||||
|
- [x] Compatibilidade com CPUs antigos (PostgreSQL 12 Alpine)
|
||||||
|
- [x] 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
|
||||||
9
docs/tasks.md
Normal file
9
docs/tasks.md
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
- Tradução não funcionou em todos componentes
|
||||||
|
|
||||||
|
- Logotipo (Formulário)
|
||||||
|
|
||||||
|
- Link do WhatsApp
|
||||||
|
|
||||||
|
- Desabilitar local
|
||||||
|
|
||||||
|
- Dados Reais no Dashboard
|
||||||
Reference in New Issue
Block a user