Giter Club home page Giter Club logo

packstack's Introduction

Packstack

Packstack makes it easy for backpackers to plan their expeditions. At its core, Packstack features a flexible, versatile gear inventory management system that makes building packing lists simple.

The latest release can be found at Packstack.io

Join us on Slack.

Note: The API has been broken out into its own repo.

Getting started

Prerequisites

  • Docker
  • Yarn

Install

  • Clone the repo: git clone https://github.com/maplethorpej/packstack.git packstack-frontend
  • CD app root: cd packstack-frontend/app
  • Install: yarn install
  • Start: yarn start
  • Setup the API
  • 🎉🙌🤘🙌🎉

Contributing

If you’re interested in contributing to Packstack, thank you! – there’s much yet to be done 🙂 Looking for a place to get started? Check out the Issues section.

Learn more about contributing, and make sure to read our Code of Conduct.

License

Apache 2.0

packstack's People

Contributors

atgardner avatar bebersohl avatar callisto13 avatar carlovan avatar darinalleman avatar dependabot[bot] avatar maplethorpej avatar victorwyee avatar willkrakow avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

packstack's Issues

Inconsistent behavior with weight units

There seems to be inconsistent behavior with selecting weight units. This is likely due to a utility function converting to a larger unit, i.e. trying to be "smart."

User request:

I noticed that even though I’m adding item weights in oz and have oz set as my default weight unit their weights are showing in pounds

image

Embedded code generator for iframe integration.

The top handiest site I have tried so far! Thank you!

I think it would be great to add a button to generate the iframe code for the pack details so we can embed the list details/total weight/charts to our own blogs.

Thanks!

Bump to sequelize 6.5.0 crashes app

Sequelize has deprecated .import in v6.

Which means that since the bump commit we get the following error on start:

web_1       | [nodemon] starting `node -r esm index.js`
web_1       | /usr/api/models/index.js:1
web_1       | TypeError: sequelize.import is not a function
web_1       |     at Object.<anonymous> (/usr/api/models/index.js:6:27)
web_1       |     at Generator.next (<anonymous>)
web_1       |     at Object.<anonymous> (/usr/api/index.js:1)
web_1       |     at Generator.next (<anonymous>)
web_1       | [nodemon] app crashed - waiting for file changes before starting...

The suggested fix is to change all uses of sequelize.import in api/models/index.js to:

require('./<foo>')(sequelize, Sequelize.DataTypes),

This fails for me with:

TypeError: require(...) is not a function

Which is weird because it really looks like those things are exported as functions which take those params 🤷‍♀️ .

Changing everything to:

require('./<foo>'),

means the app starts, but I end up with nothing in the database (ERROR: relation "categories" does not exist etc).

I am not sure whether there is something in my env which is compounding the original .import problem, or if there is more going on than I have context for. I will continue to dig when I next have a moment (if nobody else has figured it out by then), and I would be curious to know know if anyone else has the same sequence of errors that I do.

Toggle pack privacy

  • A toggle switch needs to be added for switching between public/private
  • This boolean exists on the pack object
  • A backend update may be required

Configuring web application icon

When saving a link to packstack.io to home on iOS the site logo is missing.
Adding support for that require only adding apple-touch-icon.png on the site root folder as described here

I think it's a fast win that should not be hard to implement and would be a very nice addition.

Item comment field in the Inventory

It would be useful to have a section on inventory items for users to leave a comment that would be visible on both the main inventory page and be available as an auto-populated field in the "notes" section of the packing list.

This could be used to provide descriptions of the item (i.e. 3-Season tent for 2 people or Footprint for Tent X) or to store maintenance / care information - especially since the instructions on tags often fades or is removed.

bug: Unexpected behaviour with "drag and drop" pack feature

When using the (totally awesome) new drag-and-drop feature to rearrange some items in my pack, I have noticed that things often rearrange themselves when you are moving something else.

Probably easier to show than tell, so here is a video of me trying to reorganise things in my Shelter category. When I move my tent, the categories below change order:

Screen.Recording.2021-03-05.at.11.54.32.mov

