Giter VIP home page Giter VIP logo

ohioready-api's Introduction

ERD

Install

Install Python3 + Pip + Virtualenv

virtualenv venv -p python3
. ./venv/bin/activate
pip install -r requirements.txt

If you are going to modify this script then take advantage of pre-commit hooks

pip install pre-commit
pre-commit install

Run locally

Create a file named .env with the following contents in the root directory of the project

SECRET_KEY = '<---- put 50 character random string here ---->'

and then run these commands

python manage.py migrate
python manage.py createsuperuser
python manage.py runserver
  1. To access the admin portal open a web browser and go to http://127.0.0.1:8000/admin/
  2. To access the rest endpoints go to https://127.0.0.1:8000/v1/
  3. To access with a token, login to admin, create a token, and then use it in an auth header. Authorization: Token

-or- use JWT tokens

curl \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{"username": "davidattenborough", "password": "boatymcboatface"}' \
  http://localhost:8000/api/token/

...
{
  "access":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX3BrIjoxLCJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiY29sZF9zdHVmZiI6IuKYgyIsImV4cCI6MTIzNDU2LCJqdGkiOiJmZDJmOWQ1ZTFhN2M0MmU4OTQ5MzVlMzYyYmNhOGJjYSJ9.NHlztMGER7UADHZJlxNG0WSi22a2KaYSfd1S-AuT7lU",
  "refresh":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX3BrIjoxLCJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImNvbGRfc3R1ZmYiOiLimIMiLCJleHAiOjIzNDU2NywianRpIjoiZGUxMmY0ZTY3MDY4NDI3ODg5ZjE1YWMyNzcwZGEwNTEifQ.aEoAYkSJjoWH1boshQAaTkf8G3yn0kapko6HFRt7Rh4"
}

Authorization: Bearer

When this short-lived access token expires, you can use the longer-lived refresh token to obtain another access token:

curl \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{"refresh":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX3BrIjoxLCJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImNvbGRfc3R1ZmYiOiLimIMiLCJleHAiOjIzNDU2NywianRpIjoiZGUxMmY0ZTY3MDY4NDI3ODg5ZjE1YWMyNzcwZGEwNTEifQ.aEoAYkSJjoWH1boshQAaTkf8G3yn0kapko6HFRt7Rh4"}' \
  http://localhost:8000/api/token/refresh/

...
{"access":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX3BrIjoxLCJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiY29sZF9zdHVmZiI6IuKYgyIsImV4cCI6MTIzNTY3LCJqdGkiOiJjNzE4ZTVkNjgzZWQ0NTQyYTU0NWJkM2VmMGI0ZGQ0ZSJ9.ekxRxgb9OKmHkfy-zs1Ro_xs1eMLXiR17dIDBVxeT-w"}

Entity Relationship Diagram

ERD Transitions

ohioready-api's People

Contributors

rzwink avatar

Stargazers

 avatar

ohioready-api's Issues

Table semantics

I'd like to rename some of the tables for clarity.

Article / Articles replaces Coverage / Coverages

Event / Events replaces Item / Items

Add most popular tags routes

to align with Brandon's new design for filters, we need a route to get the most popular tags for each of the three types: region, source, and tag.

image

Filters needed for the /event/ rest endpoint

Today we can filter by the following:
"scope",
"authorizer__name",
"authoritative_publisher__name"

But we also need "tags" which is a many to many relationship. This requires a custom filter applied to the event view and a bit more research.

Add filter records

When we GET /events/ with a filter (using tag, authorizer, or region), we should store those query parameters so we can later analyze what topics folks are most interested in.

We’ll also want to log search queries when that is possible.

Swagger auto documenation

There is a way in Django to enable Swagger auto documentation. This would be nice to have to drive awareness of filters, etc.

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.