Git Product home page Git Product logo

solverstack-web's Introduction

This is a Next.js project bootstrapped with create-next-app.

Getting Started

First, run the development server:

cd .dev-tools
docker-compose up

Open http://localhost:3000 with your browser to see the result.

The page auto-updates as you edit the file.

Learn More

To learn more about Next.js, take a look at the following resources:

solverstack-web's People

Contributors

cnpryer avatar

Watchers

 avatar  avatar

solverstack-web's Issues

optimize forms

After MVP is completed, v1 will need to be optimized to reduce strain on the client. Some inputs don't need to trigger any state-based behaviors.

block off non-initial-mvp pages

test users will only be using the Route module initially. until this is polished and improved sufficiently I'll either fully block off or put placeholders in for the following pages/features:

  • Login
  • Registration
  • Trending (has placeholder)
  • Create (has placeholder)
  • Discover
    • Chained (disable)
    • Geocode (disable)
    • Depot (disable)
  • Geocode Setup
  • Depot Setup

Include any information about why these are blocked off and when we plan to release them/how (maybe add to home page).

fix d3 svg map draw bug

the visual sometimes will render offset in a position not centered within each card. i have not narrowed down the true root cause, but this is probably due to the current implementation of the initial draw. we'll handle this for v1.

replace google maps with d3

From my understanding (could be out-dated or even incorrect), google maps api is pretty pricey for large-scale integrations. Since we really don't need direction-level routing visualized or even returned to the user, we should start with just creating our own simplified and clean visualization of the vrp stack's outputs. We can do this using d3.js.

user-baked module-chaining

After minimum features of the main crud service is completed, the client needs to be baked with user-based module chaining. This is where data from one module can be chained into another module.

Example: Geocode -> Depot -> Route

d3 animation for loading

setState does not update state of variable until scope is returned. isAnimation will be used to stop and start and animations.

add null island filter

whenever a user passes a zipcode+country that does not geocode the geocode service will return NaN values, but for the MVP we're returning 0s to simplify. To accommodate we'll scrub out null island geocodes after the response and notify through a basic alert.

add Route module help hover info

Maybe include a "?" users can hover over for input file requirements.

  1. Must be tidy .csv
  2. Must contain exact columns "longitude", "latitude", "pallets".

discover page

hardcoded cards of Featured Stack (demo stack), Geocode, Depot, Route.

home page

generic landing page (no SEO). SEO is pushed to v1.

mvp needs inspiration notes

General
Users should sign up with the intention on finding a module to use in order to solve their simpler problems.

Home page should preview featured stacks, users, and daily modules news (what are new components released into the ecosystem).

Each stack should orchestrate very clear data oriented flow to problem solutions. One example is the requirement of a basic routing model.

“Routing” searches should show basic routing solverstack available for mvp. This stack may include modules/components such as:

  • Location Data Processing

    • Node Indexing

    • Geocodes and Previews

    • Distance Matrices

  • Model Assumption Helpers

    • Have weight; no pallets

    • Have pallets; no weight

  • Ortools RPC Head

    • Constant Vehicles

    • Constant Capacities

    • Ortools Basic Capacitated Solve

    • Open Sourced RPC API Flask Service

  • Ortools VRP Dashboard

    • Intractable Visual Prototype

    • Stand-alone Add-on Prototype (Just redirect from Head)

  • Genetic Algorithm Ortools Scheduler

    • Constant Driver Count

    • Required USA Driver Regulations Adherence

    • Rust or NumPy Service

    • Gantt

NOTE: some design battles will be how to blend redundancy in UI. Example: Ortools Head is current vrp setup box. Geocoding previews can overlap with this module head. What should occur is a natural prioritization of ortools over geocoding. Maybe assign weights to modules within stack (representing order) and propagating hide vs show down it. This also ties into the peer-review-like nature of the ecosystem - where people influence stacks for iterative publishing. This can be done as a PR type process but more granular. Think discord chats but adjacent to the life of a stack. Conversation/peer review requests can be toggled into view.

Users should be able to search for a module, see it in their feed (on a stack studio page) click to add/append to stack. You can create stacks with one module or 100 as long as each are configurable. All configuration should be defined by data objects and targets.

Solverstack ecosystem can allow devs to integrate with apis and sdks. We can create solverstack object validation at integrated endpoints. If custom modules want to be contributed we can offer methods involving basic github linking for smart modules, full blown service integration, or in-app solver-lang module construction.

optimize node_modules

I'm new to node, but if it's anything similar to virtual environments in python, I'd like to slim down the dependencies we have here. There seems to be a lot.

VrpSetup refactor needed

Right now everything was brute-forced. This is not sustainable and ignores react-friendly designs. By refactoring we'll enable better component re-usability and improve general performance.

add ordered route visualization

right now we are just ordering the route sequence in the d3 visual as it is ordered in the original input data. we are already capturing the stop sequence number so all we need to do is just instantiate a list of a route's size and then insert the correct stop into that list (all within the current createRoutes function.

demo chained stack

For the mvp we'll have a demo implementation of chained stacks (geocode, depot, route). This will be the "featured stack" for early versions.

plotting after resized svg is inaccurate

/setup/vrp has a map with some inputs for an origin and destination nodes. the map is limited to USA and uses d3 to draw the elements on/as react components.

On load the svg is drawn and has responsive resizing from that point on. After a resize, however, the plotting functionality remains aligned with the original expected size of the default svg draw.

generic loading UI

for the mvp we'll implement a generic loading visual instead of custom d3.js animations. The d3.js animations will be pushed to v1.

soften up contiguous USA filter

the contiguous USA requirement is too strict at the moment, alerting users when there aren't international destinations (need to debug).

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.