├── next.config.mjs ├── next-env.d.ts ├── firebase.js ├── tsconfig.json ├── SECURITY.md ├── package.json ├── LICENSE └── README.md /next.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = {}; 3 | 4 | export default nextConfig; 5 | -------------------------------------------------------------------------------- /next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/basic-features/typescript for more information. 6 | -------------------------------------------------------------------------------- /firebase.js: -------------------------------------------------------------------------------- 1 | import { initializeApp } from 'firebase/app'; 2 | import { getFirestore } from 'firebase/firestore'; 3 | 4 | const firebaseConfig = { 5 | apiKey: "AIzaSyBh3C11yottdF7XuG2h5762vi4ETz_t2-0", 6 | authDomain: "pantry-tracker-a7289.firebaseapp.com", 7 | projectId: "pantry-tracker-a7289", 8 | storageBucket: "pantry-tracker-a7289.appspot.com", 9 | messagingSenderId: "619626970274", 10 | appId: "1:619626970274:web:c48864a5bb69261b566bfb", 11 | measurementId: "G-CVPKDNFG26" 12 | }; 13 | const app = initializeApp(firebaseConfig); 14 | const firestore = getFirestore(app); 15 | export { firestore }; -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "lib": ["dom", "dom.iterable", "esnext"], 4 | "allowJs": true, 5 | "skipLibCheck": true, 6 | "strict": true, 7 | "noEmit": true, 8 | "esModuleInterop": true, 9 | "module": "esnext", 10 | "moduleResolution": "bundler", 11 | "resolveJsonModule": true, 12 | "isolatedModules": true, 13 | "jsx": "preserve", 14 | "incremental": true, 15 | "plugins": [ 16 | { 17 | "name": "next" 18 | } 19 | ], 20 | "paths": { 21 | "@/*": ["./*"] 22 | } 23 | }, 24 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], 25 | "exclude": ["node_modules"] 26 | } 27 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported Versions 4 | 5 | Use this section to tell people about which versions of your project are 6 | currently being supported with security updates. 7 | 8 | | Version | Supported | 9 | | ------- | ------------------ | 10 | | 5.1.x | :white_check_mark: | 11 | | 5.0.x | :x: | 12 | | 4.0.x | :white_check_mark: | 13 | | < 4.0 | :x: | 14 | 15 | ## Reporting a Vulnerability 16 | 17 | Use this section to tell people how to report a vulnerability. 18 | 19 | Tell them where to go, how often they can expect to get an update on a 20 | reported vulnerability, what to expect if the vulnerability is accepted or 21 | declined, etc. 22 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pantry", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "next dev", 7 | "build": "next build", 8 | "start": "next start", 9 | "lint": "next lint" 10 | }, 11 | "dependencies": { 12 | "@emotion/react": "^11.13.0", 13 | "@emotion/styled": "^11.13.0", 14 | "@mui/material": "^5.16.7", 15 | "firebase": "^10.13.0", 16 | "next": "14.2.5", 17 | "react": "^18", 18 | "react-dom": "^18" 19 | }, 20 | "devDependencies": { 21 | "@types/node": "^20", 22 | "@types/react": "^18", 23 | "@types/react-dom": "^18", 24 | "eslint": "^8", 25 | "eslint-config-next": "14.2.5", 26 | "typescript": "^5" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Farha Kousar 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Pantry Tracker 📦🥫 2 | 3 | 4 | ![Headstarter AI](https://img.shields.io/badge/Headstarter-AI-green?style=for-the-badge) 5 | ![Next.js](https://img.shields.io/badge/Next.js-Framework-black?style=for-the-badge) 6 | ![Vercel](https://img.shields.io/badge/Deployed_on-Vercel-blue?style=for-the-badge) 7 | ![Open Source](https://img.shields.io/badge/Open-Source-blue?style=for-the-badge) 8 | ![License](https://img.shields.io/badge/License-MIT-green?style=for-the-badge) 9 | 10 | 11 | 12 | Welcome to the **Pantry Tracker** project! This application helps you manage and track your pantry inventory efficiently. Built with the power of [Next.js](https://nextjs.org/), it offers a seamless experience for monitoring your stock and ensuring you never run out of essential items. 13 | 14 | ## 🚀 Getting Started 15 | 16 | To get started with the Pantry Tracker, follow these steps to set up the development environment: 17 | 18 | 1. Clone the repository: 19 | 20 | ```bash 21 | git clone https://github.com/yourusername/pantry-tracker.git 22 | cd pantry-tracker 23 | ``` 24 | 25 | 2. Install the dependencies: 26 | 27 | ```bash 28 | npm install 29 | # or 30 | yarn install 31 | # or 32 | pnpm install 33 | ``` 34 | 35 | 3. Run the development server: 36 | 37 | ```bash 38 | npm run dev 39 | # or 40 | yarn dev 41 | # or 42 | pnpm dev 43 | # or 44 | bun dev 45 | ``` 46 | 47 | 4. Open [http://localhost:3000](http://localhost:3000) in your browser to view the application. The page auto-updates as you make changes to `app/page.tsx`. 48 | 49 | ## 🛠️ Features 50 | 51 | - **Real-Time Inventory Updates**: Easily add, remove, or update items in your pantry. 52 | - **Alerts & Notifications**: Get notified when items are running low. 53 | - **Data Visualization**: Visualize your pantry data with built-in charts and graphs. 54 | - **Customizable Categories**: Organize items based on custom categories for better tracking. 55 | 56 | ## 📝 Learn More 57 | 58 | To delve deeper into the Next.js framework, check out these resources: 59 | 60 | - [Next.js Documentation](https://nextjs.org/docs) - Explore the full range of Next.js features and API options. 61 | - [Learn Next.js](https://nextjs.org/learn) - Interactive tutorials to help you master Next.js. 62 | 63 | ## 🔗 Resources & Tutorials 64 | 65 | Here are some additional resources to help you get the most out of this project: 66 | 67 | - [OpenRouter AI Llama 3.1](https://openrouter.ai/models/meta-llama/llama-3.1-8b-instruct:free) - A powerful AI model for enhancing your app's capabilities. 68 | - [Google Cloud Vertex AI](https://cloud.google.com/vertex-ai/docs/tutorials/image-classification-automl/training) - Learn how to integrate AI for image classification. 69 | - [React Camera Pro](https://www.npmjs.com/package/react-camera-pro) - A React component to add camera functionality to your app. 70 | - [Building an Inventory Management App](https://medium.com/@billzhangsc/building-an-inventory-management-app-with-next-js-react-and-firebase-e9647a61eb82) - A detailed tutorial on building a similar app. 71 | 72 | ## 🚀 Deploy on Vercel 73 | 74 | Deploying your Pantry Tracker app is quick and easy with [Vercel](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme), the platform created by the developers of Next.js. 75 | 76 | For detailed instructions on deployment, refer to the [Next.js deployment documentation](https://nextjs.org/docs/deployment). 77 | 78 | ## 📽️ Video Tutorials 79 | 80 | - [Introduction to Pantry Tracker](https://www.youtube.com/watch?v=8jM9Gmm9Bsw) 81 | - [Setting Up Next.js for Your Project](https://www.youtube.com/watch?v=vwSlYG7hFk0) 82 | - [Implementing Custom Hooks in Next.js](https://www.youtube.com/watch?v=ZjkS11DSeEk) 83 | 84 | ## 📧 Contact 85 | 86 | For any questions, issues, or contributions, feel free to open an issue on the [GitHub repository](https://github.com/yourusername/pantry-tracker/issues) or reach out via email. 87 | 88 | 89 | We hope you find Pantry Tracker useful! Happy coding! 🎉 90 | --------------------------------------------------------------------------------