Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Github Actions

Good Map

Map engine to serve all the people ;)

Project Structure

This repository is a monorepo containing three parts:

  • goodmap/ (repo root) — the Python backend, built on the platzky framework, published to PyPI as goodmap.
  • frontend/ — the React frontend, built and bundled into the PyPI package (see make build-frontend). Not published as a separate npm package.
  • e2e-tests/ — Playwright-based end-to-end tests exercising the backend and frontend together.

Each has its own dependency manager (poetry for the backend and e2e-tests, npm for the frontend) and is set up independently — see each directory's README for details. The root Makefile has convenience targets (make dev, make lint-check-all) that run across all three.

Setup

0. Clone the repo

git clone https://github.com/Problematy/goodmap.git

1. Use python 3.10

If you have a different version of Python on your system, install python 3.10 alongside. For that, you can use pyenv. Follow the documentation. Useful commands: pyenv help <command>, pyenv install, pyenv shell, pyenv versions.

2. Install poetry in Python 3.10

poetry can create virtual environments associated with a project.
Make sure you are in the Python 3.10 environment and install:

pip install poetry

Useful commands: poetry -h <command>, poetry env list, poetry env info.

3. Install dependencies

poetry install

4. You're ready

When you enter the project directory, you can invoke any commands in your project like this:

poetry run <command>

Running App locally

TL;DR

If you don't want to go through all the configuration, e.g. you just simply want to test if everything works, you can simply run app with test dataset provided in examples directory:

poetry run flask --app 'goodmap.goodmap:create_app(config_path="./examples/e2e_test_config.yml")' run

Configuration

If you want to serve app with your configuration rename config-template.yml to config.yml and change its contents according to your needs.

Afterwards run it with:

poetry run flask --app 'goodmap.goodmap:create_app(config_path="/PATH/TO/YOUR/CONFIG")' --debug run

Option Description
FAKE_LOGIN If set to true, allows access to the admin panel by simply selecting the role instead of logging in. DO NOT USE IN PRODUCTION!
SHOW_ACCESSIBILITY_TABLE If set as true it shows special view to help with accessing application.

Database

The database is stored in JSON, in the map section. For an example database see examples/e2e_test_data.json. The first subsection data consists of the actual datapoints, representing points on a map.

Datapoints have fields. The next subsections define special types of fields:

  • obligatory_fields - here are explicitely stated all the fields that the application assumes are presnt in all datapoints. E.g.
"position",
"name",
"accessible_by"

TODO: obligatory_fields is a new subsection, start using it in the actual application

  • categories - fields that can somehow be used in the app, for example by which datapoints can be filtered. Every category has a specified list of allowed values. E.g.
"accessible_by": ["bikes", "cars", "pedestrians"]
  • categories_default_checked - for a given category, the options that should be pre-checked in the filter panel when the app first loads. E.g.
"accessible_by": ["cars", "pedestrians"]
  • visible_data - when a datapoint will be rendered as a pin on a map, these fields will be shown in the box when clicking on a pin. E.g.
"name",
"type_of_place"
  • meta-data - some special data like
"uuid"

You can define the fields in all these subsections. Besides these types of fields, there is no restriction on the number of fields a datapoint can have.

Running E2E Tests

E2E tests use Playwright and require both servers to be running before invoking make e2e-tests:

make run-e2e-backend   # generates the e2e config/data, then serves the backend on :5000
make run-frontend      # webpack dev server on :8080
make e2e-tests         # checks both are up, then runs the tests

make run-e2e-backend regenerates the templated config and a fresh copy of the test data before starting, so no separate setup step is needed. make e2e-tests performs a single-shot check and exits with a helpful message if either server is missing.

Examples

You can find examples of working configuration and database in examples/ directory:

  • e2e_test_config.yml - Basic configuration example
  • e2e_test_data.json - Example database with sample location data
  • mongo_e2e_test_config.yml - MongoDB configuration example

final test

Release files for goodmap 2.0.0a8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for goodmap 2.0.0a8
File Size Uploaded
goodmap-2.0.0a8.tar.gz 371.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for goodmap 2.0.0a8
File Interpreter ABI Platform
goodmap-2.0.0a8-py3-none-any.whl Python 3 none any Details

Total release size: 750.2 kB

Release files / goodmap-2.0.0a8.tar.gz

Download URL goodmap-2.0.0a8.tar.gz
Size 371.5 kB
Tags Source
SHA-256 checksum
How to use checksums
b15c3c1eee0fd4d834dacd05c0ec3fc23e5f8da7fb67d7dceeec4a1df7e98fb2
BLAKE2b-256 checksum
How to use checksums
4a72e35f2e00064bea45982cf95cef91cdbe691176fb2bec2d2a2464598878ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 3, 2026.

Transparency log

Release files / goodmap-2.0.0a8-py3-none-any.whl

Download URL goodmap-2.0.0a8-py3-none-any.whl
Size 378.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
854ee55b2d00b671667fbd0c3ef35c28e5c2b4fd838dd3609af3f9b60b0c2a40
BLAKE2b-256 checksum
How to use checksums
fda9dea3b348ecbec166a179a38aaf0a3f573be7ba4cfa5ef82c6e677d11ace6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 3, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.0.0a8 This release

2 release files

1.8.2

2 release files

1.8.1

2 release files

1.8.0

2 release files

1.7.0

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.14

2 release files

1.1.13

2 release files

1.1.12

2 release files

1.1.11

2 release files

1.1.10

2 release files

1.1.9

2 release files

1.1.8

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page