Skip to content

joaolezsi/TesteCDC

Repository files navigation

🏦 CDC Bank - Sistema Bancário Digital

PHP CodeIgniter Docker MariaDB Status


🎯 Sobre o Projeto

Sistema bancário digital completo desenvolvido como teste técnico, implementando funcionalidades de um banco real com arquitetura sólida, segurança robusta e interface moderna.

✨ Principais Funcionalidades

  • 🔐 Autenticação segura com hash de senhas
  • 👥 Gestão de clientes (Pessoa Física e Jurídica)
  • 💸 Transações bancárias (Transferências, depósitos, saques)
  • 📊 Dashboard administrativo com estatísticas
  • 🔍 Busca e filtros avançados
  • 📱 Interface responsiva (Mobile-first)
  • Validações robustas (Frontend + Backend)

🚀 Execução Rápida (para Recrutadores)

📦 Opção 1: Docker Hub (Recomendado)

# Baixar e executar com um comando
docker run -d --name cdc-bank -p 8000:80 joaolezsi/cdc-bank-teste:latest

# Ou use os scripts automatizados:
# Windows: executar-teste.bat
# Linux/Mac: ./executar-teste.sh

📦 Opção 2: Docker Compose

git clone https://github.com/joaolezsi/cdc-bank-teste.git
cd cdc-bank-teste
docker-compose up -d

🔗 Acesso ao Sistema


🛠️ Tecnologias Utilizadas

Backend

  • PHP 8.1.33 - Linguagem principal
  • CodeIgniter 4.6.1 - Framework MVC
  • MariaDB 10.6 - Banco de dados
  • Apache 2.4 - Servidor web

Frontend

  • Bootstrap 5.3.0 - Framework CSS responsivo
  • jQuery 3.7.0 - Biblioteca JavaScript
  • Chart.js 3.9.1 - Gráficos interativos
  • Font Awesome 6.0 - Ícones

DevOps

  • Docker & Docker Compose - Containerização
  • Git - Controle de versão

🏗️ Arquitetura do Sistema

Padrão MVC

├── app/
│   ├── Controllers/        # Lógica de controle
│   │   ├── Auth.php       # Autenticação
│   │   ├── Dashboard.php  # Dashboard
│   │   ├── Clients.php    # Gestão de clientes
│   │   └── Transactions.php # Transações
│   ├── Models/            # Modelos de dados
│   │   ├── User.php       # Usuário
│   │   ├── Client.php     # Cliente
│   │   └── Transaction.php # Transação
│   ├── Views/             # Templates
│   │   ├── auth/          # Login/logout
│   │   ├── dashboard/     # Dashboard
│   │   ├── clients/       # CRUD clientes
│   │   ├── transactions/  # Transações
│   │   └── layouts/       # Layout base
│   └── Database/          # Migrações e seeds
├── public/                # Assets públicos
├── docker-compose.yml     # Configuração Docker
└── Dockerfile            # Build da imagem

Banco de Dados

  • users - Usuários do sistema
  • clients - Clientes (CPF/CNPJ)
  • transactions - Transações bancárias

🔐 Segurança Implementada

Autenticação

  • ✅ Hash de senhas com password_hash()
  • ✅ Verificação de sessão em todas as rotas
  • ✅ Logout seguro com destruição de sessão

Validações

  • ✅ Validação de CPF/CNPJ
  • ✅ Sanitização de dados de entrada
  • ✅ Prevenção contra SQL injection (PDO)
  • ✅ Validações duplas (Frontend + Backend)

Transações

  • ✅ Transações atômicas no banco
  • ✅ Verificação de saldo antes de operações
  • ✅ Log de todas as operações

📊 Funcionalidades Detalhadas

Dashboard Administrativo

  • 📈 Estatísticas de clientes e transações
  • 📊 Gráficos interativos com Chart.js
  • 📋 Últimas transações
  • 🔍 Filtros por período

Gestão de Clientes

  • Criar: Pessoa Física (CPF) ou Jurídica (CNPJ)
  • 👁️ Visualizar: Dados completos + histórico
  • ✏️ Editar: Dados pessoais e financeiros
  • 🗑️ Remover: Inativação (se tem transações)

Transações Bancárias

  • 💰 Transferências: Entre clientes
  • 📥 Depósitos: Entrada de dinheiro
  • 📤 Saques: Retirada de dinheiro
  • 🔍 Histórico: Filtros e busca

🧪 Dados de Teste

O sistema já vem com dados de exemplo para teste:

Clientes Cadastrados

  1. João Silva Santos (CPF: 123.456.789-01)
  2. Maria Oliveira Costa (CPF: 987.654.321-09)
  3. Empresa ABC Ltda (CNPJ: 12.345.678/0001-95)

Transações

  • Transferências entre clientes
  • Depósitos e saques
  • Histórico completo

🌐 Containerização

Docker Compose

services:
  app:          # Aplicação PHP
  database:     # MariaDB
  phpmyadmin:   # Interface do banco

Portas Utilizadas

  • 8000 - Aplicação principal
  • 3308 - Banco de dados
  • 8082 - phpMyAdmin

📱 Interface Responsiva

Design Moderno

  • 🎨 Tema personalizado CDC Bank
  • 📱 Mobile-first approach
  • 🎯 UX otimizada para bancos
  • ✨ Animações e transições

Componentes

  • 📊 Cards informativos
  • 📋 Tabelas responsivas
  • 🔘 Botões com estados
  • 🎨 Cores corporativas

🔧 Desenvolvimento

Metodologia

  • Fase 1: Configuração do ambiente
  • Fase 2: Desenvolvimento core
  • Fase 3: Funcionalidades avançadas
  • Fase 4: Containerização e documentação

Boas Práticas

  • ✅ Código limpo e documentado
  • ✅ Padrões PSR-12
  • ✅ Tratamento de erros
  • ✅ Logs estruturados

📋 Scripts de Automação

Windows

  • executar-teste.bat - Inicia o sistema
  • parar-teste.bat - Para o sistema

Linux/Mac

  • ./executar-teste.sh - Inicia o sistema
  • ./parar-teste.sh - Para o sistema

🎥 Demonstração

Vídeo demonstrativo: [Link para o vídeo]


📞 Contato

Desenvolvedor: João Pedro Lezsi Fernandes
Email: joao.lezsi@whoid.com
LinkedIn: linkedin.com/in/joao-lezsi
GitHub: github.com/joaolezsi


🎯 Objetivo do Teste

Este projeto foi desenvolvido como teste técnico, demonstrando:

  • 🏗️ Arquitetura MVC sólida
  • 🔐 Implementação de segurança
  • 🐳 Containerização profissional
  • 📱 Interface moderna e responsiva
  • 🧪 Testes e validações
  • 📚 Documentação completa

Sistema completo, pronto para produção! 🚀

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published