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
No description provided
Readme 1.4 MiB
Languages
TypeScript 97%
JavaScript 1.9%
Shell 0.7%
Dockerfile 0.3%