Giter Site home page Giter Site logo

home-data-gallery's People

Contributors

akras14 avatar doddz3h avatar kylepolich avatar smitec avatar stweinn avatar trimchala avatar vincentdavis avatar waffle-iron avatar zareenfarooqui avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

home-data-gallery's Issues

Standardize indends on the code

Right now it's a mix of tabs and spaces. Let's standardize (begrudgingly) on spaces. It would also be great if some sort of linter could check for this.

This change will touch a lot of files. Please ensure that you make NO LOGICAL code changes. It would be difficult to review the code since so many lines will be different in the diff. This pull request that satisfies this task should only convert the tabs to spaces.

Add spinner image on data refresh

When the input fields are changed, and the API is called again, only the plots page has a waiting spinner. Need to add that to map and to data table.

Initialize map to user's local area

Right now, code.js assigns a new user to be centered on the continental united states at a large zoom.

It would be preferred if (when possible) the user's actual locale was detected and the zoom and center was picked appropriate to the user for a better experience.

Asynchronously get "next" data

When the API is called, presently, a limit of 500 is used, and the API is called only once. Thus, a user only sees the first 500 uploads matching their criteria.

It would be preferable for this to happen:

  1. Show indicator of waiting for API on first search (currently showing the box.png image)

  2. When API returns, hide box.png and display results

  3. If the API has no more results stop

  4. Show some indicator different from box.png indicating that more results are being retrieved

  5. Asynchronously call API to get more results

  6. Go to step 3

Create footer React component

Include information about our data license, which is "CC BY SA". There's an official logo we should include and link to an explanation page, similar to what I have on the footer of dataskeptic.com

Footer should have links to github repos as well, and back to the main domain: openhouseproject.co

Add map marker popup

Presently, the OH map shows markers for where listings are, but nothing is done on the map with those markers when you click on them.

Please add a pop up window with some quick details on the property clicked.

localStorage eviction

The amount of space that can be used in localStorage is limited. If a QuotaException is thrown, do smart eviction.

React.js migration

Following the excellent hierarchy created by @joytafty, let's convert the gallery portion of the site to be React based.

Feel free to break this into multiple tickets if you think it's too monolithic. Identifying distinct subsets could allow us to chunk off work and get more people involved if you see clean opportunities.

Integrate with r-fiddle.org

There's a great website called http://www.r-fiddle.org/ that lets you do quick interactions in R (similar to JS Fiddle).

We currently have a "copy to clipboard" option in the header of the Gallery which allows you to get a curl request which returns the data shown in the UI.

Please add another button that opens a new browser tab and provides some starter code in R that calls our API and returns a data.table.

This could be a great way for an R user to be working with OpenHouse data within seconds of visiting our site.

Suggest a Javascript unit test framework

Presently we have a home grown method of doing unit tests for the front end. It's more of a quasi-unit test. The approach we have is useful and relatively painless, but it lacks a certain formality that you typically have with unit tests.

Our process today:

Create two javascript files. For example: localStorageIO.js and localStorageIO_test.js. Code goes in the first, tests in the second.

Ok, so how do these tests get run? Add them to tests.htm, which calls each one and reports the results.

Are there better frameworks that could also do things like code coverage and ru-running broken tests, etc?

Research S3 auto-expire

Our crawling system uses S3 for storage

S3 offers some functionality to have objects expire. Our code sets expiration times for all objects, but it enforces these manually.

We are using the Python boto library do interact with S3.

Please research how to use S3's native expiration functionality. Specifically: how can we use boto to set an expiration and have AWS do the deletions for us?

This may help get you started?

https://aws.amazon.com/blogs/aws/amazon-s3-object-expiration/

Randomize API response with a time based seed

Currently, the API returns results in an arbitrary order. This can introduce a bias in results. We should take the minute of the hour and use it to seed a random number generator. We should then use that seed to randomize. This way, continuously refreshing won't make every result random (only once per minute should anything change)

Responsible design / mobile friendly research

What do we need to do to get the site to be mobile friendly? Whoever takes up this task should review the codebase and come back with suggestions. It's not required that you implement them (although you are certainly welcome to!), just share with the group what you learned so we can create tasks to implement your plan.

Need code optimization in map updates

The function updateMapAfterViewportChange() in code.js can be very slow. If you zoom out to see the entire US, this takes almost a full 1 second to load. While this might sound fast, it makes the user interface feel VERY clunky.

The problem probably lies in the way we update the map. Presently, regardless of how many markers are on the map, we remove all the markers, and then add all the new ones. I suspect if you only add the markers not already on the map, that would solve it.

Repo clean up and restructure

The Gallery component has evolved a lot and has some legacy baggage. Let's get ride of the "contingency-plots" folder and migrate the React.js code base to the top level of the repo.

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.