Giter Club home page Giter Club logo

city-of-bloomington / onboard Goto Github PK

View Code? Open in Web Editor NEW
16.0 13.0 4.0 5.83 MB

An extensible system to keep track of boards & commissions details, the people appointed to those groups, any legislation they write, and the voting records of each committee member.

Home Page: https://bloomington.in.gov/onboard

License: GNU Affero General Public License v3.0

PHP 96.81% Shell 0.53% JavaScript 0.52% HTML 0.21% Makefile 0.18% SCSS 1.21% Jinja 0.55%
php commission municipalities legislation membership-management

onboard's Introduction

OnBoard

An extensible web application to keep track of boards & commissions details, the people appointed to those groups, any legislation they write, and the voting records of each committee member.

The City of Bloomington uses this application to track information about our boards & commissions. To get a feel for this system, you can view our instance here:

https://bloomington.in.gov/onboard

OnBoard is open source and released under the terms of the GNU Affero Public License.

Installation

We use the same configuration for our PHP applications. To make sure the documentation stays up to date, we maintain it separately. It is available here:

https://github.com/City-of-Bloomington/blossom/wiki

Additional Requirements

This application also uses LibreOffice to convert files to PDF. You will need to install the headless version of LibreOffice Writer. For Ubuntu systems this is

apt-get install libreoffice-common libreoffice-writer

Make sure Apache has permission to write into the SITE_HOME directory. With some older versions of LibreOffice, I also had to give Apache ownership of that directory.

Drupal

We also have a drupal module for pulling data from our OnBoard service and integrating it with other content about boards and commissions that is part of our public website. This drupal module is also available on GitHub here:

https://github.com/City-of-Bloomington/drupal-module-onboard

onboard's People

Contributors

charlesbrandt avatar hiesterd avatar inghamn avatar

Stargazers

 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

onboard's Issues

Add Statute Reference URL

The statute reference right now is only plain text. It is meant to be a human readable description of a place in the municpal code.

We would also like to link directly to the relevant section on the municipal code website. We probably need a seperate field for the Statute URL.

Changing committee type should be admin-only

Changing committee type in a data entry error situation requires some cleanup work in the database.

Changing the type in the situation of a change in charter has different things that should be done with the existing terms.

Because of these two cases, it's probably best, for now, if we limit the changing of committee type to Administrators only. I'm more comfortable deferring writing code to handle all the possible eventualities. I think we can expect the Admin to know what cleanup they want to do for each situtation.

Pull all text into the language file

I got hasty and took shortcuts while building the application. Not all the text is inside the language file, and cannot be translated.

Sometime, I need to spend some time moving all the rest of the text into the .po file

Reappoint action for currently filled seat

If a seat is currently appointed, there should still be an option to reappoint the current member for that seat.

Any time reappoint is available, clicking reappoint should take you to a new page to confirm the reappointment, rather than automatically performing the action.

If a reappointment has already been configured for the next term, the confirmation page should inform the user of this condition (same route as reappointment confirmation page). If the user is an admin, there should be a link to edit the seat details from this message page. If the user is a staff account, inform them that changes to this configuration must be requested from an administrator.

Add support for alternates

It would be nice if seats or terms could declare other people as alternates or proxies.

BZA has alternates. Council has one alternate for one council appointee.
Mayor has one (or more) alternates for multiple appointees.

CKAN integration

application needs to have feeds capable of being read by CKAN for

  • current vacancies and
  • full commission memberships
  • actions/votes

Drupal integration

Drupal is going to be reaching out to this application to display any and all information related to boards and commissions.

We need to create feeds for the information that Drupal desires.

Delete seat requirements feature

While this seemed like a good idea at the start, in practice it gets out of control, and doesn't offer much. It turns out to be insanely hard to try and codify all the detailed, special rules for seats.

Since we are already linking each committee to the establishment definition in the municipal code, I think we can rely on that to describe requirements for membership in commissions.

We should just delete the requirements feature from the system. The system will be simpler and better for it.

Seats count on homepage is off

The seats number shown in the list is not matching what's displayed when you view the committee.

See the MPO Citizens Advisory Committee, for example.

