{"id":19836168,"url":"https://github.com/avinash905/recipen","last_synced_at":"2025-05-01T18:30:25.960Z","repository":{"id":186198972,"uuid":"673771445","full_name":"Avinash905/Recipen","owner":"Avinash905","description":"Recipen is a recipe website that invites food lovers to explore a world of culinary delights. With an array of authentic recipes contributed by the community, insightful food blogs, and a seamless subscription experience.  Join us to savor the art of cooking, sharing, and connecting.","archived":false,"fork":false,"pushed_at":"2023-11-29T12:30:31.000Z","size":14267,"stargazers_count":13,"open_issues_count":0,"forks_count":18,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-06T16:39:25.935Z","etag":null,"topics":["admin-dashboard","authentication","axios","expressjs","food-blogs","form-validation","html-css-javascript","javascript","material-ui","mern-stack","mongodb","mongoose","nodejs","react","recipe-website","redux-toolkit","rtk-query","stripe","subscription","tailwindcss"],"latest_commit_sha":null,"homepage":"https://recipen.vercel.app","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/Avinash905.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}},"created_at":"2023-08-02T11:40:19.000Z","updated_at":"2025-02-25T21:33:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"6c271a49-b500-4531-90fc-e854df5261d2","html_url":"https://github.com/Avinash905/Recipen","commit_stats":null,"previous_names":["avinash905/recipen"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Avinash905%2FRecipen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Avinash905%2FRecipen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Avinash905%2FRecipen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Avinash905%2FRecipen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Avinash905","download_url":"https://codeload.github.com/Avinash905/Recipen/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251924542,"owners_count":21665987,"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":["admin-dashboard","authentication","axios","expressjs","food-blogs","form-validation","html-css-javascript","javascript","material-ui","mern-stack","mongodb","mongoose","nodejs","react","recipe-website","redux-toolkit","rtk-query","stripe","subscription","tailwindcss"],"created_at":"2024-11-12T12:10:21.614Z","updated_at":"2025-05-01T18:30:20.949Z","avatar_url":"https://github.com/Avinash905.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv id=\"top\"\u003e\n\u003ch1 align=\"center\"\u003eRecipen\u003c/h1\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003cimg src=\"https://img.shields.io/github/repo-size/Avinash905/Recipen?style=for-the-badge\" /\u003e\n  \u003cimg src=\"https://img.shields.io/github/issues/Avinash905/Recipen?style=for-the-badge\" /\u003e\n    \u003cimg src=\"https://img.shields.io/github/issues-closed-raw/Avinash905/Recipen?style=for-the-badge\" /\u003e\n    \u003cimg src=\"https://img.shields.io/github/last-commit/Avinash905/Recipen?style=for-the-badge\" /\u003e\n    \u003cimg src=\"https://img.shields.io/github/issues-pr/Avinash905/Recipen?style=for-the-badge\" /\u003e\n    \u003cimg src=\"https://img.shields.io/github/issues-pr-closed-raw/Avinash905/Recipen?style=for-the-badge\" /\u003e\n    \u003cimg src=\"https://img.shields.io/github/forks/Avinash905/Recipen?style=for-the-badge\" /\u003e\n    \u003cimg src=\"https://img.shields.io/github/stars/Avinash905/Recipen?style=for-the-badge\" /\u003e\n    \u003cimg src=\"https://img.shields.io/github/contributors-anon/Avinash905/Recipen?style=for-the-badge\" /\u003e\n  \u003c/div\u003e\n  \u003cbr\u003e\n\n\u003ch3\u003e📝 Description :\u003c/h3\u003e\nWelcome to Recipen – a recipe website for food enthusiasts to explore, create, and share their culinary experiences. Indulge in a community-driven platform where food enthusiasts share their cherished recipes and captivating food blogs. Subscribe to the pro version to share your own recipes and to unlock a realm of taste, culture, and creativity.\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"./client/src/assets/mockup-nobg.png\" alt=\"mockup\" /\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n---\n\n### 🌐 Link:\n\n\u003ch4\u003e Live Site: https://recipen.vercel.app/ \u003c/h4\u003e\n\n\u003cbr\u003e\n\n### 🛠️ Tools and technologies used :\n\n\u003cdiv align=center\u003e\n\n\u003ca href=\"https://www.w3.org/html/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://img.shields.io/badge/HTML5-E34F26?style=for-the-badge\u0026logo=html5\u0026logoColor=white\" alt=\"html5\"/\u003e \u003c/a\u003e\n\u003ca href=\"https://www.w3schools.com/css/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://img.shields.io/badge/CSS3-1572B6?style=for-the-badge\u0026logo=css3\u0026logoColor=white\" alt=\"css3\" /\u003e \u003c/a\u003e\n\u003ca href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://img.shields.io/badge/JavaScript-F7DF1E?style=for-the-badge\u0026logo=javascript\u0026logoColor=black\" alt=\"javascript\"/\u003e \u003c/a\u003e\n\u003ca href=\"https://reactjs.org/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://img.shields.io/badge/React-20232A?style=for-the-badge\u0026logo=react\u0026logoColor=white\u0026color=148dff\" alt=\"react\" /\u003e \u003c/a\u003e\n\u003ca href=\"https://nodejs.org\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://img.shields.io/badge/Node.js-8A2BE2?style=for-the-badge\u0026logo=Node.js\u0026color=b3ffb0\" alt=\"nodejs\" /\u003e \u003c/a\u003e\n\u003ca href=\"https://expressjs.com\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://img.shields.io/badge/Express.js-404D59?style=for-the-badge\u0026color=008712\" alt=\"express\"/\u003e \u003c/a\u003e\n\u003ca href=\"https://www.mongodb.com/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://img.shields.io/badge/MongoDB-4EA94B?style=for-the-badge\u0026logo=mongodb\u0026logoColor=white\" alt=\"mongodb\" /\u003e \u003c/a\u003e\n\u003ca href=\"https://redux-toolkit.js.org/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://img.shields.io/badge/Redux-593D88?style=for-the-badge\u0026logo=redux\u0026logoColor=white\" alt=\"redux-toolkit\" /\u003e \u003c/a\u003e\n\u003ca href=\"https://tailwindcss.com/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://img.shields.io/badge/Tailwind_CSS-38B2AC?style=for-the-badge\u0026logo=tailwind-css\u0026logoColor=white\" alt=\"tailwind\" /\u003e \u003c/a\u003e\n\u003ca href=\"https://mui.com/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://img.shields.io/badge/Material--UI-0081CB?style=for-the-badge\u0026logo=material-ui\u0026logoColor=white\" alt=\"mui\" /\u003e \u003c/a\u003e\n\u003ca href=\"https://stripe.com/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://img.shields.io/badge/Stripe-626CD9?style=for-the-badge\u0026logo=Stripe\u0026logoColor=white\" alt=\"stripe\" /\u003e \u003c/a\u003e\n\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n### 👋 Connect with me:\n\n\u003cdiv align=center\u003e\n\n[![LinkedIn](https://img.shields.io/badge/LinkedIn-0A66C2.svg?style=for-the-badge\u0026logo=LinkedIn\u0026logoColor=white)](https://www.linkedin.com/in/dunna-avinash)\n[![GitHub](https://img.shields.io/badge/GitHub-100000?style=for-the-badge\u0026logo=github\u0026logoColor=white)](https://github.com/Avinash905)\n\u003ca href=\"mailto:avinash.90527@gmail.com\" target=\"_blank\"\u003e\u003cimg alt=\"Gmail\" src=\"https://img.shields.io/badge/Gmail-D14836?style=for-the-badge\u0026logo=gmail\u0026logoColor=white\" /\u003e\u003c/a\u003e\n[![Twitter](https://img.shields.io/badge/Twitter-1DA1F2?style=for-the-badge\u0026logo=twitter\u0026logoColor=white)](https://twitter.com/avinashdunna)\n\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n---\n\n### ✨Features :\n\n\u003cul\u003e\n    \u003cli\u003e\u003cstrong\u003eAuthentication:\u003c/strong\u003e Users can securely create accounts and log in to access personalized features and content.\u003c/li\u003e\n    \u003cli\u003e\u003cstrong\u003eAccess \u0026 Refresh Token:\u003c/strong\u003e Implemented access and refresh token mechanism for enhanced security during user authentication.\u003c/li\u003e\n    \u003cli\u003e\u003cstrong\u003eAuthentication State Persistence:\u003c/strong\u003e User authentication state is now persisted across sessions, providing a seamless user experience.\u003c/li\u003e\n    \u003cli\u003e\u003cstrong\u003eStoring Tokens in Cookies:\u003c/strong\u003e Tokens are stored in secure cookies for better protection against cross-site scripting (XSS) attacks.\u003c/li\u003e\n    \u003cli\u003e\u003cstrong\u003eRecipes:\u003c/strong\u003e Explore a rich collection of authentic recipes contributed by the community, covering a wide range of cuisines and tastes.\u003c/li\u003e\n    \u003cli\u003e\u003cstrong\u003eFood Blogs:\u003c/strong\u003e Engage with insightful and creative food blogs written by enthusiasts, offering valuable insights and cooking inspiration.\u003c/li\u003e\n    \u003cli\u003e\u003cstrong\u003eStripe Payment Integration:\u003c/strong\u003e Seamlessly integrated Stripe for secure payment processing, enhancing user experience during transactions.\u003c/li\u003e\n    \u003cli\u003e\u003cstrong\u003eOne-Time Payment Subscription:\u003c/strong\u003e Offer users the option to subscribe with a one-time payment, unlocking exclusive features and benefits.\u003c/li\u003e\n    \u003cli\u003e\u003cstrong\u003ePro User Access:\u003c/strong\u003e Pro users enjoy the privilege of adding and deleting recipes and blogs, creating a dynamic and engaging platform.\u003c/li\u003e\n    \u003cli\u003e\u003cstrong\u003eAdmin Dashboard:\u003c/strong\u003e Admins have access to a dashboard for managing users, recipes, and blogs\u003c/li\u003e\n    \u003cli\u003e\u003cstrong\u003eUser Profile:\u003c/strong\u003e Each user has a personalized profile where they can manage their information.\u003c/li\u003e\n    \u003cli\u003e\u003cstrong\u003eContact Us Page:\u003c/strong\u003e A dedicated page for users to reach out with questions, concerns, or feedback, fostering communication.\u003c/li\u003e\n    \u003cli\u003e\u003cstrong\u003eChatbot:\u003c/strong\u003e A chatbot that provides one to one assistance with the maintainers of the project.\u003c/li\u003e\n    \u003cli\u003e\u003cstrong\u003eSave and Unsave Favorite Recipes:\u003c/strong\u003e Users can curate their own collection of favorite recipes for easy access and cooking inspiration.\u003c/li\u003e\n    \u003cli\u003e\u003cstrong\u003eRate and Comment on Recipes:\u003c/strong\u003e Registered users can provide ratings and comments on recipes, enhancing the community interaction.\u003c/li\u003e\n    \u003cli\u003e\u003cstrong\u003eComment on Blogs:\u003c/strong\u003e Engage in discussions by leaving comments on the food blogs, sharing thoughts and ideas.\u003c/li\u003e\n    \u003cli\u003e\u003cstrong\u003eShare Recipe on Social Media:\u003c/strong\u003e Users can effortlessly share their favorite recipes on various social media platforms.\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003chr/\u003e\n\n\u003cp align=\"right\"\u003e\u003ca href=\"#top\"\u003eBack to Top\u003c/a\u003e\u003c/p\u003e\n\n### Steps to run the project on your local machine\n\n\u003col\u003e\n\u003cli\u003eFork this repository\u003c/li\u003e\n\u003cli\u003eOpen terminal or command prompt on your local machine. Run the following command to clone the repository:\u003c/li\u003e\n\n```\ngit clone https://github.com/your-username/your-repo.git\n```\n\nReplace **your-username** with your GitHub username and **your-repo** with the name of your repository.\n\n\u003cli\u003eOpen the project and rename \u003cstrong\u003e.env.example\u003c/strong\u003e files to \u003cstrong\u003e.env\u003c/strong\u003e in both client and server directory.\u003c/li\u003e\n\n\u003cli\u003eAdd your own environment variables to these both files.\u003c/li\u003e\n\n\u003cli\u003eAdd \u003cstrong\u003ehttp://localhost:5173\u003c/strong\u003e and \u003cstrong\u003ehttp://localhost:5000\u003c/strong\u003e to \u003cstrong\u003eallowedOrigins\u003c/strong\u003e array present in the path \u003cstrong\u003eserver/config/allowedOrigins.\u003c/strong\u003e\u003c/li\u003e\n\n\u003cli\u003eTo run the frontend, open a new terminal and run 'cd client/' to go to client directory and execute:\u003c/li\u003e\n\n```\nnpm run dev\n```\n\n\u003cli\u003eTo run the backend, open a new terminal and run 'cd server/' to go to server directory and execute:\u003c/li\u003e\n\n```\nnodemon index.js\n```\n\n\u003cli\u003eOpen \u003cstrong\u003ehttp://localhost:5173/\u003c/strong\u003estrong\u003e from your browser to run the webapp.\u003c/li\u003e\n\u003c/ol\u003e\n\n\u003cbr\u003e\n\n### Steps to access the admin dashboard\n\n\u003col\u003e\n\u003cli\u003eAfter running the webapp on your machine sign up on the website.\u003c/li\u003e \n\u003cli\u003eNow open your MongoDB collection and manually add the \u003cstrong\u003eAdmin\u003c/strong\u003e element in the array of \u003cstrong\u003eroles\u003c/strong\u003e field for the user you want to make admin and then Sign in back on the site.\u003c/li\u003e\n\u003cli\u003eNow you will be able to access the admin dashboard.\u003c/li\u003e\n\u003c/ol\u003e\n\n\u003chr/\u003e\n\n\u003cp align=\"right\"\u003e\u003ca href=\"#top\"\u003eBack to Top\u003c/a\u003e\u003c/p\u003e\n\n### Home page\n\n\u003cimg src=\"./client/src/assets/home.png\" alt='home'/\u003e\n\n### Sign up page\n\n\u003cimg src=\"./client/src/assets/signup.png\" alt='signup'/\u003e\n\n### Sign in page\n\n\u003cimg src=\"./client/src/assets/signin.png\" alt='signin'/\u003e\n\n### Profile page\n\n\u003cimg src=\"./client/src/assets/profile.png\" alt='profile'/\u003e\n\n### Contact page\n\n\u003cimg src=\"./client/src/assets/contact.png\" alt='contact'/\u003e\n\n### Recipes page\n\n\u003cimg src=\"./client/src/assets/recipes.png\" alt='recipes'/\u003e\n\n### Blogs page\n\n\u003cimg src=\"./client/src/assets/blogs.png\" alt='blogs'/\u003e\n\n### Single recipe page\n\n\u003cimg src=\"./client/src/assets/single-recipe.png\" alt='single recipe'/\u003e\n\n### Single blog page\n\n\u003cimg src=\"./client/src/assets/single-blog.png\" alt='single blog'/\u003e\n\n### Add recipe page\n\n\u003cimg src=\"./client/src/assets/add-recipe.png\" alt='add recipe'/\u003e\n\n### Add blog page\n\n\u003cimg src=\"./client/src/assets/add-blog.png\" alt='add blog'/\u003e\n\n### Admin users dashboard\n\n\u003cimg src=\"./client/src/assets/users.png\" alt='dashboard users'/\u003e\n\n### Admin recipes dashboard\n\n\u003cimg src=\"./client/src/assets/recipes-dashboard.png\" alt='dashboard'/\u003e\n\n### Admin blogs dashboard\n\n\u003cimg src=\"./client/src/assets/blog-dashboard.png\" alt='dashboard'/\u003e\n\n\u003chr/\u003e\n\n### 🛡️ License\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)\n\nTerms and conditions for use, reproduction and distribution are under the [MIT License](https://opensource.org/license/mit/).\n\n\u003cbr/\u003e\n\n---\n\n\u003ch3 align=\"center\"\u003e Give it a 🌟 if you 🧡 this repository \u003c/h3\u003e\n\n---\n\n\u003cp align=\"right\"\u003e\u003ca href=\"#top\"\u003eBack to Top\u003c/a\u003e\u003c/p\u003e\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favinash905%2Frecipen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Favinash905%2Frecipen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favinash905%2Frecipen/lists"}