openwichita / public-meetings Goto Github PK
View Code? Open in Web Editor NEWA service to show all upcoming available public meetings for the City of Wichita.
A service to show all upcoming available public meetings for the City of Wichita.
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.
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?
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.
Hello Admin1!
should be just Hello Admin!
no 1
in:
web/templates/coherence/layout/app.html.eex
When adding an individual ical meeting by clicking 'Add' button on the website, the following error occurs:
key :date not found in: %Meetings.MeetingType{meta:
http://public-meetings.website/meetings/21/?format=ics
I'm wondering if I did not pull & update properly.
It should accept a query parameter to filter by type.
Right now, Meeting incorporates the MeetingType and MeetingDate model information. If we want to display any extra fields, or include it in ical format, needs to be incorporated.
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?
web/templates/meeting_type/show.html.eex
web/controllers/meeting_type_controller.ex
Where can we find this information? Post info and links here!
Might not matter if the content is changed, but something will navigate to that.
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:
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
The most basic setup available is addict. There's also coherence which is much more full featured. Maybe one day we'll want all these things? Anyone have an opinion? @Mearnest @aaronarduino?
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:
web/models/meeting.ex
web/templates/meeting/index.html.eex
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?
..would be pretty cool.
Designers? Anyone?
Could even just be some bootstrap HTML pages that we can turn into phoenix templates.
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
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.
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!
You can add a date, but there is no field or drop down to associate it with the type of meeting it belongs to.
Same applies to adding an extra field.
HTML here -> web/templates/meeting_type/index.html.eex
CSS here -> web/static/app.css
Feel free to pull use bootstrap!
HTML here -> web/templates/meeting/index.html.eex
CSS here -> web/static/app.css
Feel free to pull use bootstrap!
If anyone likes writing tests and wants to learn how Elixir/Phoenix does it, or already knows.
http://www.phoenixframework.org/docs/introduction
test/models
Need to share relevant meeting info in the Twitter/Facebook/etc post that is created
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.
The meetings page has been designed, and the front page has some layout, but the rest of the site is needing attention.
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?
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
Right now it's showing everything, which begins on January 1st. Perhaps the list should begin at current day, with a way to access past meetings.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.