Skip to content

openva/richmondsunlight.com

Repository files navigation

Richmond Sunlight

GitHub Build

This is the front-end of the website. See also: rs-machine, the collection of scrapers and parsers that provide the site's third-party data, rs-api, the API that powers (some of) the website, and rs-video-processor, the on-demand legislative-video-processing system.

History

Richmond Sunlight started in 2005 as a little RSS-based bill tracker, updating every few hours. In 2006 it was built out as Richmond Sunlight, launching publicly in January of 2007. It's remained a hobby site ever since. The code base hasn’t been overhauled in all that time, and it shows — the site’s tech stack shows the growth rings of being developed over the course of many years. But it continues to function, and has been modernized in some ways, e.g. by adding a CI/CD pipeline, moving to SOA, etc.

Branches

Local development

The site can be run locally, in Docker:

  1. Install Docker.
  2. Clone this repository. Make sure you’re using the branch that you want.
  3. Run ./docker-run.sh.
  4. In your browser, open http://localhost:8000.

When you are done, run ./docker-stop.sh (or quit Docker).

Architecture

flowchart LR
  subgraph AWS
    CD[CodeDeploy]
    MACH["Machine (rs-machine)"]
    RDS[(RDS)]
    SQS[(SQS)]
    VP[Video Processor]
    S3[(Video S3)]
    FE["Front-End (this site)"]
    API["API (rs-api)"]
    CF[CloudFront]
  end

  Users["Users/Browsers"]

  CD --> MACH
  CD --> FE
  CD --> API
  CD --> VP

  MACH -->|reads/writes| RDS
  MACH -->|enqueue videos| SQS
  MACH -->|upload clips| S3

  SQS --> VP
  VP -->|transcoded video| S3

  FE <-->|cached| CF
  CF <-->|serves| Users

  FE <-->|app data| RDS
  FE <-->|calls| API
  API <-->|data| RDS
Loading

Releases

No releases published

Packages

No packages published

Contributors 6