Skip to content

This public repository has the purpose of publishing my implementation for Ebyrt's technical challenge (trybe's career blitz), which consists of a complete ToDo List application (front-end and back-end) using MERN stack.

Notifications You must be signed in to change notification settings

castromilton07/trybe-blitz-challenge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 

Repository files navigation

Boas Vindas ao Repositório App Ebyrt ToDo List

[trybe-blitz-challenge]


Contexto do Projeto

Este projeto consiste em desafio técnico para uma vaga de Desenvolvedor Full-Stack na empresa Ebyrt, e foi motivado por uma necessidade da empresa em aumentar a produtividade de seus colaboradores e proporcionar uma melhor organização de suas tarefas individuais. A ideia central consistia em desenvolver um app de lista de tarefas (ToDo List) que permite:

  • Visualizar as tarefas;
    • Permitir a ordenação de forma ascendente e descendente por: Título, Status e Data de Criação.
  • Criar novas tarefas;
  • Remover uma tarefa;
  • Atualizar o status de uma tarefa.

A aplicação precisava ser desenvolvida na Stack principal da empresae, MERN (Mongo-Express-React-Node) utilizando o conceito de arquitetura em camadas.


Como instalar

Pre-requisitos:

  • node e NPM (gerenciador de pacotes do node)
  • mongoDB (estar com o serviço do MongoDB inicializado)
    • Ex Linux: mongod --dbpath ~/data/db
  1. Clone o repositório (HTTPS ou SSH) e entrar na pasta do projeto
  • HTTPS git clone https://github.com/castromilton07/trybe-blitz-challenge.git
  • SSH git clone git@github.com:castromilton07/trybe-blitz-challenge.git.
  • cd trybe-blitz-challenge
  1. Instalar dependências e iniciar o Back-end
    • A partir da raiz do projeto:
  • cd back-end
  • npm install
  • npm start
  1. Instalar dependências e iniciar o Front-end
    • A partir da raiz do projeto:
  • cd front-end
  • npm install
  • npm start

Obs.:

  • O back-end está configurado para rodar na porta 3001. Caso deseje utilizar outra porta utilize o arquivo .env.example para trocar para a porta desejada. Após a alteração renomeie o arquivo para .env
  • O front-end está configurado por padrão para rodar na porta 3000.

Rotas do Back-end

- Ex: http://localhost:3001/tasks -> GET: Listar todas as tarefas
  • CRUD (Create-Read-Update-Delete)
    • /tasks [GET] Listar todas as tarefas
    • /tasks [POST] Criar uma nova tarefa
      • Passar no body do JSON: title, status e createdAt
    • /tasks/:id [GET] Listar uma tarefa específica através do ID
    • /tasks/:id [PUT] Atualizar uma tarefa específica através do ID
      • Passar no body do JSON: title e status ou somente o status
    • /tasks/:id [DELETE] Deletar uma tarefa específica através do ID
    • /tasks/clear [DELETE] Deletar todas as tarefas
  • Ordenação
    • /tasks/title/asc [GET] Listar em ordem Ascendente por Title
    • /tasks/title/desc [GET] Listar em ordem Descendente por Title
    • /tasks/status/asc [GET] Listar em ordem Ascendente por Status
    • /tasks/status/desc [GET] Listar em ordem Descendente por Status
    • /tasks/created/asc [GET] Listar em ordem Ascendente por CreatedAt
    • /tasks/created/desc [GET] Listar em ordem Descendente por CreatedAt

Deploy da aplicação no Heroku e Atlas

Imagem Ilustrativa do Front-end

Imagem Ilustrativa do Back-end

  • Database
    • O deploy do banco de dados (mongoDB) foi realizado crinado um cluster M0 compartilhado (gratuito) com servidor AWS (United States, mais próximo ao Deploy do Back-end Heroku/AWS-US) através da plataforma Atlas MongoDB Cloud.
    • Especificações do Cluster, Banco e Coleção:
      • RAM e vCPU compartilhadas;
      • LAN de baixa performance;
      • Armazenamento: 512MB;
      • Limite de conexões: 500;
      • Limite de bancos: 100;
      • Limite de coleções 500;

Cluster: trybe-blitz-todolist-castromilton07

Imagem Ilustrativa do Cluster

Database: Todolist

Imagem Ilustrativa do Database

Colection: tasks | Data Types: ObjectId, string e Date

Imagem Ilustrativa da Coleção e Tipos de Dados


Próximos passos

  • Implementação dos testes (unitários e integração);
  • Atingir no mínimo 30% de cobertura de testes;
  • Implementação de um sistema de Login com Token de acesso;
  • Aperfeiçoar a experiência do usuário e implementar responsividade para dispositivos menores (smartphones e tablets);
  • Implementação do Swagger para documentação da API.

Contatos

Milton Castro - Turma 12

Perfil

LinkedIn Github Behance Email Currículo

About

This public repository has the purpose of publishing my implementation for Ebyrt's technical challenge (trybe's career blitz), which consists of a complete ToDo List application (front-end and back-end) using MERN stack.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages