[![Build](https://github.com/front-matter/rogue-scholar-api/actions/workflows/build.yml/badge.svg)](https://github.com/front-matter/rogue-scholar-api/actions/workflows/build.yml)
[![PyPI version](https://img.shields.io/pypi/v/rogue-scholar-api.svg)](https://pypi.org/project/rogue-scholar-api/)
[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=front-matter_rogue-scholar-api&metric=coverage)](https://sonarcloud.io/summary/new_code?id=front-matter_rogue-scholar-api)
[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=front-matter_rogue-scholar-api&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=front-matter_rogue-scholar-api)
[![docs](https://img.shields.io/badge/docs-passing-blue)](https://docs.rogue-scholar.org)
![GitHub](https://img.shields.io/github/license/front-matter/rogue-scholar-api?logo=MIT)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.8433679.svg)](https://doi.org/10.5281/zenodo.8433679)
# Rogue Scholar API
The backend server for the [Rogue Scholar](https://rogue-scholar.org) science blog archive. The Rogue Scholar API is a Python [Quart](https://pgjones.gitlab.io/quart/) application that provides a RESTful API for the Rogue Scholar service.
## Installation
Requires Python 3.8 or higher (Python 3.11 recommended). Uses [Poetry](https://python-poetry.org/) 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](https://python-poetry.org/docs/#installation). Then install the dependencies and run the server:
```
poetry install
poetry run quart --app rogue_scholar_api run
```
The API will then be available at `http://localhost:5000`.
## Development
We use pytest for testing:
```
poetry run pytest
```
Follow along via [Github Issues](https://github.com/front-matter/rogue-scholar-api/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](https://docs.rogue-scholar.org/) website.
The Rogue Scholar API documentation is served by default at [/openapi.json](https://api.rogue-scholar.org/openapi.json) according to the OpenAPI standard, or at [/docs](https://api.rogue-scholar.org/docs) for a SwaggerUI interface, or at [/redocs](https://api.rogue-scholar.org/redocs) for a redoc interface.
## Meta
Please note that this project is released with a [Contributor Code of Conduct](https://github.com/front-matter/rogue-scholar-api/blob/main/CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms.
License: [MIT](https://github.com/front-matter/rogue-scholar-api/blob/main/LICENSE)
Raw data
{
"_id": null,
"home_page": "https://rogue-scholar.org",
"name": "rogue-scholar-api",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.10,<4.0",
"maintainer_email": "",
"keywords": "science,blogging,quart,api,supabase,typesense",
"author": "Martin Fenner",
"author_email": "martin@front-matter.io",
"download_url": "https://files.pythonhosted.org/packages/33/b9/7321b8e51b01240241af9ff1ef2abfd1bf3a904c63a5ff8e772c73c6d7f8/rogue_scholar_api-0.7.1.tar.gz",
"platform": null,
"description": "[![Build](https://github.com/front-matter/rogue-scholar-api/actions/workflows/build.yml/badge.svg)](https://github.com/front-matter/rogue-scholar-api/actions/workflows/build.yml)\n[![PyPI version](https://img.shields.io/pypi/v/rogue-scholar-api.svg)](https://pypi.org/project/rogue-scholar-api/)\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=front-matter_rogue-scholar-api&metric=coverage)](https://sonarcloud.io/summary/new_code?id=front-matter_rogue-scholar-api)\n[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=front-matter_rogue-scholar-api&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=front-matter_rogue-scholar-api)\n[![docs](https://img.shields.io/badge/docs-passing-blue)](https://docs.rogue-scholar.org)\n![GitHub](https://img.shields.io/github/license/front-matter/rogue-scholar-api?logo=MIT)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.8433679.svg)](https://doi.org/10.5281/zenodo.8433679)\n\n# Rogue Scholar API\n\nThe backend server for the [Rogue Scholar](https://rogue-scholar.org) science blog archive. The Rogue Scholar API is a Python [Quart](https://pgjones.gitlab.io/quart/) application that provides a RESTful API for the Rogue Scholar service.\n\n## Installation\n\nRequires Python 3.8 or higher (Python 3.11 recommended). Uses [Poetry](https://python-poetry.org/) for dependency management. Depends on credentials for the Rogue Scholar Postgres database (hosted by Supabase) and Rogue Scholar search index (hosted by Typesense):\n\n```\n# required environment variables\nSUPABASE_URL\nSUPABASE_ANON_KEY\nTYPESENSE_HOST\nTYPESENSE_API_KEY\n```\n\nThe API uses Poetry for dependency management. To install Poetry, see the [Poetry documentation](https://python-poetry.org/docs/#installation). Then install the dependencies and run the server:\n\n```\npoetry install\npoetry run quart --app rogue_scholar_api run\n```\n\nThe API will then be available at `http://localhost:5000`.\n\n\n## Development\n\nWe use pytest for testing:\n\n```\npoetry run pytest\n```\n\nFollow along via [Github Issues](https://github.com/front-matter/rogue-scholar-api/issues). Please open an issue if you encounter a bug or have a feature request.\n\n### Note on Patches/Pull Requests\n\n- Fork the project\n- Write tests for your new feature or a test that reproduces a bug\n- Implement your feature or make a bug fix\n- Do not mess with Rakefile, version or history\n- Commit, push and make a pull request. Bonus points for topical branches.\n\n## Documentation\n\nDocumentation (work in progress) for using Rogue Scholar is available at the [Rogue Scholar Documentation](https://docs.rogue-scholar.org/) website.\n\nThe Rogue Scholar API documentation is served by default at [/openapi.json](https://api.rogue-scholar.org/openapi.json) according to the OpenAPI standard, or at [/docs](https://api.rogue-scholar.org/docs) for a SwaggerUI interface, or at [/redocs](https://api.rogue-scholar.org/redocs) for a redoc interface.\n\n## Meta\n\nPlease note that this project is released with a [Contributor Code of Conduct](https://github.com/front-matter/rogue-scholar-api/blob/main/CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms. \n\nLicense: [MIT](https://github.com/front-matter/rogue-scholar-api/blob/main/LICENSE)\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "API for the Rogue Scholar science blogging platform.",
"version": "0.7.1",
"project_urls": {
"Homepage": "https://rogue-scholar.org",
"Repository": "https://github.com/front-matter/rogue-scholar-api"
},
"split_keywords": [
"science",
"blogging",
"quart",
"api",
"supabase",
"typesense"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "bceaca19bcf670b2498b28c8af49fd3606ea0df6064cb286eddad5bdf4da9e43",
"md5": "c6194828606385c2ab3a59d91ad31037",
"sha256": "d58ccad232c6d27ffd75175fa5e9ecf33502f3f953366c8c55b5288eaf283d42"
},
"downloads": -1,
"filename": "rogue_scholar_api-0.7.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c6194828606385c2ab3a59d91ad31037",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10,<4.0",
"size": 19761,
"upload_time": "2023-10-24T15:51:34",
"upload_time_iso_8601": "2023-10-24T15:51:34.526447Z",
"url": "https://files.pythonhosted.org/packages/bc/ea/ca19bcf670b2498b28c8af49fd3606ea0df6064cb286eddad5bdf4da9e43/rogue_scholar_api-0.7.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "33b97321b8e51b01240241af9ff1ef2abfd1bf3a904c63a5ff8e772c73c6d7f8",
"md5": "29158519340fdc58742d803cb60da570",
"sha256": "d665f21d2351328792ce0d60836c82952c7a896dfd7a26d53ccee44ec0164363"
},
"downloads": -1,
"filename": "rogue_scholar_api-0.7.1.tar.gz",
"has_sig": false,
"md5_digest": "29158519340fdc58742d803cb60da570",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10,<4.0",
"size": 18414,
"upload_time": "2023-10-24T15:51:36",
"upload_time_iso_8601": "2023-10-24T15:51:36.179590Z",
"url": "https://files.pythonhosted.org/packages/33/b9/7321b8e51b01240241af9ff1ef2abfd1bf3a904c63a5ff8e772c73c6d7f8/rogue_scholar_api-0.7.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-24 15:51:36",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "front-matter",
"github_project": "rogue-scholar-api",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "rogue-scholar-api"
}