{"id":18349301,"url":"https://github.com/bootstrap-academy/auth-ms","last_synced_at":"2025-04-06T09:32:00.808Z","repository":{"id":207172892,"uuid":"508365468","full_name":"Bootstrap-Academy/auth-ms","owner":"Bootstrap-Academy","description":"The official auth microservice of Bootstrap Academy - Learn Computer Science Online","archived":true,"fork":false,"pushed_at":"2024-09-10T09:09:27.000Z","size":1214,"stargazers_count":3,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2025-03-04T23:34:44.737Z","etag":null,"topics":["academy","bootstrap-academy","fastapi","hacktoberfest","python"],"latest_commit_sha":null,"homepage":"https://bootstrap.academy","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Bootstrap-Academy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-28T15:58:06.000Z","updated_at":"2025-02-03T19:03:40.000Z","dependencies_parsed_at":"2023-11-22T01:59:34.949Z","dependency_job_id":"28b3f896-4b0a-4381-a808-cf9aa271cf9f","html_url":"https://github.com/Bootstrap-Academy/auth-ms","commit_stats":null,"previous_names":["bootstrap-academy/auth-ms"],"tags_count":6,"template":false,"template_full_name":"Defelo/fastapi-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bootstrap-Academy%2Fauth-ms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bootstrap-Academy%2Fauth-ms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bootstrap-Academy%2Fauth-ms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bootstrap-Academy%2Fauth-ms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Bootstrap-Academy","download_url":"https://codeload.github.com/Bootstrap-Academy/auth-ms/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247463745,"owners_count":20942935,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["academy","bootstrap-academy","fastapi","hacktoberfest","python"],"created_at":"2024-11-05T21:21:29.123Z","updated_at":"2025-04-06T09:32:00.338Z","avatar_url":"https://github.com/Bootstrap-Academy.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![check](https://github.com/Bootstrap-Academy/auth-ms/actions/workflows/check.yml/badge.svg)](https://github.com/Bootstrap-Academy/auth-ms/actions/workflows/check.yml)\n[![test](https://github.com/Bootstrap-Academy/auth-ms/actions/workflows/test.yml/badge.svg)](https://github.com/Bootstrap-Academy/auth-ms/actions/workflows/test.yml)\n[![build](https://github.com/Bootstrap-Academy/auth-ms/actions/workflows/build.yml/badge.svg)](https://github.com/Bootstrap-Academy/auth-ms/actions/workflows/build.yml) \u003c!--\nhttps://app.codecov.io/gh/Bootstrap-Academy/auth-ms/settings/badge\n[![codecov](https://codecov.io/gh/Bootstrap-Academy/auth-ms/branch/develop/graph/badge.svg?token=changeme)](https://codecov.io/gh/Bootstrap-Academy/auth-ms) --\u003e\n![Version](https://img.shields.io/github/v/tag/Bootstrap-Academy/auth-ms?include_prereleases\u0026label=version)\n\n# Bootstrap Academy Auth Microservice\nThe official auth microservice of [Bootstrap Academy](https://bootstrap.academy/).\n\nIf you would like to submit a bug report or feature request, or are looking for general information about the project or the publicly available instances, please refer to the [Bootstrap-Academy repository](https://github.com/Bootstrap-Academy/Bootstrap-Academy).\n\n## Development Setup\n1. Install [Python 3.11](https://python.org/), [Poetry](https://python-poetry.org/) and [poethepoet](https://pypi.org/project/poethepoet/).\n2. Clone this repository and `cd` into it.\n3. Run `poe setup` to install the dependencies.\n4. Start a [PostgreSQL](https://www.postgresql.org/) database, for example using [Docker](https://www.docker.com/) or [Podman](https://podman.io/):\n    ```bash\n    podman run -d --rm \\\n        --name postgres \\\n        -p 127.0.0.1:5432:5432 \\\n        -e POSTGRES_HOST_AUTH_METHOD=trust \\\n        postgres:alpine\n    ```\n5. Create the `academy-auth` database:\n    ```bash\n    podman exec postgres \\\n        psql -U postgres \\\n        -c 'create database \"academy-auth\"'\n    ```\n6. Start a [Redis](https://redis.io/) instance, for example using [Docker](https://www.docker.com/) or [Podman](https://podman.io/):\n    ```bash\n    podman run -d --rm \\\n        --name redis \\\n        -p 127.0.0.1:6379:6379 \\\n        redis:alpine\n    ```\n7. Run `poe migrate` to run the database migrations.\n8. Run `poe api` to start the microservice. You can find the automatically generated swagger documentation on http://localhost:8000/docs.\n\n## Poetry Scripts\n```bash\npoe setup           # setup dependencies, .env file and pre-commit hook\npoe api             # start api locally\npoe test            # run unit tests\npoe pre-commit      # run pre-commit checks\n  poe lint          # run linter\n    poe format      # run auto formatter\n      poe isort     # sort imports\n      poe black     # reformat code\n    poe ruff        # check code style\n    poe mypy        # check typing\n    poe flake8      # check code style\n  poe coverage      # run unit tests with coverage\npoe alembic         # use alembic to manage database migrations\npoe migrate         # run database migrations\npoe env             # show settings from .env file\npoe jwt             # generate a jwt with the given payload and ttl in seconds\npoe hash-password   # hash a given password using argon2\n```\n\n## PyCharm configuration\nConfigure the Python interpreter:\n\n- Open PyCharm and go to `Settings` ➔ `Project` ➔ `Python Interpreter`\n- Open the menu `Python Interpreter` and click on `Show All...`\n- Click on the plus symbol\n- Click on `Poetry Environment`\n- Select `Existing environment` (setup the environment first by running `poe setup`)\n- Confirm with `OK`\n\nSetup the run configuration:\n\n- Click on `Add Configuration...` ➔ `Add new...` ➔ `Python`\n- Change target from `Script path` to `Module name` and choose the `api` module\n- Change the working directory to root path  ➔ `Edit Configurations`  ➔ `Working directory`\n- In the `EnvFile` tab add your `.env` file\n- Confirm with `OK`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbootstrap-academy%2Fauth-ms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbootstrap-academy%2Fauth-ms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbootstrap-academy%2Fauth-ms/lists"}