hasadna / Open-Knesset

A project aimed at making the Israeli Knesset more transparent. Python and Django based
http://oknesset.org/
BSD 3-Clause "New" or "Revised" License
106 stars 174 forks source link

Open Knesset project should be split to independent sub-projects #673

Open OriHoch opened 8 years ago

OriHoch commented 8 years ago

First such sub-project is Knesset Data

Each sub-project should be as independent from Open Knesset as possible.

Following are some suggested sub-projects:

  1. Knesset-Data - APIs and documentation to allow getting data from the Israeli Parliament (Knesset)
  2. Open-Knesset-Services - Open Knesset External Services (see #667)
  3. Open-Knesset-API - REST Interface
  4. Open-Knesset-DB - Database
  5. Open-Knesset-Web - Web App
alonisser commented 8 years ago

This means moving to some kind of micro services architecture

1.Not sure what is Open-Knesset-DB, there is no DB service.. It's where the Orm is, I guess API?

  1. Would it include moving Web - into a SPA using the API only? which would be a major rewrite - Not saying that's bad, I hate the current template based site, and rewriting can be a good experience for some js people wanting to come in, and also enforce a good api design, since missing things from the API would be missing in the Web app. Also would allow us to do much better testing. testing JSON api responses is far straighter then the current "template based testing"

Anyway that needs planning, and could (and would) be painful, stake holders should know that this is instead features, for some time at least.

I guess I would start with (Hackathon minded)

  1. Better api coverage for all functionality , especially reports
  2. starting to write the WebApp spa as a first consumer of the api
  3. Writing the UPDATE/CREATE api to allow third party services to update (that would reveal problems there)

Twitter:@alonisser https://twitter.com/alonisser LinkedIn Profile http://www.linkedin.com/in/alonisser Facebook https://www.facebook.com/alonisser _Tech blog:_4p-tech.co.il/blog _Personal Blog:_degeladom.wordpress.com Tel:972-54-6734469

On Fri, May 13, 2016 at 8:24 AM, Ori Hoch notifications@github.com wrote:

First such sub-project is Knesset Data https://github.com/hasadna/knesset-data

Each sub-project should be as independent from Open Knesset as possible.

Following are some suggested sub-projects:

  1. Knesset-Data https://github.com/hasadna/knesset-data - APIs and documentation to allow getting data from the Israeli Parliament (Knesset)
  2. Open-Knesset-Services https://github.com/hasadna/Open-Knesset-Services - Open Knesset External Services (see #667 https://github.com/hasadna/Open-Knesset/issues/667)
  3. Open-Knesset-API - REST Interface
  4. Open-Knesset-DB - Database
  5. Open-Knesset-Web - Web App

— You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub https://github.com/hasadna/Open-Knesset/issues/673

OriHoch commented 8 years ago

Open-Knesset-DB is the low-level database layer, this will contain the Django models, but with minimal logic.

Yes, I suppose an SPA using the API would be good, but it would be a big project. It's possible to do it gradually - one page / section at a time.

agree with your starting points for the hackathon

alonisser commented 8 years ago

How does api communicate with Open-Knesset-Db?

Twitter:@alonisser https://twitter.com/alonisser LinkedIn Profile http://www.linkedin.com/in/alonisser Facebook https://www.facebook.com/alonisser _Tech blog:_4p-tech.co.il/blog _Personal Blog:_degeladom.wordpress.com Tel:972-54-6734469

On Sun, May 15, 2016 at 9:54 AM, Ori Hoch notifications@github.com wrote:

Open-Knesset-DB is the low-level database layer, this will contain the Django models, but with minimal logic.

Yes, I suppose an SPA using the API would be good, but it would be a big project. It's possible to do it gradually - one page / section at a time.

agree with your starting points for the hackathon

— You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub https://github.com/hasadna/Open-Knesset/issues/673#issuecomment-219269805

OriHoch commented 8 years ago

I guess both API and DB projects will be in Python/Django, just separated into 2 repos