No description
Find a file
2024-07-24 17:41:10 +02:00
.github chore(deps): bump dependabot/fetch-metadata from 1 to 2 (#134) 2024-03-26 08:02:59 +01:00
.vscode chore: initial fork of the closed-source project 2022-09-04 10:28:56 +02:00
assets chore: initial fork of the closed-source project 2022-09-04 10:28:56 +02:00
data chore: initial fork of the closed-source project 2022-09-04 10:28:56 +02:00
docs docs: prepare for hacktoberfest (#18) 2022-09-14 17:13:08 +02:00
tests test: add hamburger button tests 2022-10-26 14:28:26 +02:00
ts Make loadJSON more robust 2024-07-24 17:40:52 +02:00
.env Add default backend 2024-07-24 17:41:10 +02:00
.gitignore chore: initial fork of the closed-source project 2022-09-04 10:28:56 +02:00
.node-version ci: use global .node-version for correct version 2023-12-02 13:44:20 +00:00
.prettierrc chore: initial fork of the closed-source project 2022-09-04 10:28:56 +02:00
CODE_OF_CONDUCT.md docs: prepare for hacktoberfest (#18) 2022-09-14 17:13:08 +02:00
CONTRIBUTING.md docs: prepare for hacktoberfest (#18) 2022-09-14 17:13:08 +02:00
index.html Remove 'src' attriute from legend template 2024-06-29 23:20:08 +02:00
LICENSE-CC-BY-ND.md docs: add missing licenses and their files 2022-09-04 11:41:15 +02:00
LICENSE.md style: format files using prettier 2022-09-04 12:50:39 +02:00
main.css chore: initial fork of the closed-source project 2022-09-04 10:28:56 +02:00
main.ts Django backend preparation (#147) 2024-06-29 14:02:20 +00:00
Makefile build: add makefile for easier builds 2022-09-05 10:05:38 +02:00
package-lock.json chore(deps-dev): bump the all group with 3 updates (#154) 2024-07-22 23:22:11 +00:00
package.json chore(deps-dev): bump the all group with 3 updates (#154) 2024-07-22 23:22:11 +00:00
playwright.config.ts chore: initial fork of the closed-source project 2022-09-04 10:28:56 +02:00
postcss.config.js chore: initial fork of the closed-source project 2022-09-04 10:28:56 +02:00
README.md chore: add @CherryKitten to the README 2022-10-26 14:34:13 +02:00
tailwind.config.js WIP: Kompletten Bildschirm für Karte nutzen 2022-10-26 14:28:26 +02:00
tsconfig.json feat: add goatcounter integration 2022-09-08 17:10:49 +02:00
vite.config.js chore: initial fork of the closed-source project 2022-09-04 10:28:56 +02:00

Regenbogenkarte

Die Regenbogenkarte ist eine interaktive Karte für das Anzeigen und Entdecken von queeren (Jugend)-Gruppen. Die Idee dahinter war, insbesondere Jugendlichen einen Anlaufpunkt zu geben, um sich mit Gleichgesinnten austauschen zu können.

Screenshot der Karte mit Jugendgruppen

Der aktuelle Stand ist online vorzufinden: https://karte.queer-lexikon.net/

Wo sind die Daten?

Wir haben uns bewusst dagegen entschieden, die dahinter liegenden Daten zu veröffentlichen. Dennoch wollen wir den Code der Karte teilen, damit:

  1. transparent wird, wie die Karte funktioniert.
  2. Änderungen und Verbesserungen aus der Community ergänzt werden können.

Für Ergänzungen und Korrekturen einzelner Gruppen ist der E-Mail-Kontakt unter karte@queer-lexikon.net vorzuziehen. Bitte beachte, dass wir Meldungen nur von Gruppenleitungen annehmen können.

Wie funktioniert die Karte?

  1. Beim Aufruf wird die Karte und eventuelle Elemente (Suchfeld, Menü, etc.) geladen. Für das Kartenmaterial nutzen wir den deutschen OpenStreetMap-Server des FOSSGIS e.V. Das Material steht unter einer CC-BY-SA 2.0 Lizenz.
  2. Der aktuelle Ort wird abgefragt. Der Browser übermittelt uns die (ungefähren) Standortdaten. Zu diesen Koordinaten wird anschließend navigiert.

Kompilieren

Die Karte ist rein JavaScript basiert. Wir nutzen aber für ein bisschen Komfort TypeScript, das macht Refactorings deutlich leichter. Anschließend wird Vite als Bundler genutzt und die finalen, komprimierten Assets erzeugt. Verwaltet wird alles über npm. Also:

npm install     # installiert alle Abhängigkeiten
npm run build   # kompiliert den Code

Code-Format

Prettier wird für ein einheitliches Format der Daten verwendet. Mit

npm run format

werden alle Dateien formatiert. Außerdem wird bei Pull Requests eingehender Code automatisch formatiert, also falls es mal vergessen wurde, kein Problem.

Warum nutzt ihr kein Framework wie Vue, React, Svelte, etc.?

Das hat mehrere Gründe. Zum Einen sind die benannten Frameworks stets im Wandel. Die Karte soll aber eine fire-and-forget Lösung sein. Das heißt, einmal aufgesetzt und deployed, soll die erst mal bis in alle Ewigkeiten laufen. Die stetigen Änderungen und der damit einhergehende Wartungsaufwand bei den bekannten Frameworks ist nicht ohne. Natürlich achten diese darauf, dass die breaking changes so klein wie möglich ausfallen, dennoch ist ein stetiges Weiterentwickeln der Karte notwendig.

Zum anderen ist die Funktionalität der Karte gering. Bis auf die Karte, ein Suchfeld und das mobile Menü sind quasi keine interaktiven Elemente vorhanden. Es ist für Menschen, die nicht im JavaScript- Universum unterwegs sind, deutlich einfacher, den sehr explizit geschriebenen Code der Karte zu verstehen, anstatt erst einmal das benutzte Framework zu verstehen.

Sofern sich aber die Funktionalitäten der Karte in Zukunft erweitern, schließen wir nicht aus, Schritt für Schritt die Karte auf eines der Frameworks umzubauen. Nur aktuell besteht kein Bedarf.

Lizenzen

  • Code: OSL-3.0
  • Icons: CC-BY-ND 4.0
  • Kartenmaterial: CC-BY-SA 2.0

Dankeschön ❤️

Ein großes Dankeschön geht an all die lieben Vereine und Organisationen, die wir auf unserer Karte anzeigen dürfen. Ein weiteres Dankeschön geht raus an den FOSSGIS e.V. für die Bereitstellung der Infrastruktur, auf dem die Karte aufbaut.

Und ein besonderes Dankeschön auch an folgende Wesen:

  • CherryKitten für ihre Pull Requests und die Verbesserung der Karte.