An open API service indexing awesome lists of open source software.

https://github.com/randomsearch18/marvellous-mapping-machine

A work-in-progress routing engine and web-based navigation app
https://github.com/randomsearch18/marvellous-mapping-machine

openstreetmap routing-engine

Last synced: about 1 month ago
JSON representation

A work-in-progress routing engine and web-based navigation app

Awesome Lists containing this project

README

          

# Marvellous Mapping Machine

## Try it out

**🧑‍💻 Visit to use the app :D**

Alternative domains:

-

## Screenshots

![The Map screen open at Canary Wharf](screenshots/canary-warf.png)
![Checking an address on the Route screen](screenshots/check-address.png)
![Part of a route from London Waterloo through London](screenshots/from-waterloo-station.png)

## Development instructions for backend

### Preparation

Ensure you have Python v3.10+ installed.

Clone the repository and change directory to the `backend` folder in this repository:

```bash
cd backend
```

### Virtual environment

Create a virtual environment. For example, on a personal computer running Linux, you can create a venv in the project directory:

```bash
python3 -m venv .venv
```

If you're on a school computer, you can't create a venv in your `H:` drive, so create it somewhere on the `C:` drive. E.g. in Git Bash:

```bash
py -m venv "$USERPROFILE/venvs/marvellous-mapping-machine"
```

Or in Powershell:

```powershell
py -m venv "$env:USERPROFILE\venvs\marvellous-mapping-machine"
```

### Activate the virtual environment

In VSCode, run the **Python: Select Interpreter** command. If the venv is in the project directory, you can directly select it from the list. If it's elsewhere, manually enter the path to the venv.

Alternatively, activate the venv in the terminal, e.g. in Linux:

```bash
source .venv/bin/activate
```

### Install dependencies

```bash
python -m pip install -r backend/requirements.txt
```

### Run the program

```bash
python backend/main.py
```

## Development instructions for frontend

### Preparation

Ensure you have Node.JS and Yarn v1 installed.

Clone the repository and change directory to the `frontend` folder in this repository:

```bash
cd frontend
```

### Install dependencies

Run:

```bash
yarn
```

### Start development server

Run

```bash
yarn dev
```

And access the frontend using the URL displayed in your terminal.

### Quirks

Note that Python code is only updated when the build tool starts (i.e. no live reload), so if you want to edit Python code while previewing the frontend, you should restart the Vite dev server after editing to see your changes.

## AI usage statement

### AI usage for the prototype

Development of this project up to and including the [v0.1.0](https://github.com/RandomSearch18/marvellous-mapping-machine/tree/v0.1.0) tag (i.e. up to and including March 2025) was not assisted by AI in any way.

### AI usage after the prototype

Development of the project after the v0.1.0 tag (i.e. June 2025 onwards) has been assisted by AI in the following ways:

- I use GitHub Copilot's inline completions and edit suggestions for small sections of code (up to a few lines)

## License

Copyright © 2025 RandomSearch (Mish)

Marvellous Mapping Machine is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program. If not, see .

![AGPLv3 Free Software logo](https://www.gnu.org/graphics/agplv3-with-text-162x68.png)