Skip to content

The official events microservice of Bootstrap Academy - Learn Computer Science Online

License

Notifications You must be signed in to change notification settings

Bootstrap-Academy/events-ms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7fbb15f · Sep 10, 2024
Sep 10, 2024
Mar 7, 2023
Jan 26, 2024
Feb 9, 2023
Jan 26, 2024
Nov 13, 2023
Aug 20, 2022
Dec 22, 2023
Nov 13, 2023
Nov 13, 2023
Nov 13, 2023
Dec 22, 2023
Aug 30, 2022
Nov 13, 2023
May 4, 2024
May 4, 2024
May 21, 2024
Jun 28, 2022
Nov 13, 2023
May 4, 2024

Repository files navigation

check test build Version

Bootstrap Academy Events Microservice

The official events microservice of Bootstrap Academy.

If 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.

Development Setup

  1. Install Python 3.11, Poetry and poethepoet.
  2. Clone this repository and cd into it.
  3. Run poe setup to install the dependencies.
  4. Start a PostgreSQL database, for example using Docker or Podman:
    podman run -d --rm \
        --name postgres \
        -p 127.0.0.1:5432:5432 \
        -e POSTGRES_HOST_AUTH_METHOD=trust \
        postgres:alpine
  5. Create the academy-events database:
    podman exec postgres \
        psql -U postgres \
        -c 'create database "academy-events"'
  6. Start a Redis instance, for example using Docker or Podman:
    podman run -d --rm \
        --name redis \
        -p 127.0.0.1:6379:6379 \
        redis:alpine
  7. Run poe migrate to run the database migrations.
  8. Run poe api to start the microservice. You can find the automatically generated swagger documentation on http://localhost:8004/docs.

Poetry Scripts

poe setup           # setup dependencies, .env file and pre-commit hook
poe api             # start api locally
poe test            # run unit tests
poe pre-commit      # run pre-commit checks
  poe lint          # run linter
    poe format      # run auto formatter
      poe isort     # sort imports
      poe black     # reformat code
    poe ruff        # check code style
    poe mypy        # check typing
    poe flake8      # check code style
  poe coverage      # run unit tests with coverage
poe alembic         # use alembic to manage database migrations
poe migrate         # run database migrations
poe env             # show settings from .env file
poe jwt             # generate a jwt with the given payload and ttl in seconds

PyCharm configuration

Configure the Python interpreter:

  • Open PyCharm and go to SettingsProjectPython Interpreter
  • Open the menu Python Interpreter and click on Show All...
  • Click on the plus symbol
  • Click on Poetry Environment
  • Select Existing environment (setup the environment first by running poe setup)
  • Confirm with OK

Setup the run configuration:

  • Click on Add Configuration...Add new...Python
  • Change target from Script path to Module name and choose the api module
  • Change the working directory to root path ➔ Edit ConfigurationsWorking directory
  • In the EnvFile tab add your .env file
  • Confirm with OK