Giter Site home page Giter Site logo

openaustralia / planningalerts Goto Github PK

View Code? Open in Web Editor NEW
88.0 20.0 50.0 31.41 MB

Find out and have your say about what's being built and knocked down in your area.

Home Page: https://www.planningalerts.org.au

License: Other

Ruby 65.86% JavaScript 2.62% HTML 18.77% Shell 0.04% SCSS 5.04% Haml 6.13% Sass 1.20% CSS 0.19% Dockerfile 0.16%
civic-tech

planningalerts's People

Contributors

0x6c69676874 avatar andrewharvey avatar andrewperry avatar clockwerx avatar crowbot avatar davwood avatar dependabot[bot] avatar dylanfm avatar equivalentideas avatar henare avatar hisayohorie avatar jamezpolley avatar jwells avatar kat avatar lovemydata avatar mindsocket avatar mlandauer avatar o-sam-o avatar thechirpywitch avatar tuppa avatar

Stargazers

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

Watchers

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

planningalerts's Issues

add relevant link to About page for "knocked down" (PA-46)

unfinished business from PA-4

Find example of Australian "knocked down" site to add to PlanningAlerts.com About.html


Issue details imported from Jira:

Detail Value
Assignee Unassigned
Reporter Kat Szuminska
Created 2009-12-07 22:42:17
Updated 2009-12-28 10:15:59

Imported Jira Comments

Matthew Landauer - 2009-12-19 21:25:32

I think this is fixed now

Get API working (PA-15)

Issue details imported from Jira:

Detail Value
Assignee Unassigned
Reporter Matthew Landauer
Created 2009-11-21 03:11:55
Updated 2009-12-28 10:15:58

Imported Jira Comments

Matthew Landauer - 2009-12-05 23:37:20

I'd call the API working now

Script for updating planning authorities in the db does not preserve authority_id (PA-43)

Issue details imported from Jira:

Detail Value
Assignee Unassigned
Reporter Matthew Landauer
Created 2009-12-06 22:30:12
Updated 2009-12-28 10:16:00

Imported Jira Comments

Matthew Landauer - 2009-12-06 22:30:50

First step should be to add some foreign key constraints to the db so that at least the offending script won't run

Matthew Landauer - 2009-12-06 22:35:21

Since the update script will probably depend on the short name being unique we should probably add a constraint to the db for that to be true

Fill out "date received" field for Brisbane City Council (PA-16)

Issue details imported from Jira:

Detail Value
Assignee Unassigned
Reporter Matthew Landauer
Created 2009-11-21 03:24:21
Updated 2009-11-23 04:48:10

Imported Jira Comments

Matthew Landauer - 2009-11-23 04:47:59

My fixing of things seems to be ahead of updating the bugs in the bug tracker. Sorry. Anyway, it's fixed.

Add a FAQ for "what is a planning authority?" (PA-47)

Issue details imported from Jira:

Detail Value
Assignee Kat Szuminska
Reporter Matthew Landauer
Created 2009-12-07 22:52:32
Updated 2009-12-28 10:15:55

Imported Jira Comments

Matthew Landauer - 2009-12-07 22:54:32

And for the first mention on each page of "planning authority" add a link to this FAQ explaining what a planning authority is.

Matthew Landauer - 2009-12-07 22:55:20

For the first mention of "planning authority" on each page add a link to this FAQ explaining what a planning authority is.

Matthew Landauer - 2009-12-07 22:56:26

Test comment

Kat Szuminska - 2009-12-17 00:24:02

What's a planning authority?
Your local planning authority is the part of government that
assesses planning and development applications. Depending on where you
live, this might be your local council or territory government.

Register domain name for planning alerts (PA-6)

What should the domain be?

planningalerts.org.au?

Please add ideas / thoughts for names to this ticket


Issue details imported from Jira:

Detail Value
Assignee Unassigned
Reporter Matthew Landauer
Created 2009-11-13 00:25:15
Updated 2009-12-28 10:16:02

