{"id":29013277,"url":"https://github.com/touhidtamim/keepfresh-client-side","last_synced_at":"2026-04-09T02:02:55.122Z","repository":{"id":301154973,"uuid":"1008150102","full_name":"touhidtamim/Keepfresh-Client-Side","owner":"touhidtamim","description":"Keep Fresh – A full-stack food expiry tracker app with countdowns, JWT auth, and smart alerts to reduce food waste. Built with React, Express, and MongoDB.","archived":false,"fork":false,"pushed_at":"2025-08-09T17:16:10.000Z","size":387,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-09T19:12:56.497Z","etag":null,"topics":["daisyui","express","express-middleware","firebase-auth","food-tracker","jwt","jwt-token","mongodb","mongodb-atlas","mongodb-database","react","tailwindcss"],"latest_commit_sha":null,"homepage":"https://test-keepfresh.netlify.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/touhidtamim.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":"2025-06-25T05:35:45.000Z","updated_at":"2025-08-09T17:16:13.000Z","dependencies_parsed_at":"2025-06-25T12:49:38.134Z","dependency_job_id":null,"html_url":"https://github.com/touhidtamim/Keepfresh-Client-Side","commit_stats":null,"previous_names":["touhidtamim/keepfresh-client-side"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/touhidtamim/Keepfresh-Client-Side","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/touhidtamim%2FKeepfresh-Client-Side","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/touhidtamim%2FKeepfresh-Client-Side/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/touhidtamim%2FKeepfresh-Client-Side/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/touhidtamim%2FKeepfresh-Client-Side/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/touhidtamim","download_url":"https://codeload.github.com/touhidtamim/Keepfresh-Client-Side/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/touhidtamim%2FKeepfresh-Client-Side/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31581864,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"online","status_checked_at":"2026-04-09T02:00:06.848Z","response_time":112,"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":["daisyui","express","express-middleware","firebase-auth","food-tracker","jwt","jwt-token","mongodb","mongodb-atlas","mongodb-database","react","tailwindcss"],"created_at":"2025-06-25T19:10:38.928Z","updated_at":"2026-04-09T02:02:55.106Z","avatar_url":"https://github.com/touhidtamim.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🥗 Keep Fresh – Food Expiry Tracker Web App\n\n**Live Site:** [https://test-keepfresh.netlify.app/](https://test-keepfresh.netlify.app/)\n\n---\n\n## 📦 Project Purpose\n\n**Keep Fresh** is a full-stack web application designed to help users track and manage their food items efficiently. Whether it's groceries, meal prep, or leftovers, users can store expiry dates, receive alerts, and reduce food waste—all in a responsive and user-friendly interface.\n\n---\n\n## 🎯 Target Audience\n\n- Health-conscious individuals and families\n- Meal planners and home cooks\n- Grocery-conscious consumers aiming to reduce waste\n- Students and working professionals managing food storage\n\n---\n\n## 🚀 Key Features\n\n- 🔐 **Secure Authentication:** Email-password and Google login with Firebase Authentication\n- 🗂️ **Food Inventory Management:** Add, update, and delete food items with detailed info like title, category, added date, and expiry date\n- ⏳ **Expiry Countdown Timer:** Live countdown showing days left before food expires\n- 🔍 **Smart Search \u0026 Filter:** Search by title/category and filter items by food category\n- 📊 **Statistics Section:** Shows total items, expired items, and nearly-expired items with animated count-up effect\n- ✏️ **Personal Notes:** Logged-in users can add custom notes per food item\n- 🔒 **JWT-Protected Routes:** Backend routes protected by secure JWT tokens stored in cookies\n- 📱 **Responsive Design:** Smooth user experience on mobile, tablet, and desktop\n- 🧠 **User Guidance:** Modal pop-ups suggest what to do based on expiry status\n- ⚠️ **Form Validation \u0026 Alerts:** Real-time form validation with toast notifications and confirmation modals\n\n---\n\n## 📸 UI \u0026 UX Highlights\n\n- ✅ Clean, card-based food item display with rich detail\n- 💡 Hover effects, animations, and intuitive dashboard for a modern experience\n- 🎨 Consistent styling across pages using TailwindCSS and DaisyUI\n- 📆 Expiry countdown and visual indicators for critical food items\n\n---\n\n## 🧠 Unique Value Proposition\n\n**Keep Fresh** is more than a tracking tool—it’s a habit-forming assistant for better food management. It simplifies decision-making, helps reduce waste, and saves money by keeping food freshness top of mind.\n\n---\n\n## 📈 Future Improvements\n\n- 📤 Image Upload for food items\n- 📅 Custom reminders \u0026 notification scheduling\n- 🧾 Weekly food report download/export\n- 🧑‍🤝‍🧑 Shared Fridge: Allow multiple users to manage one inventory\n- 🌐 Multi-language support\n\n---\n\n## 🛠️ NPM Packages Used\n\n- `firebase` – Firebase Auth integration\n- `axios` – API requests to backend\n- `framer-motion` – Smooth animations\n- `react-countup` – Animated stats counters\n- `react-icons` \u0026 `lucide-react` – Rich icon sets\n- `react-router-dom` – Frontend routing\n- `react-hot-toast` \u0026 `react-toastify` – Toast notifications\n- `sweetalert2` \u0026 `sweetalert2-react-content` – Confirmation/alert modals\n- `swiper` – Carousel and slider features\n- `react-intersection-observer` – Lazy loading and animation triggers\n- `react-spinners` – Loaders/spinners for UX\n- `tailwindcss` – Utility-first CSS styling\n- `daisyui` – Tailwind CSS component library\n\n---\n\n## 🖥️ Tech Stack\n\n- **Frontend:** React JS, TailwindCSS, DaisyUI\n- **Backend:** Express JS, MongoDB, JWT (cookie-based auth)\n- **Authentication:** Firebase Authentication\n- **Hosting:** Frontend deployed on Netlify\n\n---\n\n## 💻 Running Locally \u0026 Contribution Guide\n\nThis project’s **backend (server) code** is maintained in a separate GitHub repository with the same name.\n\nIf you want to run the project locally or contribute:\n\n- Clone both the frontend and backend repositories.  \n- Follow the instructions in each repository to install dependencies and set up environment variables.  \n- Run the backend server first, then start the frontend development server.\n\nIf you encounter any issues, want to suggest improvements, or contribute code, please feel free to contact me via my GitHub profile. I welcome contributions and am happy to assist you!\n\n---\n\n### 🔗 Repository Links\n\n- **Backend (Server) Repository:**  \n  [https://github.com/touhidtamim/Keepfresh-Server-Side](https://github.com/touhidtamim/Keepfresh-Server-Side)  \n  \n- **Frontend (Client) Repository:**  \n  [https://github.com/touhidtamim/Keepfresh-Client-Side](https://github.com/touhidtamim/Keepfresh-Client-Side)\n\n\n---\n\n## 👤 Developed By\n\n**Touhid Tamim**  \nWEB11-3318 | Programming Hero Web Development Course (Batch 11)\n\n---\n\n## 📝 License\n\nThis project is for educational purposes only.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftouhidtamim%2Fkeepfresh-client-side","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftouhidtamim%2Fkeepfresh-client-side","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftouhidtamim%2Fkeepfresh-client-side/lists"}