Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Desafio Entrevista Junior #386

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 8 additions & 19 deletions PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,43 +4,32 @@ Gostariamos de entender como você pensa e as decisões que você tomou durante

**Framework, linguagem e ferramentas**

Descreva ferramentas e bibliotecas (libraries, framework, tools etc) você usou.
Utilizei TypeORM, PostgreSQL, NestJS, Angular, TypeScript e Sass para construir a solução. Essas ferramentas foram escolhidas principalmente pelo meu domínio e pelo seu alinhamento com boas práticas de desenvolvimento. O NestJS, por exemplo, oferece uma estrutura sólida e escalável para o back-end, enquanto o Angular me permite desenvolver uma interface dinâmica e rica. TypeORM e PostgreSQL garantem um trabalho eficaz com banco de dados relacional, e o uso de Sass permite que eu escreva um CSS mais modular e de fácil manutenção.

**Técnologias X e Y**

Justifique porque você optou pela tecnologia X e não a Y?
Sempre busco adotar as tecnologias com as quais já tenho experiência, mas quando preciso trabalhar com algo novo, dedico um tempo para aprender e me aprofundar. Por exemplo, embora eu tenha mais experiência com React, optei por Angular para este projeto, pois é uma ferramenta robusta e adequada para a construção de SPAs (Single Page Applications) de grande escala, e a oportunidade de aprender mais sobre Angular foi um fator motivador. Em relação ao TypeORM e PostgreSQL, as escolhas foram fundamentadas em seu excelente suporte a projetos em Node.js e por serem ferramentas bem documentadas e amplamente utilizadas no mercado.

**Princípios de software**

Quais princípios da engenharia de software que você usou?
Sempre que possível, tento manter o código simples, claro e com baixa complexidade, facilitando futuras alterações e a escalabilidade do sistema. Aplicar o princípio KISS ("Keep It Simple, Stupid") tem sido fundamental para garantir que a manutenção e a evolução do sistema não se tornem desafios complicados. Além disso, procurei seguir boas práticas como DRY ("Don’t Repeat Yourself") para evitar duplicação de código e garantir uma base de código mais limpa e organizada.

**Desafios e problemas**

Conte um pouco sobre os desafios e problemas que você enfrentou e como você resolveu.
Um dos maiores desafios que enfrentei foi lidar com o gerenciamento de estados complexos na aplicação. Tive que estudar e buscar soluções em tutoriais, vídeos e documentação oficial para resolver alguns problemas de sincronização de dados entre componentes. A busca por soluções e o estudo de novas abordagens me ajudaram a melhorar a implementação e a otimizar o código.

**Melhorias e próximas implementações**

O que você entende que pode ser melhorado e como isso pode ser feito?
Ainda vejo oportunidades de componentizar mais a aplicação, para tornar o código mais modular e reutilizável.

**Vídeo de apresentação**

Grave um vídeo do seu projeto rodando e envie o link:
<!-- Dica: você pode usar o https://jam.dev/ para facilitar sua gravação ;) -->
https://youtu.be/xANC2FPWpWo

**Sobre você**

Queremos te conhecer um pouco melhor, conte um pouco sobre você.

Onde nasceu/De onde você é? Lugares que estudou, empresas que trabalhou, como você se envolveu com desenvolvimento de software.. enfim, Quem é você?
Meu nome é Junior, tenho 24 anos e moro em São José do Rio Preto. Comecei minha jornada profissional em Administração, mas a área de desenvolvimento de software foi o que realmente me apaixonou. Decidi então cursar Análise e Desenvolvimento de Sistemas (ADS) enquanto ainda estava na faculdade de Administração. Sou casado e, recentemente, iniciei minha carreira em desenvolvimento de software. Na última empresa em que trabalhei, entrei como estagiário e, no mês seguinte, já estava assumindo a responsabilidade pelos projetos, desenvolvendo o front-end do zero e realizando ajustes na API. Tenho experiência com React e Node.js, mas estou ampliando meus conhecimentos para Angular. Sou uma pessoa extremamente curiosa e apaixonada por aprender. Sempre que me deparo com algo novo, busco aprender o máximo possível para me tornar um profissional melhor.

**Outros detalhes**

Se quiser enviar alguma informação adicional sobre o desafio..


---

Ah, deixe seu e-mail ou telefone para entrarmos em contato com você :)



Estou muito animado com a oportunidade de crescer na empresa e contribuir com minha experiência. Tenho certeza de que posso agregar valor e aprender muito com a equipe. Estou pronto para novos desafios e ansioso para colaborar no que for necessário.
25 changes: 25 additions & 0 deletions back/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
module.exports = {
parser: '@typescript-eslint/parser',
parserOptions: {
project: 'tsconfig.json',
tsconfigRootDir: __dirname,
sourceType: 'module',
},
plugins: ['@typescript-eslint/eslint-plugin'],
extends: [
'plugin:@typescript-eslint/recommended',
'plugin:prettier/recommended',
],
root: true,
env: {
node: true,
jest: true,
},
ignorePatterns: ['.eslintrc.js'],
rules: {
'@typescript-eslint/interface-name-prefix': 'off',
'@typescript-eslint/explicit-function-return-type': 'off',
'@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/no-explicit-any': 'off',
},
};
56 changes: 56 additions & 0 deletions back/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# compiled output
/dist
/node_modules
/build

