/Project_2

An application that uses mySQL, Sequelize, Node.js and Handlebars to help you inventory and pack your outdoor gear.

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

Meili

License Icon

An application that uses mySQL, Sequelize, Node.js and Handlebars to help you inventory and pack your outdoor gear.

(Last Updated 30 January 2021)

Table of Contents

Locations

Deployed Application Link: https://secret-harbor-98103.herokuapp.com/

GitHub Repository Link: https://github.com/LauraGwendolynBurch/Project_2

Application Summary

This application borrows it's name from Meili, the Norse God of Travel. The name "Meili" translates to "Mile Stepper" and this application was made with the needs of modern-day milesteppers in mind. Hiking, camping and wilderness activity in general all require a certain level of preplanning, organization and preparedness if they are to be enjoyable and safe. One crucial aspect of preparing for an outing is stocking one's pack with the gear and supplies needed to have a comfortable outing and make it home in one piece. This is where Meili comes in!

In it's current Minimal Viable Product iteration, Meili is a SQL database application which allows a user to add their outdoor gear to a centralized inventory. In this inventory, a user can track where their equipment is stored, as well as details regarding weight and quantity, and which gear is going with them on their next trip.

Landing Page Stillshot

Usage Instructions

Account Creation and Login

  1. Click the 'Deployed Application Link' provided in the 'Location' section.
  2. Click 'create account'.
  3. Enter your email and create a password.
  4. Save your login info to your notes for future use.

Account Creation Demo

Add and Delete Items to the Inventory

  1. After logging in, you will be directed to your inventory page.
  2. Click the 'add item' to initiate the item creation form.
  3. Fill in all item information fields and click 'submit' to add it to your inventory.
  4. The item and it's information will populate in the inventory table.
  5. To delete an item row from the inventory, click the 'delete' button.

Add/Delete Demo

Pack and Unpack Items in the Inventory

  1. Items currently in the packing list can be viewed by clicking on the 'packed items' button.
  2. To add an item to the packing list click the 'pack' button in the corresponding item row.
  3. To remove an item from the packing list, click the 'unpack' button in the corresponding item row.
  4. Each button click will move one quantity of each item from it's corresponding row.
  5. Use multiple clicks to move multiple quantities from the same item row.

Pack/Unpack Demo

Installation

No installation is required for running the deployed version of Meili. Simply click the 'Deployed Application Link' provided in the 'Location' section to get started.

When downloading and running the application locally, use the following steps:

  1. Install mySQL and MySQL workbench using the directions outlined in the 'MySQL Installation Guide'.

  2. Open the 'Deployed Application Link' in the 'Location' section.

  3. Clone the repository to your computer.

  4. Open a new terminal instance in the Meili code file and run "npm init -y" to install the necessary node modules.

  5. Create a .env file in the root of the directory with the following data:

     DB_USER=root
     DB_PASS=**Your Password Here**
     DB_DATABASE=gear_db
    
  6. Log into your mySQL workbench, copy the contents of Meili's schema.sql file into your workbench and hit the lightning button to create your database.

  7. In the Meili file code terminal, run "node server" to establish your connection.

  8. A local host link will appear. Click the link and you're up and running!

Testing

  1. To test Meili's code, begin by completing the local installation process.
  2. After logging into mySQL Workbench and establishing your local server connection, using the CLI, run the command "npm run seed" in the Command Line Interface while the server connection to run the seed file.
  3. If the seed file populates the tables in your Workbench you have a successful connection to your local database
  4. Additional testing of api routes can be completed via Postman Application. Instructions for Postman installation and usage can be found at https://www.postman.com/.

Future Development

Additional goals and application features for future devlopment include:

  • More dynamic interface to edit existing item information in the inventory
  • Ability to create multiple packing lists and separate storage location tables save thenm to the database
  • Additional information fields for gear items to allow for item classification and filtering
  • Outing Planner Page for storage of trip details, such as:
    • Outing Dates and Duration
    • Travel Itenaries
    • Outing location(s)
    • Environmental Conditions
    • Weather
    • Directions to Trailhead
    • GPS Land Navigation Data
    • Meal Plan
    • Communications Plan
    • Emergency/Medical Evacuation Plan
    • Signal Plan
    • Emergency Contacts
    • To-do Lists
  • API Intergration to query weather data of desired outing location and display on planning page
  • Smart suggestions of gear from the inventory to take based on trip duration, environmental and weather data from the Outing Page
  • Interactive electronic packlist page to allow user to check off and move items from storage locations to packed status dynamically
  • Ability to generate printable summaries of storage and backpack inventories to place in containers
  • Button to email trip details summary to designated emergency contact(s) for accountability and safety

Contributors

Resources

Point of Contact

Have questions? Contact Gavin Calkins at gavin.calkins@gmail.com.

License

Meili. An application that uses mySQL, Sequelize, Node.js and Handlebars to help you inventory and pack your outdoor gear.

Copyright (C) 2021  Laura Gwendolyn Burch, Gavin B. Calkins, Ilya Libershteyn, Meagan Sheehan-James, Frederick Thomas 

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.