(I have also noticed that if you re-order an item, then do something else, eg add a new item, without saving, then the move is lost.)

cc @darinalleman

Optional checkboxes on packing lists

  • Display checkboxes on packing list views
  • Checkboxes should be toggleable - defaults to not shown
  • Checkbox selection values do not need to persist

Community comments

Build an interface that allows other users to comment on packs/specific items. Toggleable. Useful for receiving shakedown advice.

Old gear list links broken

The old routes were just /<number>/<name>, now we have /pack/<number>/<name> which mean links have broken for those who created packs pre-change. This will probably hurt bloggers who share their links most.

Is it possible to have some more redirection to the new routes?

Email / password based login

Hi,
Just a feature request to use email instead of username for login credentials. I lost my username and can no longer use the service :)

Default sort values

The settings under "My Packs" for the default weight unit should be imperial or metric. Additionally, changing an items weight until should update the default weight unit automatically if it's different from the current value.

MAJOR features that require new issues

  • Add community comments to pack / pack item
  • Group packing lists w/ gear delegation
  • Custom Item fields
  • Tagging packs and items ("want to buy")
  • "Like" packs
  • Public user profiles
  • Location tagging
  • Sub items / "kits"
  • Pack load capacity
  • Add categories w/ CSV import
  • Category management

Search for items in the database

An endpoint needs to be added that allows for searching for items in the database. Should use a POST request. Initially, input can just be a search string. Eventually, filters will be added.

Add item price field

  • Items should have optional "price" field
  • Field already exists on the Item object
  • Value will need to be passed to backend w/ payload

Allow line breaks in Notes

From user request in Slack.

Currently it is only possible to have one block of text in (Item|PackItem) Notes.

thing one thing two thing three

It would be good if we could tolerate newlines to allow users to separate into paragraphs.

thing one
thing two

thing three

note: I am not sure how this affects character counting.

Enhancement: pack view page and pack edit/inventory pages are not consistent

While the inventory and pack edit pages got a max-width and are centralized, the pack view page does not. I'm using an ultrawide screen and the pack view page is very hard to work with when it's using the entire screen.

I think that the pack view page should have max-width and be centered as well if only for cross-site consistency

Add "Big 3" weight breakdown category

We could easily combine the weights of the default categories Pack, Sleep System and Shelter System to generate this metric.

User request:

I’d love to be able to flag my “core 3” (pack/shelter/bedding) so they appear in the weight breakdown summary as a separate grouping, just like “worn weight” and “consumables”.

Compare packs / what-if-functionality

Hi all! Thanks for working on packstack! :) I'll try to contribute myself in the near future as well!

Here's a feature request:

As a user, I would like to have a functionality where I can compare two packs, and perform a what-if analysis of a pack list. This would be useful since I would like to optimize my pack list and see if it is worth adding or removing equipment. It would also be useful if I have added an item that I haven't bought yet to my inventory, and want to see how much it impacts my different packs. This could help me decide if I should buy the new piece of gear.

Some scenarios could be:

  • What is the weight before and after a change?
  • How does the bar chart/weight composition change?
  • See the difference between the two packs. Which items do they have in common? Which items differ?

Inventory item price field

A new inventory field that allows the entry of item price when adding/editing items in inventory. It should also contain a toggleable currency (usd, eur, gbp) - similarly to how weight is entered now.

A similar feature is found in other products of the same nature and allows for a good overview of how much the gear costs, which can be beneficial for personal use or when sharing packs with other people.

Show weight of packs in My Packs list

As a user, I would like to quickly be able to see how much my different packs weigh. This could be included in the My Packs list, just like the number of days or the season the pack is made for.

No "nice" way to return from pack View page

This is a nit, but the experience is quite clunky:

  • I am on my Packs page
  • I click to view my pack
  • I am taken to that page
  • There are 2 ways to get back to my "userspace"
    • click the browser back button
    • click the Packstack logo (this takes me back to the login page)

Again, just a small nit, but I feel people don't really expect to have to use the browser button with modern UIs, and going back to login (even if it does not log me out) is not ideal.

