- Ter instalado Node em sua versão 14+
- Após clonar o projeto, em seu diretório raiz execute o seguinte comando:
npm install
- Criar no banco de dados um novo schema com o nome do banco desejado.
- Renomear no diretório raiz o arquivo de .env.example para .env setando as variaveis de ambiente de acordo com as suas configurações MySql.
- Rodar as migrations com o comando:
node ace migration:run
- Rodar o seed de status (extremamente importante para o funcionamento, como as tasks e subtasks possuem a mesma nomeclatura de status, foi criado uma tabela só para status)
node ace db:seed
- Executar a aplicação com o comando:
npm run dev
Por default a aplicação irá rodar na porta 3333, acessando através do link, deverá receber a mensagem de API is running
http://localhost:3333
Informações
- Modelagem do banco
- Versão do Front-end: https://github.com/fabioalmeida132/desafio-front (Não era o foco do desafio, porém resolvi aprimorar minhas habilitades com front também. 😆)
Rotas
HTTP VERB | ROUTE | DESCRIPTION |
---|---|---|
GET | /boards | Lista todos os quadros. |
POST | /board | Envie no formato json os campos title e description, para criar um quadro. |
PUT | /board/:id | Passe por parametro o id e envie no formato json os campos title e description, para atualizar um quadro. |
DELETE | /board/:id | Passe por parametro o id do quadro, para deletar. |
GET | /tasks/:id | Passa por parametro o id do quadro, para listar todas as suas tarefas. |
POST | /task | Envie no formato json os campos title,description,boardId e statusId para criar uma tarefa. |
PUT | /task/:id | Passe por parametro o id e envie no formato json os campos title e description, para atualizar uma tarefa. |
DELETE | /task/:id | Passe por parametro o id da tarefa, para deletar. |
GET | /subtasks/:id | Passa por parametro o id da tarefa, para listar todas as suas subtarefas. |
POST | /subtask | Envie no formato json os campos title,description,taskId e statusId, para criar uma subtarefa. |
PUT | /subtask/:id | Passe por parametro o id e envie no formato json os campos title e description, para atualizar uma subtarefa. |
DELETE | /subtask/:id | Passe por parametro o id da subtarefa, para deletar. |
GET | /status/:id | Lista todos status |
PUT | /task/status/:id | Passe por parametro o id da tarefa e envie no formato json o campos statusId, para atualizar o status da tarefa. |
PUT | /subtask/status/:id | Passe por parametro o id da subtarefa e envie no formato json os campos statusId, para atualizar o status da subtarefa. |
Disclaimer
O projeto se baseava em desenvolver um backend para criação de quadros. com tarefas e subtarefas, possuindo ambos status de andamento.
O projeto inclui:
- Desenvolvido com AdonisJS (Laravel do javascript 😆 )
- Rotas em API REST
- Migrations e Relacionamentos
- Models e Controllers
- Validators