{"id":21541713,"url":"https://github.com/concretesolutions/accenture-internal-challenge","last_synced_at":"2026-03-19T20:49:04.168Z","repository":{"id":86351924,"uuid":"491234268","full_name":"concretesolutions/accenture-internal-challenge","owner":"concretesolutions","description":"Accenture's repository for internal challenges","archived":false,"fork":false,"pushed_at":"2022-05-16T11:34:54.000Z","size":6,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-01-24T08:31:16.371Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"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/concretesolutions.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":"2022-05-11T18:45:53.000Z","updated_at":"2023-10-04T18:14:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"749e8c82-964d-4432-9a68-c7299eae112f","html_url":"https://github.com/concretesolutions/accenture-internal-challenge","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/concretesolutions%2Faccenture-internal-challenge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/concretesolutions%2Faccenture-internal-challenge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/concretesolutions%2Faccenture-internal-challenge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/concretesolutions%2Faccenture-internal-challenge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/concretesolutions","download_url":"https://codeload.github.com/concretesolutions/accenture-internal-challenge/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244124179,"owners_count":20401683,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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-24T05:07:22.569Z","updated_at":"2026-01-04T04:53:01.457Z","avatar_url":"https://github.com/concretesolutions.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Desafio Interno Accenture\n\n## Introdução\n\nEste é um desafio para que possamos ver as suas habilidades como Developer (seja backend, cloud ou fullstack).\n\nNesse desafio você irá desenvolver uma REST API que utilizará os dados do projeto [Space Flight News](https://api.spaceflightnewsapi.net/v3/documentation), uma API pública com informações relacionadas a voos espaciais.\n\n- Poderá também utilizar um projeto ja existente nestes moldes para fazer a entrega. (Opcional)\n\nO projeto a ser desenvolvido por você tem como objetivo exibir os dados dos artigos, com o título, imagem (link para backend), resumo e data de publicação. \n\n**[SOMENTE PARA FULLSTACK]** Atente-se, ao desenvolver a aplicação front-end, para conceitos de usabilidade.\n\n### Instruções iniciais obrigatórias\n\n- O projeto **back-end** deverá ser desenvolvido com uma das tecnologias a seguir: **JVM Java/Kotlin/Scala | Go Lang | Python | Node.js | C# .NET Core**;\n- Criar um banco de dados em memoria\n- Ou banco de dados grátis **MongoDB** usando Atlas: https://www.mongodb.com/cloud/atlas \n- Ou banco de dados grátis **MySQL** no Heroku: https://elements.heroku.com/addons/jawsdb\n- Ou banco de dados grátis **Postgres** no Heroku: https://elements.heroku.com/addons/heroku-postgresql;\n\n### Modelo de Dados:\n\nPara a definição do modelo consulte a rota [GET]/articles da API, nesta rota você pode ver a estrutura como o exemplo:\n\n```json\n{\n    \"id\": 0,\n    \"featured\": false,\n    \"title\": \"string\",\n    \"url\": \"string\",\n    \"imageUrl\": \"string\",\n    \"newsSite\": \"string\",\n    \"summary\": \"string\",\n    \"publishedAt\": \"string\",\n    \"launches\": [\n      {\n        \"id\": \"string\",\n        \"provider\": \"string\"\n      }\n    ],\n    \"events\": [\n      {\n        \"id\": \"string\",\n        \"provider\": \"string\"\n      }\n    ]\n  }\n```\n\n### Back-End:\n\nNessa etapa você deverá construir uma API Restful com as melhores práticas de desenvolvimento, baseada na API [Space Flight News](https://api.spaceflightnewsapi.net/v3/documentation). Para isso você deve executar os passos a seguir:\n\n**Obrigatório 1** - Você deverá desenvolver as seguintes rotas:\n\n- `[GET]/: ` Retornar um Status: 200 e uma Mensagem \"Desafio Interno Accenture - Space Flight News\"\n- `[GET]/articles/:`   Listar todos os artigos da base de dados, utilizar o sistema de paginação na resposta do endpoint para não sobrecarregar a REQUEST\n- `[GET]/articles/{id}:` Obter a informação somente de um artigo\n- `[POST]/articles/:` Adicionar um novo artigo\n\n**Obrigatório 1** - Para alimentar o seu banco de dados você deve criar um script para armazenar os dados de todos os artigos na Space Flight News API. \n\n**Obrigatório 2** - Escrever Unit Test\n\n**Diferencial 1** - Configurar Docker no Projeto para facilitar o Deploy da equipe de DevOps;\n\n**Diferencial 2** - Descrever a documentação da API utilizando o conceito de Open API 3.0;\n\n**Diferencial 3** - Escrever Contract Testes para os endpoints da API;\n\n**Diferencial 4** - Escrever rotas para criar, atualizar e deletar artigos;\n\n- `[PUT]/articles/{id}:` Atualizar um artigo baseado no `id`\n- `[DELETE]/articles/{id}:` Remover um artigo baseado no `id`\n\n### Front-End (Somente para Fullstack):\n\nNessa etapa você deverá desenvolver uma aplicação web para consumir a API que você criou. Você deve limitar o `request` para exibir apenas 10 resultados.\n\nPara o desenvolvimento você pode utilizar algum framework CSS ou criar seu proprio estilo.\n\n**Obrigatório 1** - Desenvolver a funcionalidade do buscador para que seja possível listar artigos que contenham as palavras no título;\n\n**Obrigatório 2** - Desenvolver a funcionalidade para ordenar os artigos por data, da mais antiga para a mais nova e da mais nova para a mais antiga;\n\n**Obrigatorio 3** - Desenvolvar a funcionalidade de criar artigos.\n\n**Diferencial 1** Desenvolver as funcionalidades para atualizar e remover artigos.\n\n**Diferencial 2** Escrever Unit Tests ou E2E Test. Escolher a melhor abordagem e biblioteca;\n\n**Diferencial 3** Configurar Docker no Projeto para facilitar o Deploy da equipe de DevOps;\n\n## Readme do repositório\n\n- Deve conter o título do projeto\n- Uma descrição sobre o projeto em frase\n- Deve conter uma lista com linguagem, framework e/ou tecnologias usadas\n- Como instalar e usar o projeto (instruções)\n- Não esqueça o [.gitignore](https://www.toptal.com/developers/gitignore)\n\n## Finalização e instruções para a apresentação\n\nAvisar sobre a finalização e enviar para correção.\n\n1. Verifique se o README está bom e faça o PR;\n3. Coloque o link do PR no email para o RH;\n4. Envie e aguarde as instruções para seguir no processo. Sucesso e boa sorte. =)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconcretesolutions%2Faccenture-internal-challenge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fconcretesolutions%2Faccenture-internal-challenge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconcretesolutions%2Faccenture-internal-challenge/lists"}