{"id":14956854,"url":"https://github.com/jacobgrisham/yelpcamp","last_synced_at":"2025-08-08T02:42:56.853Z","repository":{"id":41876798,"uuid":"272240861","full_name":"JacobGrisham/YelpCamp","owner":"JacobGrisham","description":"Monolithic model-view-controller full-stack web application built with Node.js, Express.js, MonogDB, Jest, EJS, and Bootstrap. Integration-tested with Jest. Server hosted on Heroku with CircleCI CI/CD, Database hosted on MongoDB Atlas, served over Cloudflare CDN with Google Domains as DNS provider.","archived":false,"fork":false,"pushed_at":"2024-02-10T18:01:10.000Z","size":17950,"stargazers_count":12,"open_issues_count":27,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-30T08:47:42.773Z","etag":null,"topics":["bootstrap4","circleci","cloudflare","css","expressjs","full-stack-web-development","google-lighthouse-audit","google-maps-api","heroku","html","inkscape","integration-tests","javascript","jest","model-view-controller","mongo-db","mongodb","mongodb-atlas","monolith-architecture","nodejs"],"latest_commit_sha":null,"homepage":"https://www.yelpcamp.app","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/JacobGrisham.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":"2020-06-14T16:30:15.000Z","updated_at":"2024-12-17T07:11:01.000Z","dependencies_parsed_at":"2024-01-26T05:31:42.830Z","dependency_job_id":"c0d8e9aa-9300-4e94-8c4d-c741f775d6ad","html_url":"https://github.com/JacobGrisham/YelpCamp","commit_stats":{"total_commits":190,"total_committers":2,"mean_commits":95.0,"dds":0.0368421052631579,"last_synced_commit":"42cbf90bad91ce740a9eb396555cca9a1aa877d1"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/JacobGrisham/YelpCamp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JacobGrisham%2FYelpCamp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JacobGrisham%2FYelpCamp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JacobGrisham%2FYelpCamp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JacobGrisham%2FYelpCamp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JacobGrisham","download_url":"https://codeload.github.com/JacobGrisham/YelpCamp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JacobGrisham%2FYelpCamp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269355716,"owners_count":24403497,"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","status":"online","status_checked_at":"2025-08-08T02:00:09.200Z","response_time":72,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["bootstrap4","circleci","cloudflare","css","expressjs","full-stack-web-development","google-lighthouse-audit","google-maps-api","heroku","html","inkscape","integration-tests","javascript","jest","model-view-controller","mongo-db","mongodb","mongodb-atlas","monolith-architecture","nodejs"],"created_at":"2024-09-24T13:13:38.144Z","updated_at":"2025-08-08T02:42:56.797Z","avatar_url":"https://github.com/JacobGrisham.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg width=\"200\" src=\"public/favicon/android-chrome-512x512.png\" alt=\"YelpCamp logo\"\u003e\n\n# [YelpCamp](https://www.yelpcamp.app/)\n![Website](https://img.shields.io/website?down_color=red\u0026down_message=offline\u0026up_color=brightgreen\u0026up_message=online\u0026url=https%3A%2F%2Fyelpcamp.app)\n![Security Headers](https://img.shields.io/security-headers?url=https%3A%2F%2Fwww.yelpcamp.app)\n[![Maintainability](https://api.codeclimate.com/v1/badges/5db672c308be3e556462/maintainability)](https://codeclimate.com/github/JacobGrisham/YelpCamp/maintainability)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/6272d48144774479b06e9b4b2caea0d6)](https://www.codacy.com/manual/JacobGrisham/YelpCamp?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=JacobGrisham/YelpCamp\u0026amp;utm_campaign=Badge_Grade)\n[![Codacy Badge](https://app.codacy.com/project/badge/Coverage/6272d48144774479b06e9b4b2caea0d6)](https://www.codacy.com/gh/JacobGrisham/YelpCamp/dashboard?utm_source=github.com\u0026utm_medium=referral\u0026utm_content=JacobGrisham/YelpCamp\u0026utm_campaign=Badge_Coverage)\n[![CircleCI](https://img.shields.io/circleci/build/github/JacobGrisham/YelpCamp)](https://app.circleci.com/pipelines/github/JacobGrisham/YelpCamp)\n![Libraries.io dependency status for GitHub repo](https://img.shields.io/librariesio/github/jacobgrisham/YelpCamp)\n![GitHub all releases](https://img.shields.io/github/downloads/jacobgrisham/yelpcamp/total)\n \u003c/div\u003e\n\n## 🧭 Folder/File Structure\n(ignoring image and SEO files)\n```\n|-- README.md\n|-- app.js\n|-- globalConfig.json\n|-- index.test.js\n|-- jest-mongodb-config.js\n|-- jest.config.js\n|-- middleware\n|   `-- index.js\n|-- models\n|   |-- campground.js\n|   |-- comment.js\n|   |-- review.js\n|   `-- user.js\n|-- package-lock.json\n|-- package.json\n|-- public\n|   `-- stylesheets\n|       |-- analytics.js\n|       |-- main.css\n|-- routes\n|   |-- campgrounds.js\n|   |-- comments.js\n|   |-- index.js\n|   `-- reviews.js\n`-- views\n    |-- campgrounds\n    |   |-- edit.ejs\n    |   |-- index.ejs\n    |   |-- new.ejs\n    |   `-- show.ejs\n    |-- comments\n    |   |-- edit.ejs\n    |   `-- new.ejs\n    |-- landing.ejs\n    |-- login.ejs\n    |-- partials\n    |   |-- footer.ejs\n    |   `-- header.ejs\n    |-- register.ejs\n    |-- reviews\n    |   |-- edit.ejs\n    |   |-- index.ejs\n    |   `-- new.ejs\n    `-- users\n        `-- show.ejs\n```\n\n## 🚀 Getting Started\n### To run this project on your system:\nCreate an .env file and add values to the following variables:\n```\nGEOCODER_API_KEY=\nAPI_KEY=\nDATABASEURL=\nPASSPORT_SECRET=\nADMIN_CODE=\n```\nMake sure you have [MongoDB](https://docs.mongodb.com/manual/installation/) installed on your system\nIn a terminal window, initialize a MongoDB Database \n```\n$ ./mongod\n```\nIn a second terminal window, access the MongoDB Database with Mongoose\n```\n$ mongoose\n```\nIn a third terminal window, install dependencies using npm:\n\n```\n$ npm install\n```\nAnd then run the application with\n```\n$ npm start\n```\nor for hot reloading (recommended)\n```\n$ nodemon app.js\n```\n\n## 📐 Tests\nTo run the tests:\n```\n$ npm test\n```\n\n## 📣 Acknowledgments\n-\tThe skeleton of this project was based on [Colt Steele's YelpCamp](https://github.com/Colt/yelp-camp-refactored) during the Web Development Bootcamp.\n\n## 🔒 License\nCopyright Notice and Statement: currently not offering any license. Permission only to view and download.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacobgrisham%2Fyelpcamp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjacobgrisham%2Fyelpcamp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacobgrisham%2Fyelpcamp/lists"}