Em Desenvolvimento
Resumo BackEnd
O BackEnd dessa aplicação consiste em uma API que simula operações básicas de uma conta financeira, onde é possível fazer login com username
e password
, cadastrar novos usuários, consultar o balanço de um usuário, transferir dinheiro para outros usuários e consultar o extrato de transações de um usuário, podendo filtrar por data e tipo de operação (cash-in/cash-out).
A API
foi desenvolvida em NodeJS
com TypeScript
, Express
e PostgreSQL
como banco de dados. Possui uma arquitetura MSC
(Model, Service e Controller) e ORM
(Object Relational Mapping) com Sequelize
. Também possui autenticação com JWT
e criptografia com bcrypt
, as validações foram feitas com zod
e tratamento de erros com express-async-errors
.
Para mais detalhes: README.md
Resumo FrontEnd
O FrontEnd possui uma interface minimalista e consome a API desenvolvida no BackEnd, simula uma aplicação de uma conta financeira, onde é possível fazer login com username
e password
, consultar o balanço de um usuário, transferir dinheiro para outros usuários e consultar o extrato de transações de um usuário, podendo filtrar por data e tipo de operação (cash-in/cash-out).
Foi desenvolvido em ReactJS
com TypeScript
e criado utilizando Vite
. A estilização foi feita com Tailwind CSS
e Radix-UI
, com ícones da biblioteca phosphor-icons
e Axios
para fazer as requisições à API.
Para mais detalhes: README.md
backend
├── src
├── app.ts # definições de middlewares e rotas da API
├── server.ts # inicialização da API
├── /controllers # camada de controller - requisição do cliente para a API
├── /database # conexão com o banco de dados via Sequelize
├── /config # config sequelize
├── /migrations # migrations sequelize
├── /models # models sequelize
├── /seeders # seeders sequelize
├── /interfaces # interfaces da aplicação
├── /middlewares # Validação e autenticação de dados
├── /models # camada de model isolada
├── /routes # rotas para cada endpoint
├── /services # camada de service - regras de negócio
├── /errors # catalogo de erros
frontend
├── public
├── index.html # arquivo html
├── src
├── App.tsx # definições de rotas e componentes
├── index.tsx # inicialização da aplicação
├── /components # componentes da aplicação
├── /pages # páginas da aplicação
├── /services # camada de service - regras de negócio
├── /styles # estilização da aplicação
├── /utils # funções utilitárias
Portas utilizadas:
- Banco de Dados: 5432
- BackEnd: 3001
- FrontEnd: 5173
A instalação e execução vai depender do ambiente (Local
ou Docker
) que você está utilizando. Para executar localmente veja no README do Frontend e do Backend. As instruções a seguir são para execução utilizando Docker.
Os Scripts
disponíveis permitem a execução completa da aplicação em um ambiente Docker
com Docker Compose
, ou apenas o Banco de Dados PostgreSQL.
Apenas o Banco de Dados com Docker
npm run compose:up:dev
Apagar o Container
npm run compose:down:dev
O Front e o Back podem ser executados em suas respetivas pastas.
Aplicação Completa
npm run compose:up
Apagar os Containers
npm run compose:down
Logs do Docker
npm run compose:logs