iliganproductprice

nvm project logo Budget Buddy

Budget Buddy is a simple and intuitive web app designed to help users manage their expenses, track their income, and stay on top of their budgets!
Built with love using Express.js, React.js, and hosted on Vercel. ๐Ÿงก


โœจ Features

  • ๐Ÿ“Š Have an estimate of your total spending
  • (more features to be added…)

๐Ÿš€ Tech Stack

Frontend Backend Hosting
React.js Express.js Vercel (Frontend + API)
HTML5 Node.js
CSS3/SCSS MongoDB

๐Ÿ› ๏ธ Installation (Local Development)

If you want to run Budget Buddy locally, follow these steps:

1. Clone the repository

git clone https://github.com/KishonShrill/iliganproductprice.git
cd iliganproductprice

2. Install frontend dependencies

npm install

3. Install backend dependencies – (Necessary only for testing)

cd ../server
npm install

4. Set up environment variables

Create a .env file on root folder and inquire repo owner for variables:

# CONFIG VARIABLES
VITE_SCAN=false

# CLOUDINARY
CLOUDINARY_CLOUD_NAME=your_cloud_name_here
CLOUDINARY_API_KEY=your_api_key_here
CLOUDINARY_API_SECRET=your_api_secret_here

# MONGODB
HIDDEN_URI=your_mongodb_uri_here

and replace the value of const uri = to process.env.HIDDEN_URI

5. Run the app

To test the frontend:

npm run dev

To test the fullstack:

npm run start

๐ŸŒ Deployment

We use Vercel for hosting. Both the frontend and API routes are handled by Vercel.

๐Ÿ“š Project Structure

Code Structure

budget-buddy/
โ”œโ”€โ”€ public/     # Frontend public materials
โ”‚   โ””โ”€โ”€ UI/         # UI Icons
โ”œโ”€โ”€ server/     # Express backend
โ”‚   โ””โ”€โ”€ auth.js     # For adding and editing product items
โ”‚   โ””โ”€โ”€ server.js   # Routes and everything backend in one place (will change this soon)
โ”œโ”€โ”€ src/
โ”‚   โ””โ”€โ”€ assets/  
โ”‚   โ””โ”€โ”€ components/ # Frontend Components
โ”‚   โ””โ”€โ”€ contexts/  
โ”‚   โ””โ”€โ”€ hooks/      # Fetch hooks for backend
โ”‚   โ””โ”€โ”€ pages/      # Different file for different pages
โ”‚   โ””โ”€โ”€ styles/
โ”‚   โ””โ”€โ”€ App.jsx  
โ”‚   โ””โ”€โ”€ main.jsx    
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ package.json
โ””โ”€โ”€ vercel.json

MongoDB Data

  • product_id = <year>-<incrementing-product-number>
  • date_updated = <year>-<month>-<day>
  • location_id = Location ID points to the _id of location table to get the location name.
  • category_id = Category ID points to the _id of category table to get the location name.
{
  "_id": "<id_is_automatically_added_by_mongodb>",
  "product_id": "2024-0002",
  "product_name": "Catsan Light Cat Litter 3L",
  "category_id": "662a0a4fc8859ec225c0952c",
  "updated_price": 159.8,
  "date_updated": "2024-04-10",
  "location_id": "662666570ef9865c6431dcb1"
}

๐Ÿ™‹โ€โ™‚๏ธ Contributing

Pull requests are welcome!

If you want to make improvements, open an issue first to discuss what you want to change.

  • When contributing, put your name/username and github link in this format:
CONTRIBUTION
- [<name/username>](<link-to-github>)

๐Ÿ“œ License

This project is licensed under the MIT License.

Visit original content creator repository https://github.com/KishonShrill/iliganproductprice

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *