wilcorrea / frontend-challenge

:computer: Quarta Casa frontend challenge

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

frontend-challenge

Iniciando o desafio

Para a iniciar o desafio faça um fork desse repositório para o seu perfil pessoal, mas atente-se a ler todo o README.md antes porque o tempo para a solução do desafio começa a correr quando o fork é feito.

Descrição

Uma empresa te contratou para desenvolver um produto que gerencia projetos, onde equipes tem seus objetivos e cada objetivo tem suas tarefas. Todas as aplicações client-side criadas deverão funcionar de forma offline-first onde os membros das equipes possam marca suas tarefas como concluidas sem precisar está conectado a internet e para isso a empresa exerga necessita de ter aplicativo mobile, desktop e web para facilitar a relação membro de equipe e software.

Requisitos para os projetos

Design

Criar toda a User Interface e User Experience para o produto de forma responsiva utilizando o conceito de design system para o reaproveitamento dos componentes de UI.

Tecnologia

Conversa vai, conversa vem e o setor de tecnologia achou interessante o reaproveitamento de código que se consegue ter com a biblioteca React.js logo acharam ideal usar React.js para Web, React Native para Mobile e Electron com React.js para Desktop nativo.

Negócio

A empresa que te contratou ja possui uma API onde será fácil integrar, ela é basicamente composta por quatro entidades: User, Milestone, Roadmap, Task.

Sobre a entidade User

User basicamente será a entidade responsável pela regra e dados relacionado aos usuários do software onde o mesmo terá dois níveis de permissionamento, que são:

  • Manager: O gerenciador, ele cria um Milestone. A partir dai ele pode criar quantos Roadmap, com diversas Task, achar necessário para a conclusão de um Milestone.
  • Executor: O executor, ele é o único quem pode executar as Task que compoem um Roadmap.

⚠️ Esses perfis de permissão são atribuidos a um User podendo ter quanto forem necessário, por exemplo, poderiamos ter um Manager Executor onde o mesmo iria criar um Millestone, criar um Roadmap e executar as Tasks criadas para esse Roadmap.

Sobre a entidade Milestone

Milestone, funciona como um chamado para execução de algo maior onde apenas um User com permissão de Creator pode criar um Milestone. Para a Milestone ser executada deverá ter algum User com permissão de Manager para afiliar-se a ela e assim criar um planejamento e execução, onde chamamos de Roadmap.

Sobre a entidade Roadmap

Todo Roadmap deve está atrelado a um Milestone, necessáriamente, o objetivo dele é organizacional e para isso não importa quantos Roadmap precisem ser criados. Todo Roadmap necessáriamente precisa ser composto ao menos por uma Task onde apenas o User com permissão Manager pode criar.

Sobre a entidade Task

Toda Task existe para ser executada por algum Executor, dado que a mesma foi executada o status dela muda para done.

Sobre a API que deverá ser consumida

TODO: Desenvolver a API que será consumida pelo desafio com documentação em Swagger

Pontos que serão avaliados

  • O quanto foi coerente com a descrição do problema e os requisitos do projeto
  • O desaclopamento das lógicas de negócios para melhor manutenção do código
  • O reproveitamento de código
  • A organização de pastas
  • Testes
  • Facilidade para iniciar a aplicação
  • Documentação de componentes com a utilzação do Storybook
  • Reaproveitamento de componentes entre aplicativos (Mobile, Desktop, Web)

O que contará como ponto extra

  • Será legal se tiver algum Dockerfile ou docker-compose
  • Tudo escrito usando TypeScript
  • Trabalhar os projetos como monorepo usando Lerna, cada aplicativo (Mobile, Desktop, Web) compartilhando o mesmo código.

Terminei, como entrego a solução?

Então, assumimos que tudo foi feito via fork desse projeto para o seu perfil pessoal como descrito aqui. Depois de ter feito toda a solução basta abrir um pull request para a master e pronto, desafio entregue.

Contatos para qualquer tipo de dúvida sobre o desafio

Email: guilherme@quartacasa.com.br

About

:computer: Quarta Casa frontend challenge