Skip to content

front-matter/rogue-scholar-api

Repository files navigation

Build PyPI version Coverage Maintainability Rating docs GitHub DOI

Rogue Scholar API

The backend server for the Rogue Scholar science blog archive. The Rogue Scholar API is a Python Quart application that provides a RESTful API for the Rogue Scholar service.

Installation

Requires Python 3.9 or higher (Python 3.12 recommended). Uses Poetry for dependency management. Depends on credentials for the Rogue Scholar Postgres database (hosted by Supabase) and Rogue Scholar search index (hosted by Typesense):

# required environment variables
SUPABASE_URL
SUPABASE_ANON_KEY
TYPESENSE_HOST
TYPESENSE_API_KEY

The API uses Poetry for dependency management. To install Poetry, see the Poetry documentation. Then install the dependencies and run the server:

poetry install
poetry run start

The API will then be available at http://localhost:5000.

Development

We use pytest for testing:

poetry run pytest

Follow along via Github Issues. Please open an issue if you encounter a bug or have a feature request.

Note on Patches/Pull Requests

  • Fork the project
  • Write tests for your new feature or a test that reproduces a bug
  • Implement your feature or make a bug fix
  • Do not mess with Rakefile, version or history
  • Commit, push and make a pull request. Bonus points for topical branches.

Documentation

Documentation (work in progress) for using Rogue Scholar is available at the Rogue Scholar Documentation website.

The Rogue Scholar API documentation is served by default at /openapi.json according to the OpenAPI standard, or at /docs for a SwaggerUI interface, or at /redocs for a redoc interface.

Meta

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

License: MIT