Giter Site home page Giter Site logo

openaustralia / jacaranda Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 1.0 556 KB

a watchful tree and slack messenger to keep you informed of the use of your civic tech projects, like PlanningAlerts and Right To Know

Home Page: https://morph.io/openaustralia/jacaranda

Ruby 100.00%

jacaranda's Issues

Say how much money PlanningAlerts backers have donated in the last period

Backing PlanningAlerts with small, regular donations is an important way people who love PlanningAlerts support it. https://www.planningalerts.org.au/donations/new

We really want to see more people becoming backers, and grow the income we're getting from it to support hiring another person.

We should track the, conveniently quantifiable, amount of money that's been donated, so we can see the impact of our development on this project https://github.com/openaustralia/planningalerts/milestone/6 . E.g.

PlanningAlerts Backers donated $130 in the last two weeks.

We can probably extract this figure from the Stripe API. It'll be something like 'successful charges against a subscription with the key for that type of donation'.

Enable each runner to send messages to multiple, runner specific Slack channels

At the OpenAustralia Foundation we have Jacaranda posting the our main #townsquare room. But it might be nice to have the Right To Know runner also post to our project specific #righttoknow room. Same with PlanningAlerts.

It's good for everyone to find out about what's happening with our projects, but it also makes sense for people who just monitor the project room to find out.

On the other hand, someone could post the message from townsquare into the project specific room, and the multiple bot messages could get annoying.

Seems like a reasonable option to me though, and we can always turn it off if it gets annoying.

Schema incorrect since merging #8

Turns out you can't introduce a new UNIQUE constraint on an existing table that already has a UNIQUE constraint.

This is a problem for Jacaranda, because this is the old schema prior to merging #8:

CREATE TABLE data (date_posted,text,runner,UNIQUE (date_posted))

And this is the new schema created from a dry run of #8, now there are multiple runners:

CREATE TABLE data (date_posted,text,runner,UNIQUE (date_posted,runner))

SQLite doesn't support adding new columns with UNIQUE or PRIMARY KEY constraints to existing tables.

SQLite does permit adding a unique index if your table has no existing UNIQUE constraints.

The effect of this is:

when we run the scraper, only one runner is able to record that it successfully ran, because there is a single primary key: runner

This means that when the scraper gets run by Morph, it will post messages to Slack every day, because it doesn't know that the runner successfully ran the day before.

Provide some context for the data

๐ŸŽท 31 new requests were made through Right To Know last fortnight.
๐Ÿ’“ Our contributors helped people with 7 annotations.
๐Ÿ† 3 requests were marked successful!

What do these numbers mean? Are they higher or lower than usual? Some useful context would be helpful here.

Allow owner to set when they want each runner to run

It's a bit overwhelming to get all the messages from different runners at once. I like the idea of this nice try telling you about different things at different times. Right To Know one week and PlanningAlerts the next for example. I feels like it makes sense to hear from Jacaranda on a specific day, maybe Monday to kick off the week, or Wednesday to spur you along.

I think implementation wise, initially this should be hard-coded into the runner, and then if we want to make it more configurable we could extract it to an ENV variable that can be set on morph by the owner.

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.