Giter Club home page Giter Club logo

public-meetings's People

Contributors

aaronarduino avatar doshitan avatar infernocloud avatar kevinfalting avatar mearnest avatar mottie avatar sethetter avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

public-meetings's Issues

Clean out unused code

There's quite a few files and chunks of code that aren't being utilized right now, most of which came from generator commands I believe. Let's clean that all out so we have a nicer place to start improving / building from.

Feedback

Where should the public meetings website go from here? We have the beginnings of a website, with some meeting content. What would make this truly useful? What are your thoughts?

Tags

A user of the site needs to be able to navigate by clicking clusters/categories/topics that she is interested in.

A recurring meeting could have multiple categories. The most effective approach that I would see to this would be a tagging system. The tags could be assigned either from the scraper looking for works in the meeting description/title or assigned to that feed of meetings. I'm not sure we would want the ability for users to suggest meeting tags initially, but maybe eventually.

Then from the front page of events, I would expect a sidebar that I could use to meetings filter by tag.
And from a meeting page if I click on a tag, I would expect to be taken to a page with all of the meetings that relate to this tag.

Typo (I think?)

Hello Admin1! should be just Hello Admin! no 1 in:

web/templates/coherence/layout/app.html.eex

Figure out data hierarchy for displaying in UI

For example, right now we have "Meeting Types" that each have a type property. The value of this property is something like council or boe (board of education). But the MeetingType title prop is the specific meeting withing the more broad type property (there are several boe meeting types).

The question is -- What's the top level that we display to users? It seems like the type column on the MeetingType is what we need, but we don't have a friendly display for that right now (they're all just lowercase, and some are acronyms). Having descriptions for these as well would be good.

The only thing I can really come up with is creating a Category model to hold this, and give it a slug property to associate with the type column on MeetingTypes.

@Mearnest @aaronarduino thoughts?

Function for inserting date info into agenda url

Some of the urls have placeholders for the year, month, date. When an ical event is generated, or a meeting event is shown in full detail to the user, the information needs to be inserted into agenda.

Example:

http://www.wichita.gov/Government/Council/Agendas/{0}-{1}-{2}%20Electronic%20City%20Council%20Agenda%20Packet.pdf

The {0}, {1}, and {2} need to be replaced by the meeting_type year, month, and day.

This just needs to be a function that can be called by the ical converter (to_ics) or the meeting controller show function. Not all urls will have those tokens, so it needs to be able to handle that.

web/models/meeting.ex
web/controllers\meeting_controller.ex

Generate ical download

The meeting list has a link for downloading an ical event. This needs to be implemented. In the meeting model, there is a to_ics function placeholder. The relevant information for an ical event needs to be included and converted into a byte string.

The prototype-web-scraping branch shows how Python does this. It does use an ical library, but you can see how the information is added starting on line 61:

https://github.com/openwichita/public-meetings/blob/prototype-web-scraping/Meeting.py

And in the files is a generated ics file:

https://github.com/openwichita/public-meetings/blob/prototype-web-scraping/files/data_science_meeting_5_1_2017.ics

web/models/meeting.ex
web/templates/meeting/index.html.eex

Determine data model for events

How do we store these? What does the model look like? What are the requirements, considering we want to display them on a website, and also serve them in an iCal feed?

Clean Dates & Times

Across the site show dates as June 31, 2017
Across the site show times as 4:00 PM
Show duration converted into Hours 0:15, 0:30, 0:45, 1:00, 1:27, 10:01, etc

Email subscription scraper

A really super awesome feature would be a scraper that generates meeting events from meeting information in emails. These emails would come from email subscriptions to different board meetings and what not.

Unfortunately, the information is likely to be inside a word or pdf document.

The motivation for this is to be able to keep the website up to date.

Verify accuracy of current srapers

Non-technical friendly!

Verify the dates that are generated by the scraper for the meetings they are scraping.

The different meeting types are listed here, and the corresponding dates for the meetings are here. The dates correspond to the types by matching tid to the type's id.

If you see any issues, say so here! If it looks good, also say so here!

To scrape or not to scrape

The Board of Education PDF schedule uses color with a visual calendar to denote meeting dates. This makes scraping it very challenging. You have to extract all the relevant style in addition to the text and it's location in the document. I was not able to do this despite trying several PDF scraping libraries and two converters (to html or xml), one of them written in C.

There is also a web calendar, but from just inspecting it, it also looks quite challenging to scrape.

Which brings up the issue of whether scraping online schedules is worth the effort. Even with adapting someone else's scraping code, you have to adjust the code for every single unique PDF and web page. They all present different challenges.

For something like a meetings schedule, which comes out once a year, perhaps it would be easier to just use data entry, and then perhaps ask the city to publish a friendlier data format in the future.

Design of other pages

The meetings page has been designed, and the front page has some layout, but the rest of the site is needing attention.

Admin section

Right now, we have some of the CRUD links listed on the front page. Should there be an admin section for just logged in users?

Add to web based calendars

Currently, there is the add button that downloads a .ics file. Very standard & really solves that main problem.
But we could get more engagement from having additional buttons that directly add the event to my web-based Google Calendar or Outlook Calendar

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.