Giter Site home page Giter Site logo

spidereyes's Introduction

SpiderEyes

Latest Release

FRC Scouting web application.

Takes in CSV files and makes a table from them. From there you can use the modification buttons at the top to further analyze the data. Modification buttons always produce a new tab, so you will never delete your original data using them.

Modification Buttons

Synthesize Column

Synthesize Column will allow you to sum multiple values in a data row to create a new value, useful for making a general "score" column.

Calculate Averages

Calculate Averages will take every row with a matching key (as specified by the "key" column), extract the values from the "values" columns, and average each value together.

For example, with key column Team and value columns A and B,

Team A B C
1 50 10 99
2 30 10 24
1 20 10 39
2 40 10 11

turns into this:

Team A B
1 35.00±... 10.00±0.00
2 35.00±... 10.00±0.00

The two columns are averaged independently, and extra columns are removed.

Column Edits

You can edit certain properties of columns. Currently, you can only edit the score property, which multiplies all of the values in the column by what you enter. This is useful for measuring game features in points, rather than amounts.

Building

This is fairly simple to build. Simply run pnpm install to grab the required dependencies, then pnpm run build to build everything. You can then serve the dist folder, and the application is ready!

If you want to develop, use pnpm run dev, which will start a server for you.

spidereyes's People

Contributors

dependabot[bot] avatar ktogami-rr avatar octylfractal avatar

Stargazers

 avatar  avatar

Watchers

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

spidereyes's Issues

Introduce column types

Right now, there is no "type" for a column. Values possible for a column are completely arbitrary. There should be standardized column types with constrained values, allowing for more consistent sorting.

There should also be an option to override the auto-detected column type.

Allow scoring of columns

Each column should be able to have a score attached to it, i.e. for 2019 DDS hatch is worth 2, cargo 3 -- so we want to be able to multiply 5 cargo x 3 points, and get 15 as the value.

By "attached", I think that replacing the column with the score value should work. It's rare that we would like to know the original amount again, and even then dividing by the points is a simple mental task. There's no reason we should need to recover the original value.

Graphs

We should have the ability to generate graph tabs, between any two variables and keyed by a third, e.g. X=Match,Y=Cargo,Z=Team would generate a line for each team showing their cargo scoring ability over the regional.

Export CSV

It would be nice to export the tables generated as CSV files themselves.

Full JS score support

We should allow scoring of columns using javascript function bodies, for arbitrary formulas. We can pass in the sheet as a parameter. Should be secure, but maybe we should implement something to prevent users crashing their own window. Maybe run it once and then save it?

Handle large files better

Currently we buffer all CSV data in memory for loading. This isn't really sustainable for large amounts of scouting data, so we should work on streaming it if possible.

Persistent state over reload / close

It's annoying when you accidentally refresh, or in dev work when doing live reload, that state is not persisted. It should be easy to save it with something like redux-persist.

Fix sorting

We should drop empty fields to the bottom regardless of sorting direction.

Export actions

It would be nice to be able to export a set of actions applied to a CSV file, and re-apply them to another one, for data fixups.

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.