/grocery-item-tracker

A web application for tracking grocery items

Primary LanguageTypeScriptMIT LicenseMIT

Grocery Item Tracker




Table Of Contents





About This Project


A web application for keeping track of grocery items.

The basic idea is to register the items after purchase within the application and physically tag them with their assigned id. This later allows the user to mark individual grocery items as consumed.


The application should provide the user with the following core features:

  • overview of current supply
  • add items to supply
  • consume items from supply
  • generate a shopping list
  • generate reports about grocery purchases and consumption


Dashboard




Tech Stack

Languages Frontend Backend Databases Testing Bundler
javascript html5 nodejs mariadb ESLint Webpack
typescript css3 Express Jest
React Cypress



Installation



Prerequisite


  • MariaDB with root access
  • Node.js


Clone Repository


git clone https://github.com/voss29/grocery-item-tracker.git
cd grocery-item-tracker


Install Dependencies


npm install


Initialize Database



Option 1: Run Command Line Installation Script


node ./src/backend/mariaDB/setupDatabaseCLI.mjs

This script will walk you through the installation and will create the .env file containing the database credentials for the application.



Option 2: Run SQL Script


File ./src/backend/mariaDB/setupDatabase.sql:

Replace password placeholder secret at line 223.


Log into mariaDB with root privileges an run script:

source ./src/backend/mariaDB/setupDatabase.sql

Create file ./dist/.env with the following content:

DB_HOST=<host>
DB_PORT=<port>
DB_USER=groceryItemTrackerUser
DB_PWD=<password>


Compile Source Code


npm run compile


Start Application Server


node ./dist/server.js



Documentation




Features To Add


  • highlight items that are close or past their expiration date
  • add ability to define minimums for categories and subcategories
  • add ability to generate shopping list
  • add ability to generate reports about item purchases and item consumption


Screen Captures



Dashboard






Supply Overview






Add Items To Supply






Add New Product






Consume Items



Version History


Version 0.1


  • add supply overview
  • add overview of upcoming expiration dates
  • add ability to add items to supply
  • add ability to add new product information
  • add ability to consume items from supply