Construindo uma Carteira Digital com Typescript
Vamos criar um sistema seguindo arquitetura de microsserviços de modelo assíncrono, representando como uma fintech funciona. Criaremos API pra criação de contas, para transações bancárias, de depósito e transações de cartão.
O que você vai desenvolver </>
Descrição: O objetivo deste projeto prático hands-on é desenvolver um sistema de carteira digital que representa o funcionamento de uma fintech. Serão implementados microsserviços seguindo uma arquitetura assíncrona, permitindo a criação de contas, a realização de transações bancárias, depósitos e transações com cartão.
Objetivo: O objetivo principal deste projeto é fornecer aos participantes uma experiência prática na utilização da tecnologia TypeScript para o desenvolvimento de microsserviços que compõem uma carteira digital. Por meio da construção deste sistema, os participantes terão a oportunidade de aprender os conceitos fundamentais de arquitetura de microsserviços, desenvolvimento assíncrono e integração de serviços. Além disso, eles serão capazes de adquirir conhecimentos sólidos sobre as funcionalidades típicas de uma fintech, como criação de contas, transações bancárias e operações com cartão.
Requisitos técnicos:
- Tecnologia: TypeScript
- Framework: Recomenda-se a utilização de um framework web como Express.js para o desenvolvimento das APIs
- Banco de dados: Recomenda-se a utilização de um banco de dados relacional como MySQL ou PostgreSQL para persistir os dados das contas e transações
- Autenticação e autorização: Implementar um sistema de autenticação e autorização utilizando tokens JWT (JSON Web Tokens)
- Microsserviços: Desenvolver os seguintes microsserviços:
- Serviço de criação de contas: Responsável por receber as requisições de criação de uma nova conta, validar as informações fornecidas pelo usuário e persistir esses dados no banco de dados.
- Serviço de transações bancárias: Responsável por receber as requisições de transferência bancária entre contas, verificar a disponibilidade de saldo nas contas envolvidas e registrar essas transações no banco de dados.
- Serviço de depósito: Responsável por receber as requisições de depósito em uma conta específica, atualizar o saldo da conta e registrar essa transação no banco de dados.
- Serviço de transações com cartão: Responsável por receber as requisições de transações com cartão, verificar a disponibilidade de saldo na conta vinculada ao cartão, registrar essa transação no banco de dados e processar o pagamento junto aos sistemas de pagamento.
É importante considerar a modularização dos microsserviços e a comunicação assíncrona entre eles usando mensageria, como RabbitMQ ou Kafka. Além disso, é recomendado utilizar boas práticas de codificação, como o uso de padrões de projeto, testes unitários e a documentação adequada do código.
Quem vai te guiar neste projeto </>
Torne-se a opção Nº 1 dos recrutadores e conquiste as melhores vagas do mercado tech
Com o o DIO PRO você irá:
Acesso ilimitado a todos os bootcamps
E mais de 40 formações profissionais do zero ao avançado para você dominar as tecnologias nas carreiras front-end, back-end, data & analytics, mobile, cloud & DevOps e se preparar para trabalhar em grandes projetos nas empresas mais inovadoras do mundo
Mais de 180 projetos práticos para ganhar experiência
Libere acesso ilimitado a uma área com mais de 180 projetos e 650 cursos para você aprender, comprovar experiência prática e ter um portfólio de destaque no mercado
Fazer parte das maiores e mais inovadoras empresas do mundo
Certifique suas habilidades, ganhe experiência, suba no ranking de talentos e fique em destaque para recrutadores de empresas como iFood, Santander, Carrefour e outras dezenas que contratam profissionais na DIO.
Sobre a DIO
ACADEMIA PME EDUCACAO E CONSULTORIA EM NEGOCIOS LTDA.
CNPJ: 26.965.884/0001-02
A DIO é a maior comunidade de aprendizado contínuo em tecnologia da América Latina, que conecta os melhores talentos com as empresas mais inovadoras do mundo.
Um ecossistema educacional completo para aprendizagem em desenvolvimento de software, engenharia de dados, qualidade de software e computação em nuvem.