Mass select/delete inventory items

User request:

Ability to mass select and delete items on the master Inventory list rather than the 3 step process of Edit>Delete>Yes for each individual item. If not a mass select and delete ability, then at least a Delete link right next to the Edit link for each item followed by the Yes or No confirmation. I uploaded a revised CSV file to try to resolve something else (see #2 right below) and now I have duplicates of everything, so it would be nice if I could just clear out my entire inventory and start over with a new upload than having to go through the 3 step process to remove each item individually.

Create separate "Trip Details" form

Right now, a pack and the trip details are basically the same entity. We could break these out so that the "Trip Details" gets a separate page and form, and then packing lists can be assigned to it. Some users mention that they use multiple packs per trip.

The other advantage is that this would make the trip details less of an afterthought and encourage users to add more info about a trip.

Proposal: Add quantity field to Inventory items

From user request in Slack.

This is currently just a proposal and may get voted down. Discussion is ongoing, please comment and edit as you like.


Adding a Quantity field on Inventory items would let users keep track of how much they have of each piece of gear.

This has the potential to be at odds with the equivalent Quantity field in Packs. A way to make the two integrate would be to change the way users currently set Quantity on Pack items: instead of allowing users to set any number, they can set the Quantity based on that which they have in their Inventory (defaults to all?).

Potential problems / Things to think about:

  1. Does this mean the that the Quantity field on Inventory items is mandatory? We could default to 1, then make the Pack quantity based on what they have in the Inventory (and not increment-able beyond that).
  2. ... following the above note: I feel we would have to pick one or the other. Having the Pack item Quantity be selectively 100% configurable (as in unrelated to Inventory Quantity) makes the other feature pointless, and vice-versa. Keeping both behaviours together feels really weird to me, and I can imagine it leading to a cluttered UX.
  3. How does this affect current Packs? Would we have to do some sort of migration, and set the current Quantity from each Pack item as the Quantity on the corresponding Inventory item? nope there are more than 1 packs :p

Add item images

User request:

Ability to add pictures, or at least link to pictures hosted elsewhere with an option to have display as thumbnails on each item row. If not that, then ability to add picture of pack (or trail, or anything) within a pack lists overview. I understand if there's space/funding/hosting concerns here, but would be like a cherry on top of everything else you have going here with it.

Comma decimal separator

Hi there and first of all thanks for this amazing app!

I have noticed that while filling an item price, I am unable to enter a comma decimal number (about 50% of countries use 10,50 instead of 10.50), resulting in a 400 error from the API (exposing the executed SQL)

An easy fix would be to add the type=number" to the price input, the browser will handle the normalization from the user regional settings.

https://github.com/maplethorpej/packstack/blob/67c05d30104c52bd6de2b0b179096a54d5987dbf/frontend/src/app/components/ItemForm/ItemForm.tsx#L128-L133

using docker-for-windows fails

The volume mapping for the postgresql fails on Windows due to a user permission issue.
Also - make sure .sh file EOL doesn't get messed up by Windows

Sort inventory items within category by type

User request:

Ability to sort items within a category by their Item Type. For example, I'd like all my Tent item types to appear as a group within the Shelter category rather than spread out around other item types within that same category.

Feature: indicate where gear will be switched out/added/removed

This may not be a feasible thing to add seamlessly, but it would be awesome to have a way to indicate when:

  • A piece of gear will be ditched mid-hike (eg. starting with an ice-axe, losing it when getting out of snowy mountains)
  • A piece of gear will be added mid-hike (eg. larger water bladder for desert sections)
  • A piece of gear which will be plain switched (eg. 10 degree bag for a 30 degree bag)

The easy solution for users is of course to just create separate lists for each changing section, but maybe it would be cool to have all the different weight breakdowns and markers in one place. Maybe grouping? With common or base grouped things which never change, then user named or numbered groupings for changeables, and then the weight breakdown could include Base weights for each group (adding common+number/name) 🤷‍♀️ ?

Again this is 100% a non-essential nice to have. Just something to think on 😄

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.