Update date fields

At a minimum the date fields should show a placeholder of the format expected.

I like the option of using . Firefox support isn't there yet, but it looks like there is momentum in that direction:
https://bugzilla.mozilla.org/show_bug.cgi?id=825294

If the date input type falls back to a standard input with placeholder text, that should be viable and adapt well to browser updates.

This reference gives support for using 3 separate text fields:
https://designnotes.blog.gov.uk/2013/12/05/asking-for-a-date-of-birth/

The last option would be to use a javascript polyfill to get calendar functionality.

I know that this discussion has come up on other projects, so hopefully this is a chance to document the decisions we make, or updates to best practices.

Implement a carryover mechanism

Currently, when a board member's term expires they will no longer be returned in results. Ideally, if no one else has been assigned to that position, the original person would be shown in the "Carryover" period.

Allow for disabling legislation and voting

Ability to track board/commission activity and votes needs to be a setting that can be enabled/disabled for individual boards/commissions and enabled/disabled for the entire system.

Generate CSV output of current state

It should be possible to export a CSV file containing:

  • current vacancies and
  • full commission memberships

The output for the full commission memberships should include:
Board Name,Seat Name / Type,Appointed By,Person,Current Term Dates

This functionality should be available to everyone.
This functionality may satisfy issue #5

Add honorific field

We have several people in seats that want Dr. or Mrs. in front of their name.

We should add a seperate field for honorific, otherwise, it's getting added into the firstname field, which makes it harder to search for people.

Committees should be seated or open

Seated committees are how committees work right now. In order to have membership, you have to create a seat with which to associate member terms.

We want to allow for open committees as well.
Open committees will not require seats to be created. Members can just serve terms on the committee without the extra seat requirements.

Term buttons for Current Members view

When you're logged in and looking at the members of a board, when a vacancy is displayed, add a link to add a person to it.

I realize this will bring up the problem of whether or not this person exists yet. Can we use some of the same UI techniques for entering a case in uReport when given the choice of adding a new person or choosing an existing one?

Change date formed to year only

We do not have exact dates for hardly any of these. It is sufficient to know the year the committee was created.

We should change the date formed to be year only.

Drop Synopsis

I cannot remember why we ever put the synopsis field in. It would have the same information as the description. We should just drop this field.

Reports

We need a few standard reports for board membership... sex, race, duplicate people, people serving on multiple boards, and board vacancies.

Icons should be the same as uReport

We're using font awesome for both apps. Let's keep things as consistent as we can by using the same add, edit, delete, search icons. This should be a default for any application we develop - to try to use the same skinning rules and graphics whenever possible.

Add Term should default to previous person.

When doing an "Add Term" we should be helpful to the city employee doing the data entry. We should autopopulate the person for the new term with the previous person who was filling that seat.

Update Cancel button

Currently the Cancel button is very close to the save button and is easy to accidentally hit and lose changes.

Additionally, the "rollback / reload" like icon is not the best choice for the action.

People

People table needs...

a field for personal URL (homepage, blog, facebook or twitter)

Also for race we should use these census categories and descriptions. Users may select more than one category. These are not mutually exclusive.

White – A person having origins in any of the original peoples of Europe, the Middle East, or North Africa.

Black or African American – A person having origins in any of the Black racial groups of Africa.

American Indian or Alaska Native – A person having origins in any of the original peoples of North and South America (including Central America) and who maintains tribal affiliation or community attachment.

Asian – A person having origins in any of the original peoples of the Far East, Southeast Asia, or the Indian subcontinent including, for example, Cambodia, China, India, Japan, Korea, Malaysia, Pakistan, the Philippine Islands, Thailand, and Vietnam.

Native Hawaiian or Other Pacific Islander – A person having origins in any of the original peoples of Hawaii, Guam, Samoa, or other Pacific Islands.

Hispanic or Latino Origin - People who classify themselves as “Mexican, Mexican Am., Chicano” or ”Puerto Rican” or “Cuban” – as well as “another Hispanic, Latino, or Spanish origin." People who identify their origin as Hispanic, Latino, or Spanish may be of any race.

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.