caderno

Caderno Digital - Sistema de Movimentação de Equipamentos

Uma aplicação web moderna para gerenciamento e rastreamento de movimentações de equipamentos, com arquitetura limpa em camadas, autorização por sessão, e assinatura digital.

🚀 Características Principais

📋 Pré-requisitos

🔧 Setup Rápido

1. Clonar Repositório

git clone <repository>
cd caderno

2. Configurar Ambiente

cp .env.example .env
# Editar .env com suas configurações (optional)

3. Iniciar com Docker

docker-compose up -d

4. Acessar Aplicação

http://localhost/

Credenciais de Teste:

📁 Estrutura de Diretórios

caderno/
├── app/                      # Código fonte
│   ├── Core/                 # Classes base (BaseModel, BaseController, Database, Request)
│   ├── Http/Controllers/    # Controladores (Auth, Movement, Equipment, Health, Reference)
│   ├── Models/              # Modelos de dados (Usuario, Movimentacao, etc)
│   ├── Services/            # Lógica de negócio (Auth, Movement, Equipment, Reference)
│   └── SRE/                 # Site Reliability Engineering (Logger, ErrorHandler, HealthCheck, Middleware)
├── config/                   # Configurações (app, database, logging, bootstrap)
├── database/                 # Migrações de banco de dados
├── public/                   # Raiz web (index.php, .htaccess)
├── resources/views/         # Templates/Views
│   ├── auth/
│   ├── movements/
│   └── includes/
├── tests/                    # Testes unitários
├── vendor/                   # Autoloader PSR-4
├── docs/                     # Documentação (API, ARCHITECTURE, SETUP)
├── .env.example              # Variáveis de ambiente de exemplo
├── Dockerfile                # Configuração Docker
├── docker-compose.yml        # Orquestração de containers
└── README.md                 # Este arquivo

🏗️ Arquitetura

A aplicação segue o padrão de camadas:

HTTP Request → Router → Controller → Service → Model → Database
     ↑
     └── SRE Layer (Logging, Error Handling, Monitoring)

Componentes

📚 Documentação

🔌 Endpoints Principais

Web UI

API REST

Monitoring

🔒 Segurança

🧪 Testes

# Rodar todos os testes
docker-compose exec app php vendor/bin/phpunit

# Teste específico
docker-compose exec app php vendor/bin/phpunit tests/Unit/AuthServiceTest.php

# Com cobertura
docker-compose exec app php vendor/bin/phpunit --coverage-html coverage/

📊 Banco de Dados

Tabelas principais:

🐳 Comandos Docker

# Iniciar serviços
docker-compose up -d

# Parar serviços
docker-compose down

# Ver logs
docker-compose logs -f app

# Acessar banco de dados
docker-compose exec db mysql -u root -p caderno

# Executar comando no container
docker-compose exec app php script.php

# Rebuild imagem
docker-compose build --no-cache

🌍 Variáveis de Ambiente

# Database
DB_HOST=db
DB_NAME=caderno
DB_USER=root
DB_PASS=your_password

# Application
APP_ENV=production
APP_DEBUG=false
APP_NAME="Caderno Digital"
APP_VERSION=2.0.0

# Timezone
TIMEZONE=America/Sao_Paulo

# Logging
LOG_LEVEL=INFO
LOG_PATH=/var/log/caderno/app.log

# MySQL
MYSQL_ROOT_PASSWORD=your_password
MYSQL_DATABASE=caderno

📈 Performance

🔄 Migração do Sistema Anterior

Toda a funcionalidade do sistema anterior foi preservada:

🚀 Deployment em Produção

  1. Clonar repositório
  2. Configurar .env com valores de produção
  3. docker-compose -f docker-compose.prod.yml up -d
  4. Verificar /health endpoint

Veja docs/SETUP.md para detalhes completos.

🐛 Troubleshooting

Erro de conexão com banco

# Verificar se o container db está rodando
docker-compose ps

# Ver logs do database
docker-compose logs db

Permissões negadas

# Corrigir permissões
docker-compose exec app chown -R www-data:www-data /var/www/html

Porta 80 em uso

Editar docker-compose.yml:

ports:
  - "8080:80"  # Usar porta 8080

📝 Padrões de Código

📞 Suporte

Para issues ou dúvidas, consulte a documentação em docs/ ou crie uma issue no repositório.

📄 Licença

Copyright 2024 - Caderno Digital

✨ Melhorias Futuras


Versão: 2.0.0
PHP: 8.2+
Database: MariaDB 10.4+