Skip to main content

A modular toolkit for analytics.

Project description

# newslynx

the API and SousChefs that Power Newslynx.

## (Re)Setting up the dev environment

  • Clone this repository and install newslynx

    • preferably do this in a virtual environment.

` git clone https://github.com/newslynx/newslynx pip install -e newslynx `

  • (re)create a postgresql database

` dropdb newslynx createdb newslynx `

  • fill out [example_config/config.yaml](config.yaml) and move it to ~/.newslynx/config.yaml

  • modify default recipes and tags in [example_config/defaults/recipes/](example_config/defaults/recipes/) and [example_config/defaults/tags/](example_config/defaults/tags/), respectively. These tags and recipes will be created everytime a new organization is added.

  • initialize the database:

` newslynx init `

  • populate with sample data

` newslynx gen_random_data `

  • start the server in debug mode

` newslynx runserver -r -d `

## TODO

  • [x] Migrate common utilites from other repos into single repo.

  • [x] Create Database Schema / Models

  • [x] Create Blueprint-based app workflow

  • [x] Re-implement OAuth endpoints

  • [x] Implement Facebook OAuth

  • [x] Re-implement User / Login API

  • [x] Implement Org API

  • [x] Re-implement Settings API

  • [x] Re-implement Events API
    • [x] Implement Postgres-based search

  • [x] Re-implement Things API (aka Articles)
    • [x] Implement Postgres-based search

  • [x] Re-implement Tags API

  • [x] Write out SousChefs JSONSchema

  • [x] Write out initial schemas:
    • [x] article

    • [x] twitter-list

    • [x] twitter-user

    • [x] facebook-page

  • [x] Write out default recipes + tags:
    • [x] article

    • [x] twitter-list

    • [x] twitter-user

    • [x] facebook-page

    • [x] promotion impact tag

  • [x] Update create org endpoint to generate default recipes + tags.

  • [x] Implement SousChefs API

  • [x] Implement Recipes API

  • [ ] Implement Thing Creation API

  • [ ] Implement Event Creation API

  • [ ] Implement Metrics API:
    • [x] Figure out how to use tablefunc for pivot tables.

  • [ ] Implement Reports API (Are these just metrics?)
    • [ ] Figure out how to use pypostgresql for custom postgres functions.

  • [ ] Implement Task Queue (Celery, Redis?)

  • [ ] Implement Modular SousChefs

  • [x] Figure out how best to use OAuth tokens in SousChefs. Ideally these should not be exposed to users.

  • [x] Implement API client

  • [ ] Re-implement SousChefs
    • [ ] RSS Feeds => Thing

    • [ ] Google Analytics => Metric

    • [ ] Google Alerts => Event

    • [ ] Social Shares => Metric

    • [ ] Homepage Promotions => Metric

    • [ ] Twitter Promotions => Metric

    • [ ] Facebook Promotions => Metric

    • [ ] Twitter List => Event

    • [ ] Twitter User => Event

    • [ ] Facebook Page => Event

    • [ ] Reddit => Event

    • [ ] HackerNews => Event

  • [ ] Implement New SousChefs
    • [ ] IFTTT integrations
      • [ ] Wordpress Publish => Thing

      • TK

    • [ ] Regex Thing URL => Tag

    • [ ] Search Things => Tag

    • [ ] Meltwater Emails => Event

    • [ ] Newsletter Email Promotions => Metric

  • [ ] Implement Recipe scheduler

  • [ ] Implement Admin Panel

  • [ ] Migrate Core Beta Users (Lauren, Lindsay, Blair)

  • [ ] Automate Deployment

  • [ ] App Integration

  • [ ] Document, Document, Document

## References

### API Design

### Crosstab in Postgres * [http://www.postgresonline.com/journal/archives/14-CrossTab-Queries-in-PostgreSQL-using-tablefunc-contrib.html](http://www.postgresonline.com/journal/archives/14-CrossTab-Queries-in-PostgreSQL-using-tablefunc-contrib.html)

### filling in zeros for a timezeries * [http://stackoverflow.com/questions/346132/postgres-how-to-return-rows-with-0-count-for-missing-data]

### fetching column names from table * [http://www.postgresql.org/message-id/AANLkTilsjTAXyN5DghR3M2U4c8w48UVxhov4-8igMpd1@mail.gmail.com](http://www.postgresql.org/message-id/AANLkTilsjTAXyN5DghR3M2U4c8w48UVxhov4-8igMpd1@mail.gmail.com)

### timeseries tips * [http://no0p.github.io/postgresql/2014/05/08/timeseries-tips-pg.html](http://no0p.github.io/postgresql/2014/05/08/timeseries-tips-pg.html)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

newslynx-0.0.3.tar.gz (58.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

newslynx-0.0.3.macosx-10.10-intel.exe (192.9 kB view details)

Uploaded Source

File details

Details for the file newslynx-0.0.3.tar.gz.

File metadata

  • Download URL: newslynx-0.0.3.tar.gz
  • Upload date:
  • Size: 58.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for newslynx-0.0.3.tar.gz
Algorithm Hash digest
SHA256 1c99ba37df6076cf11b9cbbeb30d657e90a34a760011bf06a3ecc306ba3984b2
MD5 27810c6a99440ab6b17dcd43a1aed88f
BLAKE2b-256 cffd21eab554c7e63f656a2deff53ff0f8a22fb7195451d1c6adaf71dea138d6

See more details on using hashes here.

File details

Details for the file newslynx-0.0.3.macosx-10.10-intel.exe.

File metadata

File hashes

Hashes for newslynx-0.0.3.macosx-10.10-intel.exe
Algorithm Hash digest
SHA256 b264f3d47305bdd3766d645e553205bb0ad1b4d72c0fd9670dce9048e0906a89
MD5 1292b11863fdc4b103716c23a7ffff23
BLAKE2b-256 751156080c9301a5d51b5e93ac60aae3f5dcf1ed557d944c5615a0eb4302ea74

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page