Coder Social home page Coder Social logo

bull-back-challenge's Introduction

bull-back-challenge

Package Technology Technology Package Technology

Backend technical challenge from toro investimentos

Requirements

About

Backend responsável por prover dados para SPA. Neste desafio, o user story escolhido foi a TORO-001.

Como não há cadastro de contas, e para auxiliar no teste, será gerado 4 contas para testes. Uma dessas contas estará bloqueada.

Conta bloqueada é uma proposta extra para aumentar a segurança, no momento de autenticação efetuda pensei em enviar uma notificação (sms, push, email) para usuário informando que foi feita login em determiado dispositivo onde ele pode não reconhecer o acesso e bloquear a conta. O bloqueio da conta em si não foi implementado é apenas uma proposta. Contas bloqueadas não podem acessar a plataforma.

Relação de contas para poder testar:

Senha para acesso todos usuários: 123456

[
	{
		"id" : "b296c754-6a10-41ce-a333-1d4940acc1d4",
		"email" : "[email protected]",
		"cpf" : "0000000001",
		"blocked" : false,
		"createdAt" : "2023-03-11T03:17:47.083Z",
		"updatedAt" : "2023-03-11T03:17:47.083Z",
		"hash" : "$2b$08$pq31Mm91E7G4\/pEaZCfymu7fSqB4hIxrx50By5ThXAMm3wG4DPLju",
		"name" : "Account 1"
	},
	{
		"id" : "f71bf306-9e32-41f7-993d-e363d2f65b15",
		"email" : "[email protected]",
		"cpf" : "0000000002",
		"blocked" : false,
		"createdAt" : "2023-03-11T03:17:47.083Z",
		"updatedAt" : "2023-03-11T03:17:47.083Z",
		"hash" : "$2b$08$pq31Mm91E7G4\/pEaZCfymu7fSqB4hIxrx50By5ThXAMm3wG4DPLju",
		"name" : "Account 2"
	},
	{
		"id" : "6bc53670-8747-4245-bc6f-458cf735f476",
		"email" : "[email protected]",
		"cpf" : "0000000003",
		"blocked" : false,
		"createdAt" : "2023-03-11T03:17:47.083Z",
		"updatedAt" : "2023-03-11T03:17:47.083Z",
		"hash" : "$2b$08$pq31Mm91E7G4\/pEaZCfymu7fSqB4hIxrx50By5ThXAMm3wG4DPLju",
		"name" : "Account 3"
	},
	{
		"id" : "68e050f8-14ad-4a5a-99eb-97c22089ce04",
		"email" : "[email protected]",
		"cpf" : "0000000004",
		"blocked" : true,
		"createdAt" : "2023-03-11T03:17:47.083Z",
		"updatedAt" : "2023-03-11T03:17:47.083Z",
		"hash" : "$2b$08$pq31Mm91E7G4\/pEaZCfymu7fSqB4hIxrx50By5ThXAMm3wG4DPLju",
		"name" : "Account 4"
	}
]

Setup

# it's necessary (required)
npm i
# linux/macOs
$ sh ./scripts/shell.sh

# or
$ sh ./scripts/dev.sh #show real-time log (nodemon)

Helper para linux/macOs (já faz tudo o que precisa)

$ sh ./scripts/shell.sh
# it's already done. You should be able to access http://localhost:3001/health-check

Outros sistemas operacionais:

Faça uma cópia .env.example e renomeie para .env (Se for usar node local, mude DB_HOST=bull-back-dbpara DB_HOST=localhost)

$ docker-compose up -d
$ docker exec -it bull-back-api bash

Tests

Execute os comandos:

$ docker exec -it bull-back-api bash

npm run test

# Testes com relatório de cobertura
npm run test:coverage

Documentação da API: http://localhost:3001/swagger

Techs

Essa aplicação foi projetada seguindo alguns princípios e techs, tais como:

  • Clean Architeture
  • SOLID
  • RESTful
  • Object Calisthenics
  • Repositories
  • Unit Tests
  • Integration Tests

A idéia de seguir alguns princípios de clean Arch e poder desenvolver soluções que não fiquem tão acompladas a framework, ORM, Client HTTP, banco de dados e etc. Em caso de mudança, exigirá esforço apenas para implementar os contratos (interfaces) no domínio.

bull-back-challenge's People

Contributors

silasstoffel avatar

Watchers

James Cloos avatar  avatar

Forkers

douglascarlini

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.