Projeto feito para o trabalho AT2 de Laborátorio de Banco de Dados, professor William Roberto Malvezzi.
I&L Com uma arquitetura moderna baseada em React.js e Tailwind CSS para o frontend, e Python (Flask) com PostgreSQL para o backend, o Infinity & Legacy foi projetado para oferecer uma experiência bancária completa, segura e eficiente.
Desenvolvedores do projeto:
- Carlos Eduardo Lima de Oliveira
-
Separação em front-end e back-end com persistência
-
Organização em:
controllers/: lógica dos endpointsroutes/: definição das rotas da APIservices/: lógica de negóciosmodels/: estruturação das tabelas do bancodatabase/: conexão com bancoclient/: arquivos .JSX, componentes e requisições .js
-
Uso do Flask como framework de servidor
-
Estrutura de tabelas (
usuario,funcionario,cliente...) -
Funções (
fn_criar_conta_apos_aprovacao(),fn_atualizar_saldo_conta()...) -
Triggers (
tg_atualizar_saldo_conta,depositar_emprestimo_trigger...) -
Procedures (
processar_emprestimo,decidir_emprestimo...) -
Views (
vw_emprestimos_ativos) -
Index (
idx_emprestimo_cliente_data,idx_transacao_conta_data...) -
Uso de
.envcom variáveis de conexão
-
Registro com senha criptografada
bcrypt -
Login com validação e uso de
SessionLocalde SQLAlchemy -
Armazenar dados do usuário na sessão via
session -
Logout (destruir sessão) e registro na tabela
auditoria
-
Manipulação de componentes
-
Utilização de hooks e useAuth (authContext) para persistência de dados
-
Formatação de campos como Telefone, CPF, CEP, etc
-
fetch()para consumir a API (GET, POST, PUT, DELETE) -
Manipulação de JSON e tratamento de erros com
try/catch
-
Verbos HTTP:
GET,POST,PUT,DELETE -
Estrutura de rotas RESTful como
/api/usuario,/api/auth/login -
Corpo da requisição:
application/json -
Utilização de
Blueprint
- Uso do TailwindCSS para responsividade e design moderno
-
Cadastro de clientes e funcionários com validação
-
Login com redirecionamento e restrição de falhas
-
Painel do
cliente/funcionario(com funções restringidas de acordo com a hierarquia) -
Hierarquia de funcionários
Estagiário,GerenteeAdmin -
Detalhes de informações sobre conta e capacidade de editar dados
-
Solicitação de abertura de conta bancária
Poupança,CorrenteeInvestimento -
Solicitação de
Empréstimos(com limite de R$ 100.000,00) baseados no score. -
Ações financeiras como
Saque,DepósitoeTransferênciacom restrições e taxas -
Geração de
Extratosexportáveis (PDF) -
Geração de
Relátóriospara funcionários (com restrição de hierarquia) -
Painel de
ativação/desativaçãode funcionários para os cargos de administrador
É necessário ter os seguintes programas instalados:
-
PostgreSQL
-
Git (para clonar o repositório) OBS: caso queira fazer manualmente, pule o passo 1.
git clone https://github.com/kaduolliver/Banking-System.git cd Banking-System code .
Crie um arquivo chamado .env na raiz com os seguintes dados (ajuste conforme o seu banco de dados local)
Exemplo:
.envDB_USER=postgres (por padrão) DB_HOST=localhost DB_NAME=seu_banco DB_PASSWORD=sua_senha DB_PORT=5432 (por padrão) SECRET_KEY=sua_key
Para gerar uma key digite no terminal:
python import secrets print(secrets.token_hex(32))
Entre no pgAdmin 4 e crie uma nova Database e o mesmo nome que colocar deve por no DB_NAME do .env, selecione a database criada e aperte em Query Tool (Alt+Shift+Q), copie os comandos e execute (F5):
O arquivo .sql para criar as tabelas/funções/triggers, etc: Cod. PostgreSQL [atualizado].sql
Considerações importantes:
Depois de criar as tabelas/funções, etc. Execute o comando:
INSERT INTO agencia (nome, codigo_agencia)
VALUES ('Agencia Central', '001');
Com isso criará uma agência. É necessáio ter uma agência cadastrada para criar funcionários.
Depois de cadastrar 2 funcionários, insira a hierarquia de 'Admin' e 'Gerente':
UPDATE funcionario
SET cargo = 'Admin',
nivel_hierarquico = 3,
inativo = false,
id_supervisor = NULL,
codigo_funcionario = NULL
WHERE id_usuario = 1;
UPDATE funcionario
SET cargo = 'Gerente',
nivel_hierarquico = 2,
inativo = false,
id_supervisor = 1,
codigo_funcionario = NULL
WHERE id_usuario = 2;
No terminal (ou prompt de comando), dentro da pastar /server:
python -m venv venv
Depois ative:
venv\Scripts\activate
Com o (venv) ativado, execute:
pip install -r requirements.txt
Com depêndencias baixadas e .env configurado, execute no /server:
python run.py
Servidor backend ativado! Agora precisamos ativar o frontend. Não exclua o prompt que esta rodando o backend, crie outro.
Com outro prompt execute:
cd /client npm install
Aguarde as dependencias do /node_modules baixarem Então...
npm run dev
Acesse a porta http://localhost:5173/ no seu navegador
Se quiser testar a funcionalidade do QRCode acesse a porta IP da sua máquina
Abra o cmd e execute:
ipconfig
Acesse o IPv4 no seu navegador com a rota :5163/
QRCode funciona se seu celular e máquina estiver na mesma rede