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 start
Iniciar o servidornpm run start_dev
Inicia o servidor em watch modenpm run compile
Compilar o TypeScriptnpm run compile_dev
Compilar o TypeScript em watch modenpm run test
Inicia o teste unitárionpm run test_dev
Inicia o teste unitário em watch mode
Observação: Para iniciar em produção, recomenda-se somente a utilização do script
npm run start
apos 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!!!