Giter VIP home page Giter VIP logo

backstock5.2.4's Introduction

Backstock

Keep track of what you have on hand so you always know - even on the go!
Backstock is a home inventory app for tracking the items you have, their location, ideal quantities, and expiration dates!

Backstock

How It's Made:

Tech used: Node.js, Express.js, EJS, Passport, Bootstrap & JavaScript

Backstock is a full stack web application following MVC architecture. It runs on Node.js and Express for the backend and EJS to render the views. Users can sign up using passport authentication and begin adding new backstock items to their inventory. The inventory list can be sorted by several columns and filtered through typing in the Search bar. Individual items can be edited if quantities or other information needs to be updated. Conditional rendering helps users know when items need to be restocked or when they are expired.

Versions

Version 1 - MVP - Add items to a Backstock list which can be sorted, filtered, updated, and deleted.

Version 2 - Added shopping list functionality for users to add unique items to their shopping list or to import them directly from the Backstock list. When importing, the quantity may be reflective of the ideal quantity and the quantity already on hand. Users can delete items from the shopping list without affecting their Backstock list.

Lessons Learned:

I learned a lot about working with Bootstrap classes and when this was advantageous, and when it was better to use my own styling. Sorting tables, specifically dates, proved to be more difficult than first anticipated. Date rendering also presented challenges, and I ended up using Day.js which is a suggested replacement for the ever-popular Moment.js, which is considered legacy.

When changing some client-side JavaScript functions to forms with method override, I learned about methods submit the same form using different methods using button attributes such as formaction and formmethod.

Optimizations

Future iterations might include notifying users when expiration dates are approaching, filtering items based on multiple categories, marking shopping list items as complete, and the ability to add (manually or automatically) all out-of-stock items to the shopping list.

This application would also be well-suited to use a JavaScript framework, such as React, where statefulness would be helpful. Also, writing in React Native.

It would be wonderful if the app could also use a UPC scanner and connect to an API for easier addition of items.


Accomplishments:

  • Added restock shopping list
  • Added backstock item to restock shopping list
  • Displayed visually based on the condition of an item being low in stock or out of stock
  • Displayed visually based on the condition of an item being expired
  • Added ability to increase and decrease quantities
  • Refactored search filter code
  • Refactored date function code and relocated within server
  • Relocated conditional expired class code within server
  • Relocated conditional restock class code within server
  • Refactored function for sorting dates in table

TO-DO:

  • Ensure accessibility - check functionality with tabbing and screen readers
  • In edit.ejs create select dropdown dynamically
  • Treat each row as a card and style differently on mobile
  • Create external server-side filter for sorting items
  • Add delete confirmation on Restock page
  • Format footer to stick to bottom of page
  • Select more than one item at a time to update quantity
  • Update quantity or delete backstock items on main screen instead of on edit page
  • Refactor code for unit tests
  • Implement unit tests
  • Add page to view account details
  • Add functionality to edit account details
  • Add forgotten password or password reset functionality
  • Add ability to mark restock items as complete
  • Build in React
  • Build in React Native
  • Add UPC scanner linked to an API

backstock5.2.4's People

Contributors

katiehom avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.