https://github.com/amsterdamtimemachine/flagship

Flagship is a web app for exploration of geolocated heritage data

https://github.com/amsterdamtimemachine/flagship

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.4%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Flagship is a web app for exploration of geolocated heritage data

Basic Info
  • Host: GitHub
  • Owner: amsterdamtimemachine
  • Language: TypeScript
  • Default Branch: main
  • Homepage:
  • Size: 9.05 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created almost 2 years ago · Last pushed 10 months ago
Metadata Files
Readme

README.md

Flagship

Flagship is a web app for exploration of geolocated heritage data.

Development

Prerequisites

  • Bun (latest version)

Setup

bash bun install cp .env.example .env

Required: Edit .env and set: - PUBLIC_MAPTILER_API_KEY - Get a free API key from MapTiler

Optional: Configure preprocessor settings in .env (uncomment and modify any variables you want to change from defaults)

Development Server

bash bun run dev

The app will be available at http://localhost:5175

Production (Docker)

Prerequisites

  • Docker with Docker Compose
  • Bun (optional - for convenient build scripts)

Setup

bash cp .env.example .env

Required: Edit .env and set: - PUBLIC_MAPTILER_API_KEY - Get a free API key from MapTiler

Optional: Configure preprocessor settings in .env (uncomment and modify any variables you want to change from defaults)

Quick Start

With Bun: bash bun run docker:up:build

Without Bun: bash docker compose up --build

The app will be available at http://localhost:3000

Note: On first run, the system will automatically generate visualization data (~3 minutes). Subsequent runs will be much faster as the data is cached in data/docker/.

The container will automatically generate visualization data on startup if data/docker/visualization.bin is missing.

Docker Commands

Starting & Stopping

```bash

With Bun

bun run docker:up # Start (uses existing data) bun run docker:up:build # Start with rebuild bun run docker:down # Stop everything

Direct Docker Compose

docker compose up # Start (uses existing data) docker compose up --build # Start with rebuild docker compose down # Stop everything ```

Data Management

```bash

With Bun

bun run docker:regenerate # Regenerate visualization data + rebuild + start

Direct Docker Compose

rm -f data/docker/visualization.bin && docker compose up --build ```

Monitoring & Debugging

```bash

Bun

bun run docker:logs # View all logs bun run docker:logs:app # View app logs only bun run docker:logs:init # View data generation logs bun run docker:restart # Restart all services bun run docker:restart:app # Restart just app

Docker

docker compose logs -f # View all logs docker compose logs -f app # View app logs only docker compose logs -f data-init # View data generation logs docker compose restart # Restart all services docker compose restart app # Restart just app ```

How It Works

The Docker setup uses Docker Compose with two services:

  1. data-init: Generates visualization data from the Amsterdam database

    • Runs once on startup if data/docker/visualization.bin doesn't exist
    • Exits after successful generation
    • Takes ~4-8 minutes on first run
  2. app: Serves the web application

    • Waits for data-init to complete successfully
    • Serves the app on port 3000
    • Automatically restarts if it crashes

Data Isolation

  • Local development: Uses data/visualization.bin
  • Docker production: Uses data/docker/visualization.bin

Each environment maintains separate data to avoid conflicts during development.

Owner

  • Name: Amsterdam Time Machine
  • Login: amsterdamtimemachine
  • Kind: organization
  • Email: amsterdamtimemachine@uva.nl
  • Location: Netherlands

GitHub Events

Total
  • Push event: 42
  • Pull request event: 2
Last Year
  • Push event: 42
  • Pull request event: 2

Dependencies

docker-compose.yml docker
package-lock.json npm
  • 373 dependencies
package.json npm
  • turbo ^2.5.3 development
packages/app/package.json npm
  • @melt-ui/pp ^0.3.2 development
  • @sveltejs/adapter-auto ^3.0.0 development
  • @sveltejs/kit ^2.16.1 development
  • @sveltejs/vite-plugin-svelte ^4.0.0 development
  • @types/eslint ^9.6.0 development
  • @types/geojson ^7946.0.14 development
  • @typescript-eslint/eslint-plugin ^8.32.0 development
  • @typescript-eslint/parser ^8.32.0 development
  • autoprefixer ^10.4.20 development
  • eslint ^9.0.0 development
  • eslint-config-prettier ^9.1.0 development
  • eslint-plugin-svelte ^2.45.1 development
  • globals ^15.0.0 development
  • postcss ^8.4.47 development
  • prettier ^3.1.1 development
  • prettier-plugin-svelte ^3.2.6 development
  • svelte ^5.0.0 development
  • svelte-adapter-bun ^0.5.2 development
  • svelte-check ^4.0.0 development
  • tailwindcss ^3.4.14 development
  • typescript ^5.8.3 development
  • typescript-eslint ^8.0.0-alpha.20 development
  • vite ^5.4.4 development
  • @atm/shared workspace:*
  • @melt-ui/svelte ^0.86.6
  • @msgpack/msgpack ^3.1.2
  • clsx ^2.1.1
  • lodash.debounce ^4.0.8
  • maplibre-gl ^4.5.1
  • melt ^0.34.0
  • svelte-masonry ^0.1.5
  • tailwind-merge ^2.6.0
packages/preprocessor/package.json npm
  • @types/bun latest development
  • @typescript-eslint/eslint-plugin ^8.34.1 development
  • @typescript-eslint/parser ^8.34.1 development
  • bun-types latest development
  • eslint ^9.29.0 development
  • typescript ^5.8.3 development
  • @atm/shared workspace:*
  • @msgpack/msgpack ^3.1.2
packages/shared/package.json npm
  • typescript ^5.0.0 development