{"id":22746483,"url":"https://github.com/jonathanprojetos/food-delivery","last_synced_at":"2026-01-31T13:32:38.254Z","repository":{"id":144527469,"uuid":"613472040","full_name":"JonathanProjetos/Food-Delivery","owner":"JonathanProjetos","description":"Food Delivery é um e-commerce simples que oferece meios de acesso através de autenticação JWT utilizando bearer token. Nele, foi realizada a proposta de regra de negócio para definir etapas de progressão da empresa.","archived":false,"fork":false,"pushed_at":"2023-07-04T16:34:50.000Z","size":255,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-12T16:00:01.654Z","etag":null,"topics":["docker-compose","javascript","joi","jwt-authentication","mongodb","moongose","nodejs","swagger"],"latest_commit_sha":null,"homepage":"https://food-delivery-production-fba9.up.railway.app/docs","language":"JavaScript","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/JonathanProjetos.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,"zenodo":null}},"created_at":"2023-03-13T16:24:43.000Z","updated_at":"2023-07-07T13:22:02.000Z","dependencies_parsed_at":"2023-07-22T20:01:19.340Z","dependency_job_id":null,"html_url":"https://github.com/JonathanProjetos/Food-Delivery","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/JonathanProjetos/Food-Delivery","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonathanProjetos%2FFood-Delivery","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonathanProjetos%2FFood-Delivery/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonathanProjetos%2FFood-Delivery/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonathanProjetos%2FFood-Delivery/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JonathanProjetos","download_url":"https://codeload.github.com/JonathanProjetos/Food-Delivery/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonathanProjetos%2FFood-Delivery/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260868849,"owners_count":23074959,"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":["docker-compose","javascript","joi","jwt-authentication","mongodb","moongose","nodejs","swagger"],"created_at":"2024-12-11T02:13:26.373Z","updated_at":"2026-01-31T13:32:38.249Z","avatar_url":"https://github.com/JonathanProjetos.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Bem-vindo ao Food Delivery\nA API Food Delivery é um e-commerce simples que oferece meios de acesso através de autenticação JWT utilizando bearer token. Nele, foi realizada a proposta de regra de negócio para definir etapas de progressão da empresa. Cada endpoint oferece o momento em que a empresa se encontra em relação à quantidade de usuários cadastrados e à quantidade de produtos por usuário em cada etapa. A API também conta com uma documentação interna feita com o Swagger, que traz facilidade e rapidez ao acesso dos endpoints da aplicação.\n\n \n\u003c/details\u003e\n\n## Sumário\n- [Bem-vindo ao Food Delivery](#Bem-vindo-ao-Food-Delivery)\n- [Contexto](#contexto)\n- [Tecnologias e Ferramentas Utilizadas](#tecnologias-e-ferramentas-utilizadas)\n- [Instalação e Execução](#instalação-e-execução)\n- [Deploy](#Deploy)\n- [Swagger](#Swagger)\n- [Git, GitHub e Histórico de Commits](#git-github-e-histórico-de-commits)\n- [Lint](#lint)\n\n## Contexto\nO __Food Delivery__ é uma ferramenta que acessa a bases de dados, é permite aos usuários:\n- Fazer login;\n- Cadastrar um novo usuário;\n- Buscar por produtos;\n- Criar novos produtos;\n- Criar ordem de pedido;\n- Atualizar uma ordem de pedido;\n- Atualizar um produto;\n- Deletar um pedido;\n- Deletar um produto;\n\n__Quando logado é possivel__\n- Buscar por produtos;\n- Criar novos produtos;\n- Criar ordem de pedido;\n- Atualizar uma ordem de pedido;\n- Atualizar um produto;\n- Deletar um pedido;\n- Deletar um produto;\n\n## Tecnologias e Ferramentas Utilizadas\n\nEste projeto utiliza as seguintes tecnologias e ferramentas:\n\n- [NodeJS](https://nodejs.org/en/) | Plataforma de execução runtime baseda em javascript. \n- [MongoDB](https://www.mongodb.com/docs/) | Banco de dados NoSQL não-relacional.\n- [Moongose](https://mongoosejs.com/docs/) | ODM Object-documente-Mapper para MongoDB\n- [Express](https://expressjs.com/pt-br/) | Framework para nodejs\n\nO Node.js foi utilizado com o intuito de obter os benefícios da escalabilidade e eficiência, pois ele é capaz de lidar com vários tráfegos sem bloqueio e lida com solicitações com baixo consumo de recursos. O MongoDB foi introduzido pensando em desempenho e flexibilidade. Este conjunto proporciona uma maior facilidade de adaptação e evolução do aplicativo, sem contar também que o MongoDB trabalha com documentos no formato JSON, que é um formato nativo em algumas linguagens. O Mongoose foi implementado por ser uma biblioteca poderosa e flexível que simplifica a interação com o MongoDB e adiciona recursos úteis, como validação de dados, tratamento de relacionamentos e ganchos personalizados. O Express é um framework para o Node.js que permite construir aplicações web robustas e escaláveis de forma mais fácil e rápida.\n\n## Instalação e Execução\n### Download do projeto\n```\ngit clone git@github.com:JonathanProjetos/Food-Delivery.git\n```\n\n### Arquivo env\n- Dentro da pasta Food-Delivery existe o arquivo .env.example nele será nescessário remover o .example e oferecer a url do MongoDB, e uma senha para o Json-Web-Token.\n\n\n### Instalar dependências\n```\ncd Food-Delivery\ndocker compose up -d\n\nobs: O comando \"docker compose up -d\" vai instalar as dependências e tornar a aplicação disponível na porta 3001.\n```\n### Adicionar os Produtos\n- Após subir os conteiners docker, abra o terminal e rode os comandos abaixo.\n```\ndocker exec -it food_delivery bash\nnpm run products:import\n\nobs: Caso queira remover os produtos rode:\nnpm run products:destroy\n```\n\n### Tests\n```\ncd Food-Delivery\nnpm test\nou \nnpm run test:coverage\n```\n### Deploy\n- Foi realizado o deploy da aplicação no Railway. Logo abaixo, está o link de acesso para a aplicação através do Swagger.\n\n### Swagger\n- Foi implementada a documentação por parte do Swagger, que possibilita testar a aplicação de forma mais rápida e intuitiva.\n- O link para a documentação é [DOC](https://food-delivery-production-fba9.up.railway.app/docs)\n- Alguns end-points séra necessessário oferecer o token para o Authorization no swagger. O token será disponibilizado quando for feito o login é como resposta terá o token.\n\n### Git, GitHub e Histórico de Commits\nEste projeto utilizou a [Especificação de Commits Convencionais](https://www.conventionalcommits.org/en/v1.0.0/), com alguns tipos da [convenção Angular](https://github.com/angular/angular/blob/22b96b9/CONTRIBUTING.md#-commit-message-guidelines). Além disso, foi utilizado o pacote [conventional-commit-cli](https://www.npmjs.com/package/conventional-commit-cli) para ajudar a seguir a convenção de commits. É importante utilizar a convenção de commits em projetos para manter o histórico de commits organizado e facilitar a leitura e o entendimento do que foi desenvolvido.\n\n\n### Lint\n- O projeto foi desenvolvido seguindo os padrões de Clean Code especificados pelo [Lint da Trybe](https://github.com/betrybe/eslint-config-trybe).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonathanprojetos%2Ffood-delivery","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonathanprojetos%2Ffood-delivery","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonathanprojetos%2Ffood-delivery/lists"}