Imported Jira Comments

Nathanael Boehm - 2009-11-14 02:47:59

I'd suggest "planning" is a little too broad to make it clear what the site is from the URL.

My thoughts (minus TLD)

devplanningalerts
councilplanningalerts
developmentapplications
developmentplans
futurework
futuredevelopment
planned-development
mychangingsuburb

Matthew Landauer - 2009-11-26 06:06:43

As Henare suggested - I've gone ahead and registered planningalerts.org.au just because that's the name that the Gov 2 Taskforce put in their blog post.

Matthew Landauer - 2009-11-30 20:24:42

I'm shunting this along to the "Second Private Release" because one domain is registered, though as commented, it's by no means the final name to be used.

@nat - thanks for the name suggestions!

Link and website name in geoRSS feeds are wrong (PA-38)

Issue details imported from Jira:

Detail Value
Assignee Unassigned
Reporter Matthew Landauer
Created 2009-12-05 00:01:36
Updated 2009-12-28 10:16:03

Imported Jira Comments

Matthew Landauer - 2009-12-19 21:21:55

Fixed a while ago

Take extra fudge factor into account in planning alerts size (PA-13)

Issue details imported from Jira:

Detail Value
Assignee Unassigned
Reporter Matthew Landauer
Created 2009-11-21 02:44:35
Updated 2010-04-06 07:09:14

Imported Jira Comments

Matthew Landauer - 2010-04-06 07:09:14

Personally, I don't think the extra fudge factor (in search area) is necessary.

Number of alerts doesn't appear to be getting updated (PA-24)

The number of alerts is displayed on the home page near the top


Issue details imported from Jira:

Detail Value
Assignee Unassigned
Reporter Matthew Landauer
Created 2009-11-21 07:25:15
Updated 2009-12-28 10:16:00

Imported Jira Comments

Matthew Landauer - 2009-12-04 04:34:06

Fixed with a couple of patches. Still need to add a couple of entries to the stats table for the test instance db. See the sql schema in the code for details.

Hook up parsers to web using generic infrastructure layer Rack (PA-7)

Issue details imported from Jira:

Detail Value
Assignee Unassigned
Reporter Matthew Landauer
Created 2009-11-17 23:09:11
Updated 2009-11-18 02:17:07

Imported Jira Comments

Matthew Landauer - 2009-11-17 23:13:17

Maybe use Sinatra instead which provides a little more abstraction on top of Rack but not so much that it gets in the way

When switching between the menu item "Signup" and "FAQs" the menu shifts a little to the right (PA-39)

Issue details imported from Jira:

Detail Value
Assignee Unassigned
Reporter Matthew Landauer
Created 2009-12-05 02:10:21
Updated 2010-04-12 13:37:37

Imported Jira Comments

Matthew Landauer - 2009-12-05 23:40:02

It's simply to do with the fact that one page ends up having a scrollbar on the right hand side and the other page doesn't. This is because the pages are different lengths and the left-right alignment is done by centering the text on the page width

Matthew Landauer - 2009-12-17 00:33:50

This seems to be a result of the centred layout - so reassigning this to look at after the public release

Matthew Landauer - 2010-04-12 13:37:37

Simply a consequence of one viewing having a scrollbar, the other not. So not going to do anything about this

Add cron job for running scrapers and mailer (PA-49)

Issue details imported from Jira:

Detail Value
Assignee Unassigned
Reporter Matthew Landauer
Created 2009-12-08 21:57:02
Updated 2009-12-28 10:16:00

Imported Jira Comments

Matthew Landauer - 2009-12-11 01:53:14

Should be done now.

Move chef deployment rake task to openaustralia-chef repository (PA-37)

This way we can then include the submodule openaustralia-chef (or whatever it should be sensibly called) into any project and then the deployment tools are readily accessible from any project.


Issue details imported from Jira:

