GithubHelp home page GithubHelp logo

danmunz / counselly Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 2.0 833 KB

A little prototype of how we might use HUD's housing counselor data (http://data.hud.gov/housing_counseling.html) to build a simple little mapping app.

Home Page: http://danmunz.github.io/counselly/

JavaScript 100.00%

counselly's People

Contributors

danmunz avatar mistergone avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

gboone mistergone

counselly's Issues

Correctly style the chosen multiselects

These look really funky:

  • Need to inherit the right font from the rest of the damn thing
  • The placeholder text doesn't actually extend the full width of the dropdown

Create a minimum default number of counselors

The behavior should be: After locating a user, the tool provides the 10 (or however many we require) closest counseling agencies, and does this more by filter.

Questions for @rachelross89:

  • Should filtering by radius be a secondary thing?
  • Is there some threshold where we just say, "sorry, there aren't 10 counselors like this within 1000 miles"? How far is too far to be useful?

Clear map markers when search results change

When a user re-filters in a way that changes search results:

Currently, a new set of pins drops on the map, but the old set just stays there, looking useless.

Ideally, the set of result pins would refresh every time a user re-filters. But the original location pin would remain in place. Gmaps seems surprisingly bad at letting you easily clear markers, and really bad at only letting you clear some markers.

Add data dictionary for services and languages

While they're what's in the JSON that HUD will provide, telling a user that a counseling agency knows about "HIC" and speaks "SPA" is pretty useless. We need a data dictionary to translate these into human-readable values:

  • In the selection dropdowns
  • In results (list, map)

I'm calling this a bug, because honestly.

Better page scrolling behavior

Currently, this is handled by setting

    to scroll on overflow, but a cooler solution would be to let that get as long as it likes, and just stick the map to the top of the viewport as you scroll down. I've tried a few OOTB jquery libraries for this, and position:sticky is so new it's not even in http://caniuse.com/#search=sticky. There must be a better way!

Make it stateful

You should be able to start over without hitting F5. The back button should work. Etc.

Radius preview

You should really be able to preview how many counselors are in your radius before moving onto step 3. No point filtering a list full of nothing.

Don't link to assets using raw.github.com

My reasoning for this is that files from this address get sent with a plain/text header which can cause loading issues like the ones seen in chrome:

Refused to execute script from 'https://raw.github.com/HPNeo/gmaps/master/gmaps.js' because its MIME type ('text/plain') is not executable, and strict MIME type checking is enabled. danmunz.github.io/:1

Refused to execute script from 'https://raw.github.com/datadesk/jquery-geocodify/master/jquery.geocodify.js' because its MIME type ('text/plain') is not executable, and strict MIME type checking is enabled. danmunz.github.io/:1

Refused to execute script from 'https://raw.github.com/documentcloud/underscore/master/underscore.js' because its MIME type ('text/plain') is not executable, and strict MIME type checking is enabled.

Cooler pin hover behavior

When you hover over a pin it highlights the listing with a background-color change. Which is cool, I guess? But it could be better/more useful.

Add title text to language flag icons

These need title text since it's not entirely clear what they mean, especially the ASL one. Ideally, the Spanish flag would have title text in Spanish.

Better mobile experience

While the site "works" pretty well on mobile and there's almost no fixed-width stuff in there, the experience is poor and should be re-thought for a mobile version.

Freshness date

Is it possible to get, maybe from HUD, a freshness date for various entries? (Last updated X/Y/Z.)

Better UI for radius adjustment

The current UI for entering a radius is a text input box. This is bad because:

  • It deprives users of a visual sense of adjusting distance
  • Inputs don't really send awesome events; onkeyup refreshes every time the user presses a key while focused on the box, including backspacing, the up arrow (which does nothing), or just re-focusing on the browser window

One suggestion would be to use a slider-type deal to do this. The HTML5 range input element seems pretty slick (http://tutorialzine.com/2011/12/what-you-need-to-know-html5-range-input/), but has only-okay support (http://caniuse.com/#search=range).

Linking to non-existent assets

In index.html there are a few scripts being called that do not exist, for example:

<script src="js/libs/modernizr-2.5.3.min.js"></script>
<script src="js/plugins.js"></script>
<script src="js/script.js"></script>

There is no js folder or assets that match the above, can this be deleted from the markup?

Distance ranges seem off

For example, start with "Chicago, IL" as location and set your search radius to 1mi. It finds a result that's actually 1.4mi away. I'm not sure if this is because of how I do rounding, converting from miles to meters and back, or both, but in the words of @rosskarchner, it needs fixed.

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.