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.12. Uses uv 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 uv for dependency management. To install uv, see the uv documentation. Then install the dependencies and run the server:

uv sync
uv 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