Git Product home page Git Product logo

bom-squad's People

Contributors

hndmrsh avatar pleatherstarfish avatar

Stargazers

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

Watchers

 avatar  avatar

bom-squad's Issues

Add testing keys for reCAPTCHA

In order to run the site locally, any contributors must have the production reCAPTCHA API keys. To prevent this, we should use a different testing set of reCAPTCHA API keys for when the site is running in testing/debug mode - it seems like Google provide a private/public key pair for testing purposes. This pair of API keys can be stored directly in settings.py.

By doing this, contributors will not need to have the production reCAPTCHA API key at all, simplifying the setup process and increasing security by keeping the prod key private to those who need to be able to deploy to prod.

Build versioning logic for a user's personal inventory

The idea is that the user's component inventory should keep the last 500 changes as personal history, so if a user makes a mistake, it's easy to see what they changed and correct it. I think the best approach might be to build this with the Django JSONField model field. The main inventory could still be maintained with the relational tables. But every change to the user's component inventory could be logged with a timestamp in a JSONfield (inventory_history or whatever).

The tricky part of course is writing the logic allowing a user to "restore" the inventory to a previous state or diff a previous state with the current state.

Add a way for users to publicly rate the effectiveness of a component for a particular build

For certain builds (e.g. Triple Sloth v2) there may be multiple components from different suppliers that can work for certain items in the BOM. We need a way for the community to rate the effectiveness of component for a particular build.

For example, this could be built as a table witch contains four foreign keys: to the user, to the module, to the item in the BOM, and to the particular component. This table would additionally take two other fields, the rating (i.e. 1-5) and a user comment string. (A complex comment architecture is probably unnecessary here since it' more of a review than a comment section.)

Add logic allowing user to add or remove a component from their personal inventory

The personal inventory is the list of components already in a user's collection. Build out the component list allowing users to search for a specific component by various keywords, categories or filters. Allow user to add or remove that component from their inventory, including allowing users to specify how many of a certain component they have and where it is stored. In user_profile, the UserProfileComponentInventoryData is the "through" table that connects the user id with the component and contains other externalities like the number of components or personalized location (e.g. box / draw / cell, etc.)

Build out the full-screen menu

The current site uses a minimalist sticky menu with a full-screen menu that opens from an arrow button in the main menu. This full-screen menu needs to be substantially built out, including improving the UI, adding JavaScript/CSS animations for the logo (partial "bees head" logo to full BOM Squad logo with text and back on menu open), and adding a mobile-compatible version.

Some inspo for the full-screen menu:

https://patrickheng.com/
https://yelvy.com/
https://vintage.agency/
https://andreribeiro.co/

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.