Giter Club home page Giter Club logo

pollfax's Introduction

Pollfax

Summary

This is an educational project for the continued learning of:

  • Data ingestion pipelines
  • ETL
  • Go(lang)

Architecture

Golang as the server language paired with sqlx package for interfacing with the database.

Data ingestion

The server starts a cron job to ingest data from api.congress.gov. The main data points to ingest are:

  • Current congress number. e.g 118th congress, etc.
  • Get first ~250 bills belonging to the 118th congress.
  • Persist the bills to a bills table.

Roadmap

The pollfax MVP will accomplish the following

  • Let users browse the most recently updated bills.
  • Users can up/downvote bills -> this is persisted in a database
  • Dashboard TBD

Database Schema Version Control

Create New Migration

  • run migrate create -ext sqlx -dir db/migrations -seq create_bills_sentiment_table

Commands

server/main

Starts the http server.

ingest/main

Runs the bills igestion command ad-hoc command.

pollfax's People

Contributors

esteban-gs avatar

Watchers

 avatar

pollfax's Issues

Implement bills upsert in pipeline

The existing bills import behavior was to delete all bills from the data base and add the new ones. This worked well with the previous bills schema, where the bill number and type were the composite primary keys. Now that this is no longer the case and the primary key is an auto generated int id column, the import behavior should be to upsert.

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.