Coder Social home page Coder Social logo

project-1's Introduction

“Home Manager”

A collaborative project made for the University of Minnesota Full Stack Web Development Coding Boot Camp, August 2018

by Chris Berry, James Breckenitch, Colton Scherer, Nick Sedillos & Zach Zeurcher

Description

Home Manager is a tool for keeping track of what items you have, and how many of each. It lets you tag items with their physical Location, Category or type of product, and if desired, a UPC for future shopping. With this tool, you don’t have to memorize an inventory or physically check it each time you go shopping. This could be useful for families, office teams, or anyone else who shares things scattered across multiple locations and needs a simple way to keep track of them.

Our application was partially inspired the real life scenario of a family compiling a shopping list. Many households go through a lot of food, cleaning supplies, and other household goods, and even if they can keep everything in the house physically organized, it’s sometimes a chore to run to the basement or the garage or the pantry and check whether you need paper towels, or printer paper, or whatever else you might be running out of. The goal for this app was to help a user or group of users gather information about their goods over a period of time and then track it through changes, so that they aren’t forced to memorize, guess, or constantly recheck.

Project requirements

  • Build something awesome
  • Must use at least two APIs
  • Must use Ajax to pull data
  • Must utilize at least one new library or technology that we haven’t discussed
  • Must have a polished frontend/UI
  • Must meet good quality coding standards (indentation, scoping, naming)
  • Must NOT use alerts, confirms, or prompts (look into modals!)
  • Must have some sort of repeating element (table, columns, etc)
  • Must use Bootstrap or alternative CSS framework
  • Must be deployed (GitHub Pages or Firebase)
  • Must have user input validation
  • Presentation date: two week from today

Our approach

We referred to the project requirements and thought about the concepts we’d studied so far in Boot Camp, and how they might be combined in ways that are useful. We especially thought about the possibilities of Firebase as a way of persistently tracking information. The API criteria inspired us to look for other apps and technologies that would give the user more information based on what they’d already entered into the database. The process of writing our MVP criteria was useful in whittling down our slightly vague idea into a core functionality that could be built on in the future.

Bootstrap was a key component in making a quick framework within the first day of the project. We didn’t use rows or columns, but what were useful were Bootstrap’s Navbar and dropdowns, which allowed us to provide a filter mechanic with which the user can easily find what they’re looking for. From there we were able use CSS to make adjustments when necessary and to provide a unique style for the app.

Working together as our Triforce, JavaScript, jQuery and Firebase were essential for the functionality of the app, from programing the click events to generating and displaying the table. With Firebase housing all of data for the app, we used jQuery to call upon our information when needed and push it into the table. When the page is first loaded, jQuery grabs and posts the entire item list from Firebase. At the same time, the Locations and Categories of each item are sorted into their own arrays and duplicates are removed. These are then appended, in alphabetical order, into their respective dropdowns in the navbar.

Google Charts is a data visualization API offering a variety of ways for users to see the relative quantities of all their different items. A remote JavaScript file called loader.js contains the API. A local, customizable JavaScript file identifies our Firebase database as the information to be used and loads Google’s Visualization API. Callback functions populate the charts with our data and prepare click events for the user to interact with them. The charts themselves are rendered in-browser with HTML5 and Scalable Vector Graphics (SVG).

Ideas for future development

We had several ideas for features that we were not able to add into the app:

  • Add a sign in for different users to have unique item lists
  • The total price of each item calculates with the quantity
  • Have a total price at the bottom that also updates with the filter criteria, e.g. total cost of what is in the pantry or total for all of your movies
  • Clicking the item name provides a list of shopping links, possibly with price comparisons.
  • Items are time stamped when first added as well as when the quantity is changed, so the user can track how often it is being used.
  • Be like Facebook and have mind-reading ads you didn't ask for.

project-1's People

Contributors

cmoney45 avatar nicksedillos avatar casttle avatar jrbreckenitch avatar

Watchers

 avatar  avatar  avatar

project-1's Issues

Readme Update

  • Update Readme with summary

  • Update Readme with functionality

  • Update Readme with future features.

Form header

  • In table load, create form header

  • Link appropriately to not disrupt styling

Look at older builds to understand how it was setup previously.

Wireframe HTML/CSS

  • Create wireframe

  • Assign ID's and Classes to HTML

  • Create form for submitting items

  • Create +/- buttons for quantity

  • create delete row buttons

  • create modal

Implement a second API

  • Turn analytics back on
  • Remove alert when UPC field is left empty
  • Add Ajax call for Barcode Lookup
  • Display shopping links for all items with UPCs entered.
  • Fix display of UPC number next to delete button

Presentation requirements

  • What is the application's overall concept?
  • What is the motivation for the application's development?
  • What was the design process?
  • What technologies have been used, and how do they work?
  • Demonstrate the functionality of your application.
  • What direction will future development take?
  • Presentation must be ten minutes in length.

Coding requirements

  • Must use at least two APIs
  • Must use AJAX to pull data
  • Must utilize at least one new library or technology that we haven’t discussed
  • Must have a polished frontend/UI
  • Must meet good quality coding standards (indentation, scoping, naming)
  • Must NOT use alerts, confirms, or prompts (look into modals!)
  • Must have some sort of repeating element (table, columns, etc)
  • Must use Bootstrap or Alternative CSS Framework
  • Must be Deployed (Github Pages)
  • Must have User Input Validation

Story

User Story

As the head of the household, I want an easy to use app so that I can always have a reference to my net worth.

Acceptance Criteria

  • Build a form that collects the net worth of items owned
  • Display the total amount in a separate section on the form.

Plan Google Charts functionality

  • The chart should display the changes in an item's quantity over time as a line graph.
  • Each change in an item's quantity should be time-stamped.
  • A maximum of one change per day displayed on the chart?

Story

User Story

As as household member, I want to keep track of food, so that I can reduce overhead and spend less eating out.

Acceptance Criteria

  • Add a form that adds items to list
    Enter Item
    quantity
    Category
    Storage location
    Price

  • Create search bar to enter item information

  • Create +/- buttons for quantity

  • Create drop-down menus for category and storage location

Nav Bar Fix

  • We should make sure the Nav bar is mobile responsive

  • Update Nav and add item button to one line

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.