Projeto final para o treinamento da turma 6 de NodeJS da Gama Academy, oferecido pela Accenture.
Construir uma aplicação web, utilizando Node.js e todas as bibliotecas e tecnologias que aprendemos durante o curso (você é livre para substitui-lás mas fica por sua conta e risco, ok ?) e disponibiliza-las em um servidor em cloud com acesso irrestrito por zona ou por horario.
-
GET
/status- Verificar status do servidor
Requisitos: N/A
Autenticação: N/A -
POST
/signup- Criar usuários
Requisitos: username, password, email, cpf, name, adress, phone
Autenticação: N/A -
POST
/auth- Login
Requisitos: reqUsername, reqPassword
Autenticação: N/A -
GET
/accounts/checkbalance- Verificar saldo
Requisitos: N/A
Autenticação: JWT -
POST
/accounts/selfdeposit- Deposito na própria conta
Requisitos: value
Autenticação: JWT -
POST
/accounts/externdeposit- Deposito externo identificado
Requisitos: name, cpf, accountNumber, value
Autenticação: N/A -
POST
/account/interntransfer- Transferências Internas
Requisitos: toUsername, value
Autenticação: JWT -
POST
/account/externtransfer- Transferências Externas
Requisitos: bankCode, cpf, value
Autenticação: JWT -
GET
/account/movementrecords- Extrato conta corrente do mês
Requisitos: N/AParametros opcionais:
- operation (valores: 'remove' ou 'deposit')
- startDay & finishDay
- daysBeforeAutenticação: JWT
-
POST
/account/purchasedebt- Compra no débito
Requisitos: value
Autenticação: JWT -
POST
/creditcard/purchase- Compra no crédito
Requisitos: value, description, instalments
Autenticação: JWT -
GET
/creditcard/checkinvoice- Verificar fatura
Requisitos: N/A
Autenticação: JWT -
GET
creditcard/paydueinvoice- Pagar fatura cartão de crédito
Requisitos: N/A
Autenticação: JWT -
GET
/swagger- Swagger
Requisitos: N/A
Autenticação: N/A
Observação toda verificação será feita via JWT (jsonwebtoken) enviada no Header do HttpRequest, através da chave
Authorization
npm run startIniciar o servidornpm run start_devInicia o servidor em watch modenpm run compileCompilar o TypeScriptnpm run compile_devCompilar o TypeScript em watch modenpm run testInicia o teste unitárionpm run test_devInicia o teste unitário em watch mode
Observação: Para iniciar em produção, recomenda-se somente a utilização do script
npm run startapos ter o TypeScript compilado pelonpm run compile. Todos scripts com o sufixo _dev foram criados para aumentar a produtividade em modo de desenvolvimento e por isso recomenda-se o seu uso somente durante esse processo
- Criação de conta de usuário
- Criação do cliente do banco
- Criação de conta corrente
- Criação de cartão de crédito
- Publicação do balanço inicial de conta corrente e fatura do cartão de crédio
- Compra com débito, utilizando saldo da conta corrente
- Extrato de movimentação da conta corrente(opcionalmente parametrizado)
- Verificação do saldo atual da conta corrente
- Auto deposito
- Deposito de pessoa externa identificada
- Transferências internas entre contas
- Transferências externas para outros bancos indentificados
- Compra no Cartão de crédito
- Verificação fatura atual do cartão de crédito e lista de compras
- Pagamento da fatura do cartão de crédito
- Serviço de envio de Email na compra de débito e crédito
- Envio de SMS e TTS na compra de crédito
- Documentação das rotas pelo swagger
- Typescript
- Express
- TypeORM
- MySQL
- Bcrypt
- Jsonwebtoken
- Mocha
- Chai
- Camada de controllers
- Camada de serviços
- Camada de modelos
- Camada de repositório com TypeORM
- Modularizado em responsabilidades únicas
- Variaveis de ambiente com informações sensíveis
- Kanban
- Git flow
- Commits atômicos
- Código limpo
Mais informações sobre o sistema como as Entidades de Relacionamento do banco de dados etc... Pode ser encontrada dentro da pasta docs
Toda a equipe do Time 2, agradece imensamente ao treinamento oferecido pela Accenture através da Gama Academy, em especial as pessoas que nos deram toda assistência para o nosso particular desenvolvimento pessoal e intelectual: Bruce, Deah e JC o homem, a lenda, o melhor professor. Obrigado a todos!!!
