Wiredcraft / cait

CAIT prototype
0 stars 2 forks source link

Requirements for CAIT Business prototype #1

Open BenderV opened 9 years ago

BenderV commented 9 years ago

~This issue is intented for discussion for the requirements for the system being built.)~

What is it?

A simple prototype for the CAIT Business project. The goal is too quickly draft a working prototype of the project to show and test the feasibility and difficulty (or lack-of ^^) of the project.

It's first intended for us, to see the project feasibility, then to WRI, to show them an already working prototype.

About the project

The presentation and the requirements of the project are here

How will it be built?

You are free to use any framework/libraries that you think are the best for the job (keep it simple!), as long as the code is readable and maintenable. However, the front-end framework should be in React.

We suggest you to start in this order.

  1. Method to automatically import data from the csv/json files, and to store it in a database.
  2. Build all the necessary API endpoints (it's up to you to choose the structure, but you are free to discuss it with us)
  3. Create a simple page which lists companies and offer a filter by fields.
  4. Have a page for each companies, with a simple graph and some description.
  5. Have a page that allow to compare emissions of two or more companies (on a graph).

    Where is the data?

We have created a fake dataset (simplified) for this exercise. https://gist.github.com/BenderV/3ea0212a9c4527ae14b1

Comments

Don't spend too much time on the design or the general aspect of the page. We are more interested in your communication skills and in your ability to quickly create a working application.

Feel free to ask us any questions or to ask for help if you need! Good luck!

JuhaS commented 9 years ago

@epiphone Just to clarify, the requirements in the Gist are not in the scope of your task, it it just to give you idea of the overall project. I recommend you start with the data import, super simple API and single page the uses that data. You can then move to additional pages and features. Remember, you don't have to rush to finish all requirements, just got at your pace. Just remember to post your progress here and push your code to Github regularly (even if it's in incomplete or not polished state).

Tsemppiä koodailuun, koitan olla slackissa niin voidaan jutella lisää: https://wiredcraft.slack.com/messages/aleksi-cait

epiphone commented 9 years ago

I wrote the API and data importing methods today, moving on to the UI tomorrow. Haven't run to any bigger problems so far; the requirements are pretty clear, thanks!

I went with Flask and sqlite for the back-end. Don't know about the graphing library yet, have to do some research on that.

epiphone commented 9 years ago

Alright, now I have a simple page for listing/filtering the companies: cait4

..and a page for the selected company, with a graph for the emissions and the option to compare with other companies:

cait3

The colours etc. could use some polishing for sure, but most of the functionality is there, I think.

hunvreus commented 9 years ago
  1. I would not different colors for each sections of the same line (dashed and solid). Just keep one color for each line.
  2. Not sure why you have "Apple" as the title and then a bunch of selected countries. I only assume it's because you're comparing apple to other companies. We could simplify this process and make it selectable companies for all of them and have an accordion that shows the details about the company in the right part of the app. I'll doodle that tomorrow (your time).
epiphone commented 9 years ago

Reduced it down to a single page:

cait Is this anywhere near what you guys had in mind?

Also, as suggested, I tried using a logarithmic scale for the x axis:

cait6

Don't think it's massively helpful, though -- I would just stick with the linear one.

hunvreus commented 9 years ago

Yep. Just push it to a prod/staging server and we're good to go.

@JuhaS @BenderV Can you evaluate @epiphone 's code?

BenderV commented 9 years ago

staging: https://wiredcraft-cait-proto.herokuapp.com/

I reviewed the code, and it's good. It's well organized (one bonus point for the blueprints) & robust (load google chart before rendering, csrf, WindowResizeMixin, ...).

@JuhaS didn't look at it yet, but he told me that he would have give one bonus point if there was finnish variable name ^^