Detail Value
Assignee Henare Degan
Reporter Matthew Landauer
Created 2009-12-02 00:28:10
Updated 2010-12-06 07:52:42

Imported Jira Comments

Henare Degan - 2010-12-06 07:52:42

We're not using Chef any more so closing.

Allow council parser to optionally attach geocoding information (PA-25)

This is to handle the situation where a council has already done the right thing and geocoded the addresses. This way, we won't have to do it again.


Issue details imported from Jira:

Detail Value
Assignee Unassigned
Reporter Matthew Landauer
Created 2009-11-21 20:47:48
Updated 2010-04-19 13:45:47

Imported Jira Comments

Matthew Landauer - 2009-12-18 01:01:31

So far I've only seen pre-geocoded information for Mosman Council.

Update text of website to make it relevant to Australia (PA-4)

Issue details imported from Jira:

Detail Value
Assignee Kat Szuminska
Reporter Matthew Landauer
Created 2009-11-12 03:48:42
Updated 2010-07-20 12:32:10

๐Ÿ“Ž Jira attachments: https://tickets.openaustraliafoundation.org.au/attachments/PA/PA-4


Imported Jira Comments

Kat Szuminska - 2009-11-30 02:13:29

where would you like me to put the amended wording?

Matthew Landauer - 2009-11-30 02:17:18

I would suggest taking the html for one of the pages, editing the text on that static page and then uploading it as an attachment to this ticket. How does that sound?

Kat Szuminska - 2009-12-07 03:01:06

first pass at updating text.

Kat Szuminska - 2009-12-07 20:16:27

updated PlanningAlerts.com About.html to include:

updated credits
+ me
+ original creators of the UK site.
+ taskforce funding

contact link amended

last thing pending
to find reference to local example of building knocked down being discussed after the event.

Kat Szuminska - 2009-12-08 01:08:07

link to http://www.flickr.com/photos/kentjohnson/3634555801/ added

Matthew Landauer - 2009-12-17 02:28:36

I'm going to call this done.

Kat Szuminska - 2010-07-20 12:32:10

upload information entry page has UK centric examples, eg. Woking as a placename. Zero tolerance as a policy

Display information about a local government authority via Freebase Topic Blocks

We've got URLs like
http://www.planningalerts.org.au/authorities/waverley/applications

... which show all of the applications.

