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.
git clone <repository>
cd caderno
cp .env.example .env
# Editar .env com suas configurações (optional)
docker-compose up -d
http://localhost/
Credenciais de Teste:
123123caderno/
├── 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
A aplicação segue o padrão de camadas:
HTTP Request → Router → Controller → Service → Model → Database
↑
└── SRE Layer (Logging, Error Handling, Monitoring)
GET / - Dashboard com listagem de movimentaçõesGET /login - Página de loginPOST /autenticar - Autenticar usuárioGET /sair - LogoutGET /cadastro - Formulário de novo registroPOST /salvar - Salvar nova movimentaçãoGET /editar?id={id} - Formulário de ediçãoPOST /atualizar - Atualizar movimentaçãoGET /pendentes - Itens pendentesGET /saida - Registrar saídaGET /api/equipamentos - Listar equipamentosGET /api/equipamento?id={id} - Obter equipamentoPOST /api/equipamentos - Criar equipamentoPUT /api/equipamento?id={id} - Atualizar equipamentoDELETE /api/equipamento?id={id} - Deletar equipamento (logical delete)GET /health - Status de saúde da aplicaçãoe() para escape de output# 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/
Tabelas principais:
usuario - Usuários do sistemalocalidade - Localizaçõesmovimentacao - Registro de movimentaçõesmovimentacao_itens - Itens de uma movimentaçãoequipamento - Cadastro de equipamentos# 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
# 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
Toda a funcionalidade do sistema anterior foi preservada:
.env com valores de produçãodocker-compose -f docker-compose.prod.yml up -d/health endpointVeja docs/SETUP.md para detalhes completos.
# Verificar se o container db está rodando
docker-compose ps
# Ver logs do database
docker-compose logs db
# Corrigir permissões
docker-compose exec app chown -R www-data:www-data /var/www/html
Editar docker-compose.yml:
ports:
- "8080:80" # Usar porta 8080
Para issues ou dúvidas, consulte a documentação em docs/ ou crie uma issue no repositório.
Copyright 2024 - Caderno Digital
Versão: 2.0.0
PHP: 8.2+
Database: MariaDB 10.4+