{"id":19883468,"url":"https://github.com/aureliodeboa/desafio_coorlab","last_synced_at":"2026-03-04T19:32:13.588Z","repository":{"id":229378274,"uuid":"776111961","full_name":"aureliodeboa/desafio_coorlab","owner":"aureliodeboa","description":null,"archived":false,"fork":false,"pushed_at":"2024-03-24T14:32:28.000Z","size":7383,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-01T03:26:28.554Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aureliodeboa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-22T17:50:32.000Z","updated_at":"2024-03-23T22:21:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"f4c4b9f2-87d8-42d3-aa89-809ac6d66ab8","html_url":"https://github.com/aureliodeboa/desafio_coorlab","commit_stats":null,"previous_names":["aureliodeboa/desafio_coorlab"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aureliodeboa/desafio_coorlab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aureliodeboa%2Fdesafio_coorlab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aureliodeboa%2Fdesafio_coorlab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aureliodeboa%2Fdesafio_coorlab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aureliodeboa%2Fdesafio_coorlab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aureliodeboa","download_url":"https://codeload.github.com/aureliodeboa/desafio_coorlab/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aureliodeboa%2Fdesafio_coorlab/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30090540,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T18:31:08.343Z","status":"ssl_error","status_checked_at":"2026-03-04T18:31:07.708Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T17:20:21.782Z","updated_at":"2026-03-04T19:32:13.317Z","avatar_url":"https://github.com/aureliodeboa.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Desafio CoorLab\nOlá DEV, pronto para participar do nosso processo seletivo?\n\n## Requisitos\n- Noções de programação web\n- Javascript\n- HTML\n- Python\n\n## Desafio\n(História fictícia) Uma empresa encomendou um sistema onde seus clientes com login e senha conseguem buscar viagens com duas opções principais, uma apresenta a viagem mais confortável e rápida, a outra a mais econômica. Por sorte, esse sistema é equipado com uma API REST que disponibiliza de forma estruturada todos os dados coletados das cotações de viagem. Tais informações estão modeladas da seguinte maneira:\n\n```\n[\n  {\n    \"id\": 1,                              \u003c--- ID da viagem\n    \"name\": \"Expresso Oriente\",           \u003c--- Nome da empresa\n    \"price_confort\": \"R$ 205.10\",         \u003c--- Custo da viagem no modo conforto\n    \"price_econ\": \"R$ 121.50\",            \u003c--- Custo da viagem no modo economico\n    \"city\": \"São Paulo\",                  \u003c--- Cidade de destino\n    \"duration\": \"12h\",                    \u003c--- Duração da viagem\n    \"seat\": \"1A\",                         \u003c--- Poltrona (modo economico)\n    \"bed\": \"4D\"                           \u003c--- Leito (modo conforto)\n  },\n]\n```\n\nImplemente uma solução utilizando no frontend Vue.js e no backend python, com base nos requisitos descritos na história a seguir:\n\n\n**História de Usuário: Calculadora de viagens**\n\nComo cliente logado no sistema,\nEu desejo saber qual é o preço da viagem mais confortável e rápida e o preço da mais econômica,\nPara tomar decisões mais assertivas e escolher a melhor viagem.\n\n\n**Cenário: Exibição dos Melhores Preços de Viagem**\n\nDado que estou na página de busca por viagens,\nClicar em analisar sem preencher os dados, devo receber um aviso no modal que preciso preencher,\nQuando inserir o destino,\nE informar a data da viagem,\nE clicar no botão \"Buscar\",\nEntão devo visualizar o nome da empresa, o tipo de leito, o tempo e custo total da viagem mais rápida,\nE devo visualizar o nome da transportadora, o custo total, o leito e a duração da viagem mais econômica.\n\n\n**Protótipo**\n\nhttps://github.com/coorlab/coorlab-challenge_2/assets/12722903/478e86c1-a4de-4d41-9108-f76195bf3105\n\nCaso não seja possível abrir o link anterior, o video do protótipo esta disponivel em ./doc/protype.mp4 .\n\n\n**Logo do Desafio**\n![Logo](./doc/logo.png)\n\n\nA implementação da aplicação deve utilizar Vue.js (2 ou 3) e deve seguir os requisitos da história de usuário, cenário e protótipo.\nDo ponto de vista de tecnologia utilizada para implementação, a única exigência é utilizar Vue.js (2 ou 3) no frontend e python no backend, outras bibliotecas, componentes e frameworks, podem ser utilizados, desde que sejam de código-aberto.\n\n\n## Implementação\n- Utilize python para implementar o backend.\n- Utilize Vue.js (2 ou 3) para implementar o frontend.\n- O frontend deverá se comunicar com o backend utilizando uma API REST.\n- Implemente sua solução dentro do diretório \"app\".\n- A API do backend deverá funcionar na porta 3000.\n- O frontend devera operar na porta 8080.\n- Utilize o arquivo \"data.json\" como base de dados para o backend.\n- Tanto no frontend quanto no backend não é necessário implementar a autenticação do usuário.\n- No arquivo \"run.sh\" adicione o script em bash para executar a sua aplicação, ou seja, instalar as dependências e executar o frontend e o backend.\n- Utilizaremos o script de \"run.sh\" para realizar a correção deste desafio, ele será executado em um Ubuntu 22.04 com as seguintes dependências pré-instaladas:\n    - python 3.8\n    - pip\n    - npm\n    - yarn\n    - wget\n    - poetry\n- Caso você necessite instalar qualquer outra dependência para sua aplicação, coloque esta ação para ser executada no \"run.sh\".\n- No arquivo \"RESULT.md\", descreva como foi a sua implementação para o desafio proposto.\n- Escreva o código em inglês, ou seja, variáveis, métodos, classes, logs, nomes de arquivos e qualquer outro elemento que componha o código da solução deverá estar em inglês.\n\n## Avaliação\nO que vamos avaliar:\n- Atenção aos requisitos do projeto.\n- Atenção as instruções que fornecemos.\n- Lógica.\n- Qualidade.\n- Manutenibilidade.\n- Organização.\n- Design.\n- Boas práticas.\n\nQuais são os passos no processo de avaliação do desafio:\n1. Análise da descrição da solução implementada, através da descrição fornecida pelo RESULT.md.\n2. Execução da aplicação utilizando \"run.sh\" e validação se a solução liga e se esta acessível através das portas recomendadas.\n3. Teste da solução implementada, para verificar se atende aos requisitos da história de usuário e cenário.\n4. Análise do design, para verificar se a solução segue o protótipo proposto.\n5. Análise do código.\n\n## Instruções\nSiga os seguintes passos para a execução do desafio:\n1. Crie um repositório **público** no GitHub.\n2. Faça o **clone** do repositório que você acabou de criar.\n3. Extraia os arquivos do \"desafio_coorlab.zip\" na pasta que você fez o clone do repositório.\n4. Faça o primeiro **commit** com apenas estes arquivos no seu repositório, desta forma fica mais simples avaliar o que você implementou.\n5. Implemente o desafio.\n6. Faça o **commit** da sua implementação, inclusive se você quiser criar um commit diferente para cada parte que você implementou, é uma prática que gostamos muito aqui na Coorlab.\n7. Faça o **push** das suas alterações.\n8. Após concluir os passos anteriores, preencha este [formulário](https://airtable.com/shrTjtwUrw7I1CuxE).\n\n### Recomendações\n- Não se esqueça de deixar o seu ***repositório público*** para podermos revisar o seu código, caso o repositório não esteja acessível, a solução não será avaliada.\n- Garanta que o \"run.sh\" instale as dependências que sua solução precisa e inicia as aplicações do frontend e backend, soluções que não executam não serão analisadas.\n- Iniciativa, ousadia, autonomia e proatividade são valores muito importante para nós. Acreditamos que é melhor pedir perdão do que permissão, então caso você queira adicionar alguma tecnologia para construção da solução além do que estamos propondo, ***JUST DO IT***. É só deixar indicado no RESULT.md, queremos ver o seu talento.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faureliodeboa%2Fdesafio_coorlab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faureliodeboa%2Fdesafio_coorlab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faureliodeboa%2Fdesafio_coorlab/lists"}