Viewing an individual application renders a council name (ie http://www.planningalerts.org.au/applications/118573); but there's no way to see further metadata about a council.

Freebase contains structured information about many of these councils - ie: http://www.freebase.com/view/en/adelaide_hills_council

The simplest way to add in this kind of data on openaustralia would be to render a topic block
http://blog.freebase.com/2009/10/21/announcing-freebase-topicblocks/

In https://docs.google.com/spreadsheet/ccc?key=0AmvYMal8CGUsdG1tM0lEWUctR194eGN6bUh0VGFfc1E&hl=en_US#gid=0 there are a list of council names to freebase ids to census ids.

Luckily, freebase acts as a hub for identifiers about objects; so we get the links to wikipedia, dbpedia, or anything else that comes along.

Could we:

  1. Store a council entity that has one freebase id, census id, website & primary email
  2. Render freebase topic blocks or similar

I've tried to getting a planning-alerts-app environment set up to tinker with this; but without much luck so far.

Make git updates appear in tickets (PA-22)

Look at how the openaustralia stuff is setup


Issue details imported from Jira:

Detail Value
Assignee Henare Degan
Reporter Matthew Landauer
Created 2009-11-21 05:48:06
Updated 2009-12-23 11:27:34

Imported Jira Comments

Henare Degan - 2009-12-22 19:11:54

I did this.

Think of a cute example address to use (PA-33)

Ideally it would be something that is somehow relevant to planning applications, government or whatever and wouldn't infringe someone's privacy.


Issue details imported from Jira:

Detail Value
Assignee Kat Szuminska
Reporter Matthew Landauer
Created 2009-11-29 11:05:18
Updated 2009-12-28 10:15:56

Imported Jira Comments

Matthew Landauer - 2009-11-30 02:20:49

How about: 351 Pacific Hwy Coffs Harbour NSW 2450
It's the Big Banana!

Kat Szuminska - 2009-11-30 02:25:07

one of the pubs in Katoomba, the Carrington or Gearin, since the Blue Mountains is one of the first ones, and we live there.
RSLs or Bowling Clubs since they seem to be under threat.

Matthew Landauer - 2009-11-30 02:26:12

The address for one of the big construction firms or maybe demolition firms?

Kat Szuminska - 2009-11-30 02:27:04

on the other hand the big banana, or the big merino would be pretty good too. Gabe and Phil would be good sources of appropriate locations too

Rebuild list of local government areas sorted by population (PA-3)

Use this list to decide in which order to tackle the local government areas. Start with the highest population ones. That way we get the most bang for our buck, so to speak.


Issue details imported from Jira:

Detail Value
Assignee Unassigned
Reporter Matthew Landauer
Created 2009-11-12 03:48:14
Updated 2009-11-18 02:19:00

Imported Jira Comments

Matthew Landauer - 2009-11-18 02:18:46

This isn't actually necessary because we have the earlier created version stored as a Google doc. We do however need to open up the document so that we can start crowd-sourcing filling if of web addresses, etc...

Register planningalerts.org (PA-30)

And make it redirect to planningalerts.org.au


Issue details imported from Jira:

Detail Value
Assignee Unassigned
Reporter Matthew Landauer
Created 2009-11-26 06:07:10
Updated 2010-04-30 17:09:39

Imported Jira Comments

Matthew Landauer - 2009-11-30 02:14:30

Had a chat with Henare about this. We decided that the most important thing is that planningalerts.org isn't taken up by a completely unrelated website.

So, in the spirit of community it makes sense to suggest to the UK planning alerts people that they register planningalerts.org. If they don't want to then we'll pick it up.

Set up email address [email protected] (PA-32)

Issue details imported from Jira:

Detail Value
Assignee Unassigned
Reporter Matthew Landauer
Created 2009-11-29 05:36:53
Updated 2009-12-28 10:15:58

Imported Jira Comments

Matthew Landauer - 2009-12-17 00:48:02

Testing it right now...

Matthew Landauer - 2009-12-20 08:03:48

That seems to be working now

Change "search area size" given in geoRSS and preview URLs to distance in meters (PA-10)

This makes things a little more flexible. Also separates the UI definitions of sizes from the underlying application logic.

However, we should check that the area isn't so big that it would bring our system to a halt given the fact that we have a fairly naive point lookup scheme in the db.


Issue details imported from Jira:

Detail Value
Assignee Unassigned
Reporter Matthew Landauer
Created 2009-11-21 01:48:28
Updated 2009-12-28 10:16:02

Imported Jira Comments

Matthew Landauer - 2009-12-05 02:15:41

It's fixed. The 's', 'm' and 'l' are still used in the form for the creation of the alert

Come up with a database backup strategy (PA-27)

Issue details imported from Jira:

Detail Value
Assignee Henare Degan
Reporter Matthew Landauer
Created 2009-11-21 20:53:13
Updated 2010-10-07 11:58:29

Imported Jira Comments

Matthew Landauer - 2009-12-13 08:17:07

I'm tempted to use an approach similar to this: http://pastie.org/293699

But instead create a repository on the server (readable only by an admin) that can be pulled from on a regular basis.

Henare Degan - 2009-12-17 02:17:47

I think we've discussed it before but I like AutoMySQLBackup (http://sourceforge.net/projects/automysqlbackup/) - it does nice rotations of backups.

I'm not sure about storing backups in a git repo - wouldn't it get really big? (and do you need all that history?).

Matthew Landauer - 2009-12-17 02:27:29

Thanks for the recommendation. You probably have mentioned it before!

Using a git repository to store all the different versions of the database dumps has the advantage of potentially saving a lot of disk space. When you store a new version it only stores the difference to the last revision. As long as those are compact, the storage should be very efficient.

yes, the git repository can get large, just as the mysql dump can get large.

However, when we back up we can just pull the new revisions. So, individual backups will effectively be incremental and hopefully small.

I think it's worth trying. Heh, it might not work very well but it's probably worth a short, don't you think?

Henare Degan - 2009-12-17 08:01:44

Actually, that's a really good point, SQL backups are text so they should diff well and if it gets too large we can just start another repo - git ho, I say!

Matthew Landauer - 2009-12-28 11:01:05

It looks like git has some serious performance issues with large files and the database dump from the openaustralia database is definitely large.

Hmmm... Doesn't look like this is going to be a good general solution

Matthew Landauer - 2010-04-21 10:46:23

We do have full database backups of the planningalerts database in place, basically by piggy backing off of the openaustralia.org backups.

However, the setup is far from ideal. It's one huge backup with several snapshots that are rotated. It takes up a lot of space on disk.

Henare Degan - 2010-10-07 11:58:29

PlanningAlerts' databases are now backed up using automysqlbackup on our new server.

Unsubscribing isn't working yet (PA-11)

Yeah, I know. Very descriptive bug report.


Issue details imported from Jira:

Detail Value
Assignee Unassigned
Reporter Matthew Landauer
Created 2009-11-21 02:39:05
Updated 2009-11-21 05:53:34

Imported Jira Comments

Matthew Landauer - 2009-11-21 05:53:28

It is now.

Only geocode new applications (PA-26)

If the applications are read in multiple times, as happens regularly, the applications are currently geocoded on their way in, even if the application is already in the database.

An optimisation, which would massively reduce the number of geocoding calls, would be to only geocode new applications. This could be done for instance when the application is saved.


Issue details imported from Jira:

Detail Value
Assignee Unassigned
Reporter Matthew Landauer
Created 2009-11-21 20:51:52
Updated 2009-12-28 10:16:01

Imported Jira Comments

Matthew Landauer - 2009-12-02 04:14:30

The problem originates when scrapers return the same set of applications on multiple runs of the scraper for different search dates.

If the search date can be used to reduce the number of applications returned (by restricting it to applications received on that date) then all is good. So, if most scrapers can do this then this particular issue isn't that bad.

Add Google Analytics (PA-40)

Issue details imported from Jira:

Detail Value
Assignee Unassigned
Reporter Matthew Landauer
Created 2009-12-05 10:39:23
Updated 2009-12-28 10:15:59

Imported Jira Comments

Matthew Landauer - 2009-12-06 00:35:32

Add google analytics with a key which is valid for test.planningalerts.org.au

Group list of planning authorities by state (PA-42)

This involves adding a new field to the planning authority db


Issue details imported from Jira:

Detail Value
Assignee Matthew Landauer
Reporter Matthew Landauer
Created 2009-12-06 21:46:05
Updated 2010-04-24 17:38:34

update all links to be relevant to Australian version of code (PA-48)

update links on http://test.planningalerts.org.au/apihowto.php
under "API documentation" which currently read http://www.planningalerts.com/ to http://www.planningalerts.org.au/
I assume the text following is the same. Please review and amend if necessary. There are 4 instances of this address on the page.


Issue details imported from Jira:

Detail Value
Assignee Unassigned
Reporter Kat Szuminska
Created 2009-12-08 04:38:04
Updated 2009-12-28 10:16:00

Imported Jira Comments

Matthew Landauer - 2009-12-11 01:52:50

I've updated the URLs on the API documentation page. I'm assuming that's all I need to do to fix this bug, right? If not, just reopen the ticket and tell me what to do!

Currently scraper root is at http://test.openaustralia.org/scrapers/ with the trailing slash (PA-36)

If you don't include the trailing slash you get a 404. Fix this. I don't want to have to remember the trailing slash.

Is it just a case of fixing up the Sinatra routine?


Issue details imported from Jira:

Detail Value
Assignee Unassigned
Reporter Matthew Landauer
Created 2009-12-01 04:21:58
Updated 2010-04-21 10:43:04

Imported Jira Comments

Matthew Landauer - 2010-04-21 10:43:04

Doesn't really seem particularly important to me. The sinatra app should never really be accessed by normal users anyway.

Make scrapers accept a date range (PA-9)

For the systems that support searches with date ranges, we could do a single pass per council rather than having to do several.

This would obviously stress everyone less


Issue details imported from Jira:

Detail Value
Assignee Unassigned
Reporter Matthew Landauer
Created 2009-11-19 01:53:09
Updated 2012-09-17 16:29:45

Find some good examples of buildings (or whatever really) being put up or knocked down that have generated public outcry (PA-45)

We can then use this as a link from this page http://test.planningalerts.org.au/about.php


Issue details imported from Jira:

Detail Value
Assignee Unassigned
Reporter Matthew Landauer
Created 2009-12-07 03:20:45
Updated 2009-12-28 10:16:00

Imported Jira Comments

Matthew Landauer - 2009-12-11 01:45:56

I've added a link on the about page to http://www.flickr.com/photos/kentjohnson/3634555801/

Henare Degan - 2009-12-17 02:30:25

There's a whole web site devoted to this site and some good pics: http://www.kentbreweryworkers.com/

Also this: http://alastairwilson.wordpress.com/2008/12/29/photo-essay-kent-brewery/

SPEAR (Streamlined Planning through Electronic Applications and Referrals) for Victoria (PA-28)

SPEAR contains information about subdivision applications. Sounds appropriate for it to be included.

http://www.landexchange.vic.gov.au/spear/index.html


Issue details imported from Jira:

Detail Value
Assignee Unassigned
Reporter Matthew Landauer
Created 2009-11-23 00:21:59
Updated 2009-12-28 10:16:00

Imported Jira Comments

Matthew Landauer - 2009-11-23 02:33:04

According to page 33 of the book "Statutory Planning in Victoria" a "Certification of a Plan" happens after a planning permit has been issued. It is an administrative issue, rather than an exercise of discretion.

http://books.google.com.au/books?id=weVNnRPAHgsC&pg=PA33&lpg=PA33&dq="certification+of+a+plan"+victoria&source=bl&ots=m-Dm2gpBBj&sig=bzK4KQQaHI_RGHpir673cF58m_g&hl=en&ei=FQEKS9_kAYeEswO54KDBCQ&sa=X&oi=book_result&ct=result&resnum=1&ved=0CAoQ6AEwAA#v=onepage&q=&f=false

So, it might be sensible to exclude these from the results returned by this scraper. As, a previous planning permit will already have gone through and it's at the stage of an application for a planning permit that a member of the public can comment on the application.

For link to development application for Brisbane Council the "I agree" button stops the link from working (PA-19)

If you click on a link that points directly to a planning application and you haven't agreed to the terms and conditions before, it redirects to a page asking for confirmation. After hitting "I agree" it doesn't redirect to the originally indented page. So, in other words, you have to reclick on the original link to see the page you want to go to.

What a pain!

Is there some way we can explain this somewhere to people?


Issue details imported from Jira:

Detail Value
Assignee Unassigned
Reporter Matthew Landauer
Created 2009-11-21 03:32:54
Updated 2010-04-23 07:45:38

Imported Jira Comments

Matthew Landauer - 2010-04-23 07:45:38

Added a new ticket PA-161 which is currently the only solution - add a bit of documentation to explain to people what's going on.

Ultimately the councils need to sort out their websites so that DAs have persistent URLs which work even when there are redirects to some annoying confirmation page.

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.