# Logs
logs
*.log
npm-debug.log*
pnpm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*

# OS
.DS_Store

# Tests
/coverage
/.nyc_output

# IDEs and editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace

# IDE - VSCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json

# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local

# temp directory
.temp
.tmp

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
4 changes: 4 additions & 0 deletions back/.prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"singleQuote": true,
"trailingComma": "all"
}
99 changes: 99 additions & 0 deletions back/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
<p align="center">
<a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="120" alt="Nest Logo" /></a>
</p>

[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456
[circleci-url]: https://circleci.com/gh/nestjs/nest

<p align="center">A progressive <a href="http://nodejs.org" target="_blank">Node.js</a> framework for building efficient and scalable server-side applications.</p>
<p align="center">
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/v/@nestjs/core.svg" alt="NPM Version" /></a>
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/l/@nestjs/core.svg" alt="Package License" /></a>
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/dm/@nestjs/common.svg" alt="NPM Downloads" /></a>
<a href="https://circleci.com/gh/nestjs/nest" target="_blank"><img src="https://img.shields.io/circleci/build/github/nestjs/nest/master" alt="CircleCI" /></a>
<a href="https://coveralls.io/github/nestjs/nest?branch=master" target="_blank"><img src="https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9" alt="Coverage" /></a>
<a href="https://discord.gg/G7Qnnhy" target="_blank"><img src="https://img.shields.io/badge/discord-online-brightgreen.svg" alt="Discord"/></a>
<a href="https://opencollective.com/nest#backer" target="_blank"><img src="https://opencollective.com/nest/backers/badge.svg" alt="Backers on Open Collective" /></a>
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://opencollective.com/nest/sponsors/badge.svg" alt="Sponsors on Open Collective" /></a>
<a href="https://paypal.me/kamilmysliwiec" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg" alt="Donate us"/></a>
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg" alt="Support us"></a>
<a href="https://twitter.com/nestframework" target="_blank"><img src="https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow" alt="Follow us on Twitter"></a>
</p>
<!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer)
[![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)-->

## Description

[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.

## Project setup

```bash
$ npm install
```

## Compile and run the project

```bash
# development
$ npm run start

# watch mode
$ npm run start:dev

# production mode
$ npm run start:prod
```

## Run tests

```bash
# unit tests
$ npm run test

# e2e tests
$ npm run test:e2e

# test coverage
$ npm run test:cov
```

## Deployment

When you're ready to deploy your NestJS application to production, there are some key steps you can take to ensure it runs as efficiently as possible. Check out the [deployment documentation](https://docs.nestjs.com/deployment) for more information.

If you are looking for a cloud-based platform to deploy your NestJS application, check out [Mau](https://mau.nestjs.com), our official platform for deploying NestJS applications on AWS. Mau makes deployment straightforward and fast, requiring just a few simple steps:

```bash
$ npm install -g mau
$ mau deploy
```

With Mau, you can deploy your application in just a few clicks, allowing you to focus on building features rather than managing infrastructure.

## Resources

Check out a few resources that may come in handy when working with NestJS:

- Visit the [NestJS Documentation](https://docs.nestjs.com) to learn more about the framework.
- For questions and support, please visit our [Discord channel](https://discord.gg/G7Qnnhy).
- To dive deeper and get more hands-on experience, check out our official video [courses](https://courses.nestjs.com/).
- Deploy your application to AWS with the help of [NestJS Mau](https://mau.nestjs.com) in just a few clicks.
- Visualize your application graph and interact with the NestJS application in real-time using [NestJS Devtools](https://devtools.nestjs.com).
- Need help with your project (part-time to full-time)? Check out our official [enterprise support](https://enterprise.nestjs.com).
- To stay in the loop and get updates, follow us on [X](https://x.com/nestframework) and [LinkedIn](https://linkedin.com/company/nestjs).
- Looking for a job, or have a job to offer? Check out our official [Jobs board](https://jobs.nestjs.com).

## Support

Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).

## Stay in touch

- Author - [Kamil Myśliwiec](https://twitter.com/kammysliwiec)
- Website - [https://nestjs.com](https://nestjs.com/)
- Twitter - [@nestframework](https://twitter.com/nestframework)

## License

Nest is [MIT licensed](https://github.com/nestjs/nest/blob/master/LICENSE).
8 changes: 8 additions & 0 deletions back/nest-cli.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"$schema": "https://json.schemastore.org/nest-cli",
"collection": "@nestjs/schematics",
"sourceRoot": "src",
"compilerOptions": {
"deleteOutDir": true
}
}
Loading