{"id":15138742,"url":"https://github.com/viniciusmoreria/foodfy","last_synced_at":"2025-10-29T10:15:22.098Z","repository":{"id":115941074,"uuid":"243955449","full_name":"viniciusmoreria/foodfy","owner":"viniciusmoreria","description":"front-end challenge from launchbase bootcamp by rocketseat","archived":false,"fork":false,"pushed_at":"2020-04-17T15:58:36.000Z","size":7926,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-30T19:11:37.197Z","etag":null,"topics":["bootcamp","challenge","faker","fakerjs","foodfy","html","javascript","launchbase","lottie","multer","nodejs","nunjucks","portfolio-site","postbird","rocketseat","scss"],"latest_commit_sha":null,"homepage":"https://fooodfy.herokuapp.com/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/viniciusmoreria.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2020-02-29T11:21:08.000Z","updated_at":"2023-03-24T06:10:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"514bfad0-4ed0-4e7d-9524-e18172e2eb30","html_url":"https://github.com/viniciusmoreria/foodfy","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/viniciusmoreria%2Ffoodfy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viniciusmoreria%2Ffoodfy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viniciusmoreria%2Ffoodfy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viniciusmoreria%2Ffoodfy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/viniciusmoreria","download_url":"https://codeload.github.com/viniciusmoreria/foodfy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237852258,"owners_count":19376643,"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":["bootcamp","challenge","faker","fakerjs","foodfy","html","javascript","launchbase","lottie","multer","nodejs","nunjucks","portfolio-site","postbird","rocketseat","scss"],"created_at":"2024-09-26T07:44:11.571Z","updated_at":"2025-10-23T15:31:26.353Z","avatar_url":"https://github.com/viniciusmoreria.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n    \u003cimg alt=\"Foodfy\" title=\"#Foodfy\" src=\"public/images/static/main-logo.png\" width=\"100px\" /\u003e\n\u003c/h1\u003e\n\n\u003ch4 align=\"center\"\u003e \n\tLaunchBase Bootcamp 🚀\n\u003c/h4\u003e\n\u003cp align=\"center\"\u003e\n \n \u003cimg alt=\"GitHub language count\" src=\"https://img.shields.io/github/languages/count/viniciusmoreeira/foodfy?color=%2304D361\"\u003e\n  \n \u003cimg alt=\"Repository size\" src=\"https://img.shields.io/github/repo-size/viniciusmoreeira/foodfy\"\u003e\n\n  \u003ca href=\"https://github.com/viniciusmoreeira/foodfy/commits/master\"\u003e\n    \u003cimg alt=\"GitHub last commit\" src=\"https://img.shields.io/github/last-commit/viniciusmoreeira/foodfy\"\u003e\n  \u003c/a\u003e\n  \n  \u003cimg alt=\"License\" src=\"https://img.shields.io/badge/license-MIT-brightgreen\"\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://i.imgur.com/KqGxECCg.png\"/\u003e\n\u003c/div\u003e\n\n## Goal\n\nThe objective of this challenge is to help fixate the content presented throughout the bootcamp. Where we should create a recipe site from zero with several features, as shown below.\n\n## Features\n\n- [x] Dynamic pages and content powered by Nunjucks.\n- [x] Database powered by Postgresql.\n- [x] Being able to add new recipes, update and delete them.\n- [x] Search recipes.\n- [x] Pagination.\n- [x] Upload images to database using Multer.\n- [x] Image Gallery with Lightbox feature.\n- [x] Complete login system, with administrators and regular users.\n- [x] Routes are safe thanks to Validators.\n- [x] Nodemailer to reset and recover passwords.\n- [x] Users, Chefs and Recipes seeds available thanks to Faker.js. \n- [x] Feedback animations powered by Lottie.\n\n## Technologies\n\nThis project was developed with the following technologies:\n\n- [Node.js](https://nodejs.org/en/) \n- [PostgreSQL](https://www.postgresql.org/)\n- [Nunjucks](https://mozilla.github.io/nunjucks/)\n- [Faker.js](https://github.com/marak/Faker.js/)\n- [Lottie](https://github.com/airbnb/lottie-web)\n  \n\n## Getting Started\n\n  You need the following tools installed in order to run this project:\n  [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git), [Node.js + NPM](https://nodejs.org/en/), [PostgreSQL](https://www.postgresql.org/download/), and [Postbird](https://www.electronjs.org/apps/postbird).\n\n\n1. Fork this repository and clone it into the current directory\n\n   ```bash\n   git clone https://github.com/viniciusmoreeira/foodfy.git\n   ```\n\n\n2. Install dependencies\n\n   ```bash\n   npm install\n   ```\n\n\n3. Set up the database\n\n   ```bash\n   psql -U \u003cusername\u003e -c \"CREATE DATABASE foodfy\"\n   psql -U \u003cusername\u003e -d foodfy -f foodfy.sql\n   ```\n\n   You can manually import the foodfy.sql to Postbird, remember to create a new database with the name Foodfy.\n\n   ```bash\n   Important!\n   You have to alter the db.js, located in src/config to match your PostgreSQL settings.    \n   You also have to alter the mailer.js, located in src/lib to match your Mailtrap settings.  \n   ```\n\n4. Populate it with Faker.js\n   ```bash\n   node seed.js\n   ```\n   ```bash\n   Important!\n   Every Faker user password is \"pass\" and every single one of them have administrator status.   \n   ```\n\n\n5. Fire up the server and watch files\n\n   ```bash\n   npm start\n   ```\n\n\n## License\n\nThis project is under the MIT license. See the [LICENSE](LICENSE) for details.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviniciusmoreria%2Ffoodfy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fviniciusmoreria%2Ffoodfy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviniciusmoreria%2Ffoodfy/lists"}