Giter Site home page Giter Site logo

fecgov / openfec Goto Github PK

View Code? Open in Web Editor NEW
480.0 480.0 106.0 417.52 MB

The first RESTful API for the Federal Election Commission. We're aiming to make campaign finance more accessible for journalists, academics, developers, and other transparency seekers.

Home Page: https://api.open.fec.gov/developers

License: Other

PLpgSQL 15.22% Shell 0.05% Python 58.28% HTML 0.22% JavaScript 0.29% CSS 25.94% Procfile 0.01%

openfec's People

Contributors

adborden avatar anthonygarvan avatar apburnes avatar arowla avatar catherinedevlin avatar ccostino avatar cnlucas avatar dzhang-fec avatar emileighoutlaw avatar fec-jli avatar fecjjeng avatar hcaofec avatar jason-upchurch avatar jmcarp avatar johnnyporkchops avatar jonellaculmer avatar jontours avatar jwchumley avatar lbeaufort avatar lindsayyoung avatar micahsaul avatar patphongs avatar paulclark2 avatar pkfec avatar qqss88 avatar rfultz avatar rjayasekera avatar theresaanna avatar tmpayton avatar xtine 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  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  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

openfec's Issues

keep webservices up

Right now, both the API server and HTSQL run in tmux, which contains no built-in restarting if they crash. Should set them up to restart when necessary, probably with a process control server like Supervisor.

Research Compliance Docs

  • Be able to easily explain what the docs mean
  • Understand the flow of where compliance docs "live" in relation to each other
  • Understand where they live on the site

Default to 2012 election cycle

Whenever a search is submitted or you browse candidates, see the election cycle filter active by default and set to 2012.

Dependency:
#25

Build UI for filters

Write HTML and CSS for candidate UI filters.

Go into browse view or choose candidate from search disambiguation, see filters reasonably close to how they appear in Noah's mocks.

Dependency:
#25

Make search bar perform API request

Type a query into the search bar, hit enter or click submit button, see search disambiguation page with candidates results.

Dependency:
Candidate endpoint

Build filter functionality

Be able to:
Select a filter, see filter field show as active, add box with filter + an x to deactivate filter, results table updates with new data.
Click x on a filter, filter form becomes deactivated, filter box goes away, results tables updates with new data.

Dependency:
Determine how application will know what select form field values should be present. Build solution or determine list of hard coded values as appropriate.
@rjmajma ^^

API endpoint for candidate list

Candidate names with basic info and FEC_ids would be sufficent. Then, if a user clicked on a candidate it could be simple query by fec_id to get that candidate's results.

There can be other ways to implement this. Feel free to discuss.

This should support issue #35

Render candidates results table

Click through to candidates via disambiguation view or by choosing to browse all candidates, see table of candidate data.

Dependency:
Candidate endpoint
Decision on what columns/fields are shown for candidate results.

Public API documentation

Before deploying our API into the public, or shortly thereafter, we should write good documentation around it.

Begin live database status document

I'd like to create a live document (an IPython Notebook, specifically) to report on various aspects of the database architecture and status, so that these things can be re-checked and verified easily and at will. Obvious items to include:

  • security stance
  • database performance
  • database configuration

In the future this could be expanded into a sort of test suite for the architecture - status checks can be built so that they throw errors when undesirable results are found, and the whole thing can be run automatically & notify us of failures.

By making it an IPython notebook, the executable parts (what is the status? should that raise an alarm?) can be mixed with the documentation (why is that a problem? what should we do?)

API side pagination

Makes sense to bake this in. We were going to default to 20 results per page but make it flexible, though some max record celling would be needed eventually.

Theresa has graciously volunteered for this.

Add version to API urls

As we near deploying our API into the public, we should add the version into the URL so that we won't cause regressions in users' applications if we make significant changes.

Implement desired filters for /candidate

/candidate queries should support these filters:

Filter by Election cycle
Filter by political party
Filter by state
Filter by district
Filter by office sought

Style candidate table

Go into browse view or click in from search, see a results table that looks reasonably similar to Noah's mocks.

Dependency:
#27

Implement pagination in UI

Viewing a results table of candidates, be presented with prev, next links to see more candidate rows. See total number of results across pages and what numbers of rows you're currently looking at.

Dependency:
Candidate endpoint with pagination

Candidate Pages - Research and Wireframes

  • By the end of the sprint we want a first draft of wireframes for the candidate pages.

Candidate pages are reached from a search results page (or eventually directly from a search).

Questions to answer:

Database performance tuning

Goal: Satisfying speed when end-users query via the app or API
Criteria: The following queries against production complete within the specified desired times:
(TBD)
Steps:

  • Determine criteria queries
  • Create script to time the criteria queries
  • Much DBA black magic which I am forbidden to reveal until the desired time is achieved.

Dependencies: None (except getting the criteria queries)
User need: Coddle short postmodern attention spans

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.