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 --recursive

Remember, everytime you want to pull the newest changes, run:

git pull
git submodule update

because goodmap contains a submodule.

#TODO remove all submodule connected instructions after removing platzky submodule (see #157)

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
USE_LAZY_LOADING Loads point data only after the user clicks a point. If set to false, point data is loaded together with the initial map.
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.0a4

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.0a4
File Size Uploaded
goodmap-2.0.0a4.tar.gz 342.7 kB Details

Built distribution (wheel)

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

Total release size: 689.9 kB

Release files / goodmap-2.0.0a4.tar.gz

Download URL goodmap-2.0.0a4.tar.gz
Size 342.7 kB
Tags Source
SHA-256 checksum
How to use checksums
878cf380119aa6d1bfd20c6f010c92aab4bee3202e7dbfc7c3841d07826e99a6
BLAKE2b-256 checksum
How to use checksums
9d251e3450f83f4712fb71611b0d2db9eb667129baec67bbd1a812e0c5a5dea4
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 Jul 27, 2026.

Transparency log

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

Download URL goodmap-2.0.0a4-py3-none-any.whl
Size 347.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5a3df35a4b1c886146d045ab4e2f53bf6e9ebd657871c46ddcf38a000ca6ef98
BLAKE2b-256 checksum
How to use checksums
906add9acf91de79efb3e7932cd25ada3ca447519194afda9c663eac5abe859c
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 Jul 27, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.0.0a4 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