diff --git a/.env b/.env index 49de7718..94e82bd6 100644 --- a/.env +++ b/.env @@ -1,3 +1,3 @@ -COMPLETE_URL=https://geops.com/api/callback -ORIGIN=geops.com +COMPLETE_URL=https://stag.geops.com/api/callback +ORIGIN=geops.com,stag.geops.com NEXT_SHARP_PATH="./node_modules/sharp" diff --git a/app/de/cases/[slug]/page.js b/app/de/cases/[slug]/page.js new file mode 100644 index 00000000..5cf19ad3 --- /dev/null +++ b/app/de/cases/[slug]/page.js @@ -0,0 +1,25 @@ +import getContentList from "../../../../lib/getContentList.js"; +import { getCasesSlugProps } from "../../../../lib/getProps.js"; +import { generateCasesSlugMetadata } from "../../../../lib/getMetadata.js"; +import CasesArticle from "../../../../components/CasesArticle.js"; + +export async function generateMetadata({ params: { slug } }) { + const md = await generateCasesSlugMetadata("de", slug); + return md; +} + +export async function generateStaticParams() { + const list = getContentList("de", { + collections: ["cases"], + fields: ["slug"], + }); + + return list.map(({ slug }) => ({ + slug, + })); +} + +export default async function Page({ params: { slug } }) { + const props = await getCasesSlugProps("de", slug); + return ; +} diff --git a/app/de/cases/page.js b/app/de/cases/page.js new file mode 100644 index 00000000..433ec107 --- /dev/null +++ b/app/de/cases/page.js @@ -0,0 +1,13 @@ +import CasesIndex from "../../../components/CasesIndex.js"; +import { getCasesProps } from "../../../lib/getProps.js"; +import { generateCasesMetadata } from "../../../lib/getMetadata.js"; + +export async function generateMetadata() { + const md = await generateCasesMetadata("de", "/de/cases", "/en/cases"); + return md; +} + +export default async function Page() { + const props = await getCasesProps("de"); + return ; +} diff --git a/app/en/cases/[slug]/page.js b/app/en/cases/[slug]/page.js new file mode 100644 index 00000000..e3dc246b --- /dev/null +++ b/app/en/cases/[slug]/page.js @@ -0,0 +1,25 @@ +import getContentList from "../../../../lib/getContentList.js"; +import { getCasesSlugProps } from "../../../../lib/getProps.js"; +import { generateCasesSlugMetadata } from "../../../../lib/getMetadata.js"; +import CasesArticle from "../../../../components/CasesArticle.js"; + +export async function generateMetadata({ params: { slug } }) { + const md = await generateCasesSlugMetadata("en", slug); + return md; +} + +export async function generateStaticParams() { + const list = getContentList("en", { + collections: ["cases"], + fields: ["slug"], + }); + + return list.map(({ slug }) => ({ + slug, + })); +} + +export default async function Page({ params: { slug } }) { + const props = await getCasesSlugProps("en", slug); + return ; +} diff --git a/app/en/cases/page.js b/app/en/cases/page.js new file mode 100644 index 00000000..ee5cb7ee --- /dev/null +++ b/app/en/cases/page.js @@ -0,0 +1,13 @@ +import CasesIndex from "../../../components/CasesIndex.js"; +import { getCasesProps } from "../../../lib/getProps.js"; +import { generateCasesMetadata } from "../../../lib/getMetadata.js"; + +export async function generateMetadata() { + const md = await generateCasesMetadata("de", "/de/cases", "/en/cases"); + return md; +} + +export default async function Page() { + const props = await getCasesProps("en"); + return ; +} diff --git a/components/Article.js b/components/Article.js index 6924b6fe..644dc8b6 100644 --- a/components/Article.js +++ b/components/Article.js @@ -5,7 +5,7 @@ import { Prism as SyntaxHighlighter } from "react-syntax-highlighter"; import { useI18n } from "../lib/i18n"; import namedCodesToUnicode from "../lib/namedCodesToUnicode"; -function CodeBlock({ className, children }) { +export function CodeBlock({ className, children }) { let lang = "text"; // default monospaced text if (className && className.startsWith("lang-")) { lang = className.replace("lang-", ""); @@ -13,14 +13,14 @@ function CodeBlock({ className, children }) { return {children}; } -function PreBlock({ children, ...rest }) { +export function PreBlock({ children, ...rest }) { if ("type" in children && children["type"] === "code") { return CodeBlock(children["props"]); } return
{children}
; } -function ArticleImage({ alt, imageSizes, src, title }) { +export function ArticleImage({ alt, imageSizes, src, title }) { const { height, width } = imageSizes[src] || {}; if (!height || !width) { return `Fehler: Bildgröße für ${src} konnte nicht ermittelt werden.`; @@ -31,7 +31,7 @@ function ArticleImage({ alt, imageSizes, src, title }) { ); } -function ResponsiveImage({ alt, desktop, mobile, imageSizes, title }) { +export function ResponsiveImage({ alt, desktop, mobile, imageSizes, title }) { return ( <> {desktop && ( diff --git a/components/CareerContent.js b/components/CareerContent.js index 804023a3..0d695030 100644 --- a/components/CareerContent.js +++ b/components/CareerContent.js @@ -7,6 +7,7 @@ import ArrowCircleIcon from "./icons/ArrowCircleIcon.js"; import CaretIcon from "./icons/CaretIcon.js"; import Button from "./Button"; import Hero from "./Hero.js"; +import Testimonial from "./Testimonial.js"; const { screens } = resolveConfig(tailwindConfig).theme; @@ -136,29 +137,18 @@ function CareerTestimonials({ items }) { className={`container mx-auto grid gap-8 grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 items-center mb-10 px-8 justify-center w-full`} > {items?.map((testimonial) => ( -
-
- {testimonial.author} -

- «{testimonial.quote}» -

-

- {testimonial.author},{" "} - {testimonial.position} -

-
-
+ author={testimonial.author} + quote={testimonial.quote} + portrait={`/images/career/${testimonial.portrait}`} + position={testimonial.position} + className={ + items.length % 2 === 0 + ? "xl:min-h-[450px] 2xl:min-h-[380px] xl:max-w-[320px]" + : "" + } + /> ))} ); diff --git a/components/CaseDetails.js b/components/CaseDetails.js new file mode 100644 index 00000000..36941bbb --- /dev/null +++ b/components/CaseDetails.js @@ -0,0 +1,25 @@ +import { useI18n } from "../lib/i18n"; + +export function CaseDetails({ timeline, service }) { + const { t } = useI18n(); + return ( +
+ {service && ( +
+

+ {t("cases.service")} +

+ {service} +
+ )} + {timeline && ( +
+

+ {t("cases.timeline")} +

+ {timeline} +
+ )} +
+ ); +} diff --git a/components/CaseTestimonial.js b/components/CaseTestimonial.js new file mode 100644 index 00000000..ade428a8 --- /dev/null +++ b/components/CaseTestimonial.js @@ -0,0 +1,25 @@ +import Image from "next/image"; + +function CaseTestimonial({ quote, author, portrait, position }) { + return ( +
+ {portrait ? ( + {author} + ) : null} +
+

«{quote}»

+

+ {author}, {position} +

+
+
+ ); +} + +export default CaseTestimonial; diff --git a/components/CasesArticle.js b/components/CasesArticle.js new file mode 100644 index 00000000..e282ae0f --- /dev/null +++ b/components/CasesArticle.js @@ -0,0 +1,34 @@ +"use client"; + +import { ch } from "./Contact.js"; +import ContactPerson from "./ContactPerson.js"; +import Layout from "./Layout.js"; +import RelatedList from "./RelatedList.js"; +import CasesArticleBody from "./CasesArticleBody.js"; + +export default function CasesArticle(props) { + const { related, case: caseItem } = props; + + if (!caseItem) { + return null; + } + + return ( + + + + + + ); +} diff --git a/components/CasesArticleBody.js b/components/CasesArticleBody.js new file mode 100644 index 00000000..573ac52e --- /dev/null +++ b/components/CasesArticleBody.js @@ -0,0 +1,105 @@ +import PageHeader from "./PageHeader.js"; +import Markdown from "markdown-to-jsx"; +import { ArticleImage, PreBlock, ResponsiveImage } from "./Article.js"; +import namedCodesToUnicode from "../lib/namedCodesToUnicode.js"; +import { CaseDetails } from "./CaseDetails.js"; +import Image from "next/image.js"; +import CaseTestimonial from "./CaseTestimonial.js"; + +function Testimonials({ testimonials = [] }) { + return testimonials.length > 0 ? ( +
+ {testimonials.map( + ({ text: quote, name: author, position, portrait }, index) => ( + + ), + )} +
+ ) : null; +} + +function CasesArticleBody({ case: caseItem }) { + const { + cover, + content: { lead, title, sections }, + testimonials, + testimonialsOnTop, + imageSizes, + } = caseItem; + + return ( + <> + +
+
+

{caseItem.customer?.fullName}

+

{title}

+ + {lead} + +
+ {testimonialsOnTop ? ( + + ) : null} + {sections?.length && + sections.map(({ title, text, image, imagePosition, highlight }) => { + const imageClass = /top|left/.test(imagePosition) + ? "lg:order-[-1]" + : "mt-0"; + const containerClass = /right|left/.test(imagePosition) + ? "lg:grid-cols-2" + : ""; + return ( +
+
+

{title}

+ {text} +
+ {image && imageSizes[image]?.width && ( + {title + )} +
+ ); + })} + + {testimonialsOnTop ? null : ( + + )} + +
+ + ); +} + +export default CasesArticleBody; diff --git a/components/CasesGridItem.js b/components/CasesGridItem.js new file mode 100644 index 00000000..6a061a1f --- /dev/null +++ b/components/CasesGridItem.js @@ -0,0 +1,39 @@ +import Image from "next/image"; +import Link from "next/link"; +import React from "react"; + +function CasesGridItem({ + customer, + slug, + title, + gridImage, + gridWidthFull, + imageSizes, +}) { + return ( + + {gridImage && ( +
+ {title} +
+ {customer?.name} +
+
+ )} +
{title}
+ + ); +} + +export default CasesGridItem; diff --git a/components/CasesIndex.js b/components/CasesIndex.js new file mode 100644 index 00000000..567c80b3 --- /dev/null +++ b/components/CasesIndex.js @@ -0,0 +1,38 @@ +"use client"; + +import Layout from "./Layout.js"; +import { useI18n } from "../lib/i18n.js"; +import CasesGridItem from "./CasesGridItem.js"; +import CustomerLogoCarousel from "./CustomerLogoCarousel.js"; + +export default function CasesIndex({ cases, customers }) { + const { t } = useI18n(); + + return ( + +
+
+

+ {t("cases.header")} +

+

{t("cases.description")}

+
+
+ {cases.map((caseItem) => { + return ; + })} +
+
+ +
+ ); +} diff --git a/components/Header.js b/components/Header.js index f83ded99..edc39562 100644 --- a/components/Header.js +++ b/components/Header.js @@ -43,6 +43,7 @@ export default function Header({ pathByLocale }) { ]; const menu = [ { href: "/solution", title: t("solution.title") }, + { href: "/cases", title: t("cases.title") }, { href: "/about", title: t("about.title") }, { href: "/blog", title: "Blog" }, { href: t("career.path"), title: t("career.title") }, diff --git a/components/Testimonial.js b/components/Testimonial.js new file mode 100644 index 00000000..85d72864 --- /dev/null +++ b/components/Testimonial.js @@ -0,0 +1,34 @@ +import Image from "next/image"; +import React from "react"; + +function Testimonial({ quote, author, portrait, position, className = "" }) { + return ( +
+
+ {portrait ? ( + {author} + ) : null} +
+

+ «{quote}» +

+

+ {author}, {position} +

+
+
+
+ ); +} + +export default Testimonial; diff --git a/content/cases/alma/index.de.md b/content/cases/alma/index.de.md new file mode 100644 index 00000000..c3543b61 --- /dev/null +++ b/content/cases/alma/index.de.md @@ -0,0 +1,83 @@ +--- +title: Die digitale Lösung für belastete Standorte in der Schweiz. +summary: Mit alma steht Kantonen und Bundesämtern eine moderne + Open-Source-Software zur Verfügung, um den Kataster belasteter Standorte (KbS) + effizient, sicher und nachhaltig zu führen. +slug: alma +gridWidthFull: true +customer: FOCA +service: Open-Source-Software, UX/UI-Design, Software für Geschäftskontrolle und + Geodatenmanagement +timeline: laufend seit 2025 +published: true +content: + title: alma – die Software zur langfristigen Führung des Katasters belasteter + Standorte + lead: >- + Mit alma steht Kantonen und Bundesämtern eine moderne Open-Source-Software + zur Verfügung, um den Kataster belasteter Standorte (KbS) effizient, sicher + und nachhaltig zu führen. + + + ![](/images/cases/alma/alma-1.png) + sections: + - imagePosition: bottom + highlight: false + title: Komplexe Anforderungen an den KbS + text: Das Bundesgesetz über den Umwelt­schutz verpflichtet die Schweizer Kantone + und Bundesstellen, einen öffentlich zugänglichen Kataster der belasteten + Standorte (KbS) zu erstellen. geOps entwickelt seit über 20 Jahren + Software für die Erstellung und Führung des KbS in der Schweiz. Seit + 2011 war Altlast4Web der Standard für das Management des KbS. Seit 2025 + ist alma moderne Software-Lösung, die sämtliche Aufgaben in diesem + Bereich unterstützt. + - imagePosition: bottom + highlight: false + title: Mehr als nur Standortverwaltung + text: alma vereint Datenmanagement, Geodatenbearbeitung und Prozesssteuerung in + einem System. Standortperimeter lassen sich direkt digitalisieren und + kartografisch darstellen. Gleichzeitig unterstützt alma individuelle + Geschäftsprozesse von der Beurteilung bis zur Sanierung und bindet diese + eng an die Standortdaten. Automatisierte Reports, Schnittstellen zu + Geoportalen und ÖREB sowie hohe Sicherheitsstandards runden die Lösung + ab. + image: /images/cases/alma/schnellsuche-global-v2-closed.png + - imagePosition: bottom + highlight: false + title: Gemeinsam entwickelt, offen zugänglich + text: alma ist Open Source und wurde von rund 20 Kantonen, Bundesämtern und dem + Fürstentum Lichtenstein gemeinsam finanziert und entwickelt. Das + reduziert Kosten, schafft Synergien und sorgt für eine nachhaltige + Weiterentwicklung. Für die Verwaltungen bedeutet das digitale + Souveränität und langfristige Investitionssicherheit. + - imagePosition: bottom + highlight: false + title: Effizient, transparent und nachhaltig + text: >- + Mit alma stehen den zuständigen Ämtern ein zukunftsfähiges Werkzeug und + klare Vorteile zur Verfügung: + + + * Effizienz durch Automatisierung und integrierte Geodatenbearbeitung + + * Transparenz durch offene Standards und nachvollziehbare Prozesse + + * Nachhaltigkeit durch gemeinschaftliche Entwicklung und Open Source + image: /images/cases/alma/alma-2.png + - imagePosition: null + highlight: true + title: "Blick nach vorn: gemeinsam weiterentwickeln" + text: Mit alma haben Kantone und Bundesämter ein starkes Fundament für das + Management belasteter Standorte geschaffen. Die Open-Source-Lösung + wächst kontinuierlich weiter. Neue Funktionen, Schnittstellen und + Automatisierung werden gemeinsam mit den Nutzer:innen entwickelt. So + bleibt alma nicht nur technologisch aktuell, sondern entwickelt sich + Schritt für Schritt zu einem umfassenden Werkzeug für ein noch + effizienteres, transparenteres und nachhaltigeres Umweltmanagement. + - imagePosition: bottom + highlight: false + title: Mehr Informationen + text: Zum Nutzen der Software alma wie auch zur Community aus den Ämtern und + von geOps gibt es weitere Informationen unter + [alma-os.ch](https://alma-os.ch/de) +--- diff --git a/content/cases/alma/index.en.md b/content/cases/alma/index.en.md new file mode 100644 index 00000000..f778cd50 --- /dev/null +++ b/content/cases/alma/index.en.md @@ -0,0 +1,86 @@ +--- +title: Die digitale Lösung für belastete Standorte in der Schweiz. +summary: Mit alma steht Kantonen und Bundesämtern eine moderne + Open-Source-Software zur Verfügung, um den Kataster belasteter Standorte (KbS) + effizient, sicher und nachhaltig zu führen. +slug: alma +gridImage: /images/cases/alma/alma-ubersicht.png +gridWidthFull: true +weight: 8 +cover: /images/cases/alma/header.webp +customer: "" +service: Open-source software, UX/UI design, business control software, and + geodata management +timeline: ongoing since 2025 +published: true +content: + sections: + - imagePosition: bottom + highlight: false + title: Complex requirements for the KbS + text: The Federal Act on Environmental Protection requires Swiss cantons and + federal agencies to create a publicly accessible register of + contaminated sites (KbS). geOps has been developing software for the + creation and management of the KbS in Switzerland for over 20 years. + Since 2011, Altlast4Web has been the standard for managing the KbS. + Since 2025, alma has been a modern software solution that supports all + tasks in this area. + - imagePosition: bottom + highlight: false + title: More than just site management + text: alma combines data management, geodata processing, and process control in + one system. Site perimeters can be digitized and mapped directly. At the + same time, alma supports individual business processes from assessment + to remediation and links them closely to the site data. Automated + reports, interfaces to geoportals and ÖREB, and high security standards + round off the solution. + image: /images/cases/alma/schnellsuche-global-v2-closed.png + - imagePosition: bottom + highlight: false + title: Jointly developed, openly accessible + text: alma is open source and was jointly financed and developed by around 20 + cantons, federal offices, and the Principality of Liechtenstein. This + reduces costs, creates synergies, and ensures sustainable further + development. For administrations, this means digital sovereignty and + long-term investment security. + image: "" + - imagePosition: bottom + highlight: false + title: Efficient, transparent, and sustainable + text: >- + alma provides the relevant authorities with a future-proof tool and + clear advantages: + + + * Efficiency through automation and integrated geodata processing + + * Transparency through open standards and traceable processes + + * Sustainability through collaborative development and open source + image: /images/cases/alma/alma-2.png + - imagePosition: null + highlight: true + title: "Looking ahead: continuing to develop together" + text: With alma, cantons and federal offices have created a strong foundation + for managing contaminated sites. The open-source solution continues to + grow steadily. New functions, interfaces, and automation are developed + in collaboration with users. This ensures that alma not only remains + technologically up to date, but also develops step by step into a + comprehensive tool for even more efficient, transparent, and sustainable + environmental management. + - imagePosition: bottom + highlight: false + text: Further information on using the alma software and the community of public + authorities and geOps can be found at + [alma-os.ch](https://alma-os.ch/de). + title: More information + title: alma – the software for long-term management of the register of + contaminated sites + lead: >- + alma provides cantons and federal offices with modern open-source software + for managing the register of contaminated sites (KbS) efficiently, securely, + and sustainably. + + + ![](/images/cases/alma/alma-1.png) +--- diff --git a/content/cases/amo-karte/index.de.md b/content/cases/amo-karte/index.de.md new file mode 100644 index 00000000..81d809d6 --- /dev/null +++ b/content/cases/amo-karte/index.de.md @@ -0,0 +1,61 @@ +--- +title: "Barrierefrei und Karten: Geht das? Ja, das geht. " +summary: "Mit Inkrafttreten des revidierten Schweizer + Behindertengleichstellungsgesetzes (BehiG) und der Verordnung über die + Barrierefreiheit der Angebote des öffentlichen Verkehrs (VböV) standen + öffentliche Stellen in der Schweiz vor einer grossen Aufgabe: Bis spätestens + 2024 mussten ihre digitalen Angebote barrierefrei sein, auch interaktive + Karten. Genau hier setzt unser Projekt mit der SBB an." +slug: amo-karte +customer: SBB CFF FFS +service: Digitale Kartenlösung, UX/UI-Design / Frontend +timeline: "2024" +published: true +content: + title: Inklusiv navigieren durch unsere barrierefreie Karte + lead: >- + *Mit Inkrafttreten des revidierten Schweizer + Behindertengleichstellungsgesetzes (BehiG) und der Verordnung über die + Barrierefreiheit der Angebote des öffentlichen Verkehrs (VböV) standen + öffentliche Stellen in der Schweiz vor einer grossen Aufgabe: Bis spätestens + 2024 mussten ihre digitalen Angebote barrierefrei sein, auch interaktive + Karten. Genau hier setzt unser Projekt mit der SBB an.* + + + ![](/images/cases/amo-karte/amo2_2.png) + sections: + - imagePosition: bottom + highlight: false + title: Karten für alle nutzbar machen + text: Digitale Karten sind mächtige Werkzeuge, aber sie stellen Menschen mit + Einschränkungen oft vor unüberwindbare Hürden. Informationen sind + visuell aufbereitet, Interaktionen erfolgen über Maus oder Touch, und + die Inhalte sind komplex. Unser Ziel war es, Wege zu finden, wie + Kartenlösungen für allen zugänglich werden, ohne dabei auf die Vorteile + für die übrigen Nutzer:innen zu verzichten. + - imagePosition: left + highlight: false + title: Die barrierefreie Karte für die SBB + text: >- + Gemeinsam mit der SBB haben wir eine [barrierefreie + Kartenanwendung](https://maps.trafimage.ch/ch.sbb.handicap?baselayers=ch.sbb.netzkarte,ch.sbb.netzkarte.dark&layers=ch.sbb.status_unbekannt,ch.sbb.nichtbarrierfreierbahnhoefe,ch.sbb.teilbarrierefreiebahnhoefe,ch.sbb.barrierfreierbahnhoefe&lang=de&x=925472&y=5920000&z=9) entwickelt, + die allen Reisenden Zugang zu wichtigen Informationen bietet. Die + Grundlage bilden Daten aus **atlas**, der zentralen Datenbank für + ÖV-Daten in der Schweiz, welche die SBB mit komplexen Berechnungen + aufbereitet. Auf dieser Basis generieren wir die Tiles. Zudem sind wir + verantwortlich für die Umsetzung des Frontends. + + + Die Karte zeigt den Barrierefreiheits-Status sämtlicher Bahnhöfe und ist nichtv nur auf der SBB-Webseite eingebunden, sondern wird auch von anderen Transportunternehmen wie den Appenzeller Bahnen oder der SOB genutzt. So können Reisende mit Einschränkungen ihre Wege planen, beispielsweise um Unterstützung durch Assistenz oder Shuttleservice anzufordern. Gleichzeitig dient die Karte auch dem SBB Contact Center in Brig, um gezielt Auskünfte zu geben. + image: /images/cases/amo-karte/amo1_1.png + - imagePosition: bottom + highlight: true + title: "Blick nach vorn: digitale Inklusion weiterdenken " + text: "Barrierefreie Karten sind ein wichtiger Schritt, um den öffentlichen + Verkehr für alle zugänglich zu machen. In Zukunft wollen wir die + Funktionalität weiter ausbauen, etwa mit zusätzlichen Informationen für + mobilitätseingeschränkte Reisende oder noch engerer Integration in + bestehende Apps und Services. Unser Ziel: digitale Inklusion für alle + Nutzer:innengruppen." + image: /images/cases/barrierefrei-und-karten-geht-das-ja-das-geht/adobestock_1521628631.jpeg +--- diff --git a/content/cases/amo-karte/index.en.md b/content/cases/amo-karte/index.en.md new file mode 100644 index 00000000..11c697c2 --- /dev/null +++ b/content/cases/amo-karte/index.en.md @@ -0,0 +1,64 @@ +--- +title: "Barrierefrei und Karten: Geht das? Ja, das geht. " +summary: "Mit Inkrafttreten des revidierten Schweizer + Behindertengleichstellungsgesetzes (BehiG) und der Verordnung über die + Barrierefreiheit der Angebote des öffentlichen Verkehrs (VböV) standen + öffentliche Stellen in der Schweiz vor einer grossen Aufgabe: Bis spätestens + 2024 mussten ihre digitalen Angebote barrierefrei sein, auch interaktive + Karten. Genau hier setzt unser Projekt mit der SBB an." +slug: amo-karte +gridImage: /images/cases/barrierefrei-und-karten-geht-das-ja-das-geht/adobestock_1521628631.jpeg +weight: 6 +cover: /images/cases/amo-karte/screenshot-2025-09-04-141533.png +customer: SBB CFF FFS +service: Digitale Kartenlösung, UX/UI-Design / Frontend +timeline: "2024" +published: true +content: + sections: + - imagePosition: bottom + highlight: false + title: Karten für alle nutzbar machen + text: Digitale Karten sind mächtige Werkzeuge, aber sie stellen Menschen mit + Einschränkungen oft vor unüberwindbare Hürden. Informationen sind + visuell aufbereitet, Interaktionen erfolgen über Maus oder Touch, und + die Inhalte sind komplex. Unser Ziel war es, Wege zu finden, wie + Kartenlösungen für allen zugänglich werden, ohne dabei auf die Vorteile + für die übrigen Nutzer:innen zu verzichten. + - imagePosition: left + highlight: false + title: Die barrierefreie Karte für die SBB + text: >- + Gemeinsam mit der SBB haben wir eine [barrierefreie + Kartenanwendung](https://maps.trafimage.ch/ch.sbb.handicap?baselayers=ch.sbb.netzkarte,ch.sbb.netzkarte.dark&layers=ch.sbb.status_unbekannt,ch.sbb.nichtbarrierfreierbahnhoefe,ch.sbb.teilbarrierefreiebahnhoefe,ch.sbb.barrierfreierbahnhoefe&lang=de&x=925472&y=5920000&z=9) entwickelt, + die allen Reisenden Zugang zu wichtigen Informationen bietet. Die + Grundlage bilden Daten aus **atlas**, der zentralen Datenbank für + ÖV-Daten in der Schweiz, welche die SBB mit komplexen Berechnungen + aufbereitet. Auf dieser Basis generieren wir die Tiles. Zudem sind wir + verantwortlich für die Umsetzung des Frontends. + + + Die Karte zeigt den Barrierefreiheits-Status sämtlicher Bahnhöfe und ist nichtv nur auf der SBB-Webseite eingebunden, sondern wird auch von anderen Transportunternehmen wie den Appenzeller Bahnen oder der SOB genutzt. So können Reisende mit Einschränkungen ihre Wege planen, beispielsweise um Unterstützung durch Assistenz oder Shuttleservice anzufordern. Gleichzeitig dient die Karte auch dem SBB Contact Center in Brig, um gezielt Auskünfte zu geben. + image: /images/cases/amo-karte/amo1_1.png + - imagePosition: bottom + highlight: true + title: "Blick nach vorn: digitale Inklusion weiterdenken " + text: "Barrierefreie Karten sind ein wichtiger Schritt, um den öffentlichen + Verkehr für alle zugänglich zu machen. In Zukunft wollen wir die + Funktionalität weiter ausbauen, etwa mit zusätzlichen Informationen für + mobilitätseingeschränkte Reisende oder noch engerer Integration in + bestehende Apps und Services. Unser Ziel: digitale Inklusion für alle + Nutzer:innengruppen." + image: /images/cases/barrierefrei-und-karten-geht-das-ja-das-geht/adobestock_1521628631.jpeg + title: Inklusiv navigieren durch unsere barrierefreie Karte + lead: >- + *Mit Inkrafttreten des revidierten Schweizer + Behindertengleichstellungsgesetzes (BehiG) und der Verordnung über die + Barrierefreiheit der Angebote des öffentlichen Verkehrs (VböV) standen + öffentliche Stellen in der Schweiz vor einer grossen Aufgabe: Bis spätestens + 2024 mussten ihre digitalen Angebote barrierefrei sein, auch interaktive + Karten. Genau hier setzt unser Projekt mit der SBB an.* + + + ![](/images/cases/amo-karte/amo2_2.png) +--- diff --git a/content/cases/calculation-municipal-contributions-lucerne/index.en.md b/content/cases/calculation-municipal-contributions-lucerne/index.en.md index 17a431ed..323b5878 100644 --- a/content/cases/calculation-municipal-contributions-lucerne/index.en.md +++ b/content/cases/calculation-municipal-contributions-lucerne/index.en.md @@ -9,7 +9,7 @@ slug: calculation-municipal-contributions-lucerne gridImage: /images/cases/calculation-municipal-contributions-lucerne/bahnhofplatz_luzern.webp weight: 3 cover: /images/cases/calculation-municipal-contributions-lucerne/2023_linie10-e-bus-eveline-beerkircher.jpg -customer: Lucerne Transport Network VVL +customer: Verkehrsverbund Luzern VVL service: Automated timetable evaluation timeline: Since 2023 published: true diff --git a/content/cases/gb-karte/index.de.md b/content/cases/gb-karte/index.de.md new file mode 100644 index 00000000..e2eb010f --- /dev/null +++ b/content/cases/gb-karte/index.de.md @@ -0,0 +1,104 @@ +--- +title: Wo gilt welches ÖV-Abo? Unsere Lösung visualisiert es zuverlässig. + Schweizweit und automatisiert. +summary: Gemeinsam mit Alliance SwissPass haben wir eine vollautomatisierte + Kartenlösung entwickelt, die schweizweit die Geltungsbereiche von + ÖV-Abonnementen über sämtliche Linien und Verkehrsunternehmen präzise, aktuell + und bedienungsfreundlich visualisiert. +slug: gb-karte +gridWidthFull: true +customer: SBB CFF FFS +service: Automatisierte Kartenlösung, Datenintegration, UX/UI-Konzeption, + Responsives Frontend +timeline: laufend seit 2022 +published: true +content: + title: Schweizweit klar sehen mit der automatisierten Geltungsbereichskarte + lead: >- + + + + Gemeinsam mit Alliance SwissPass haben wir eine vollautomatisierte Kartenlösung entwickelt, die schweizweit die Geltungsbereiche von ÖV-Abonnementen über sämtliche Linien und Verkehrsunternehmen präzise, aktuell und bedienungsfreundlich visualisiert. + + + + + + ![](/images/cases/wo-gilt-welches-öv-abo-unsere-lösung-visualisiert-es-zuverlässig-schweizweit-und-automatisiert/gb_uebersicht-kopie.png) + sections: + - imagePosition: bottom + highlight: false + title: Von statischen PDFs zur dynamischen Karten + text: >- + + + + Als Vielpendler:in im öffentlichen Verkehr gehört das Generalabonnement (GA) für viele zur Reisealltagserleichterung. Doch gilt es wirklich überall? + + + Die SBB produziert seit mehr als 20 Jahren die sogenannten Geltungsbereichskarten in gedruckter Form oder als PDF. Der Wunsch, mehr Details auf den Karten abzubilden, war einer der Treiber für unser Projekt der digitalen Geltungsbereichskarten. Dazu kam, dass eine PDF-Karte den Ansprüchen an digitale Informationsvermittlung nicht mehr genügte. Der wichtigste Grund, warum die bisherigen Karten und die damit zusammenhängende manuelle Pflege der Inhalte abgelöst werden sollte, war die Tatsache, dass die Informationen zu den Geltungsbereichen in anderen Datenbanken bereits vorhanden waren, wo sie als Basis für die Tarifierung und die Billetverkäufe genutzt wurden, und wo daher bereits viel Energie in deren laufende Aktualisierung investiert wurde. + + + + image: "" + - imagePosition: bottom + highlight: false + title: NOVA-Daten als Fundament für eine neue Kartenlösung + text: >- + + + + Die Geltungsbereiche der verschiedenen Abonnemente stammen aus der Tarifdatenbank **NOVA**, die von der SBB im Auftrag des Bundesamts für Verkehr betrieben wird. Diese zentrale Datenbasis liefert alle relevanten Tarifinformationen – von nationalen Bahnstrecken bis zu regionalen Spezialverbindungen. GeOps nutzt diese Daten, um sie mithilfe eines eigenen Routing-Tools präzise auf das gesamte Schweizer ÖV-Netz zu projizieren. Die daraus entstehende Webkarte symbolisiert Geltungsbereiche farblich und macht sie interaktiv abfragbar. Eine intelligente Generalisierungslogik sorgt dafür, dass die Darstellung sowohl auf nationaler Ebene übersichtlich bleibt als auch lokal bis ins Detail hinein korrekt ist. + + + + - imagePosition: bottom + highlight: false + title: Datenintelligenz trifft Kartografie + text: >- + Damit die komplexen Abo-Gültigkeitsinformationen aus NOVA für alle + verständlich und nutzbar werden, verbindet geOps Datenkompetenz mit + präziser Kartografie. Herzstück ist unser topologisch korrektes + ÖV-Streckennetz mit detaillierten Linienverläufen und Haltestellen in + verschiedenen Generalisierungsstufen. Aus den in NOVA hinterlegten + Tarifkanten – definiert durch Start- und Endhaltestellen – erzeugen wir + mithilfe unserer eigens entwickelten Routing-Engine präzise + Linienführungen. Ergänzend kommen Heuristiken zum Einsatz, um + Sonderfälle wie unterschiedliche Stationsnummern, Flughafenbusse oder + grenzüberschreitende Verbindungen korrekt darzustellen. So können auch + Detailunterschiede, etwa im Jungfrauraum oder bei touristischen + Bergbahnen, zuverlässig abgebildet werden. Für besonders komplexe Fälle, + wie saisonale Sportbusse oder Richtungseinschränkungen auf dem Bodensee, + weist die Karte bewusst neutrale Darstellungen mit entsprechenden + Hinweisen aus. Das Ergebnis ist eine intelligente Verschmelzung von + Datenmodellierung und Kartengestaltung, die selbst komplizierte + Tarifszenarien übersichtlich visualisiert. Die Datenintegration und + Publikation als Vector Tiles ist mit Pipelines komplett automatisiert, + so dass sie mehrmals jährlich aktualisiert werden kann.  + + + ![](/images/cases/wo-gilt-welches-öv-abo-unsere-lösung-visualisiert-es-zuverlässig-schweizweit-und-automatisiert/gb1.webp "Die Geltungsbereichskarte der Jungfraubahnen veranschaulicht übersichtlich, wo das GA ganz, teilweise oder nicht gilt.") + image: "" + - imagePosition: bottom + highlight: true + title: "Blick nach vorn: Blick nach vorn: mehr Funktionen, mehr Abos, mehr + Klarheit" + text: >- + + + + Die Lösung ist produktiv im Einsatz und kann laufend um weitere Aboarten, Regionen oder Funktionen ergänzt werden. Sie schafft eine transparente Grundlage für Auskunfts- und Verkaufssysteme sowie für Endkund:innen. Gleichzeitig zeigt das Projekt, wie sich komplexe Datenstrukturen mit intelligenter Technologie und sorgfältiger Modellierung verständlich aufbereiten lassen. Das ist ein Ansatz, der auch für andere Märkte und Systeme übertragbar ist. Bei der SBB ist die Karte an mehreren Stellen in den [Webauftritt](https://www.sbb.ch/de/abos-billette/abonnemente/ga/ga-geltungsbereich.html) integriert. Im [Webkartenportal von Trafimage](https://maps.trafimage.ch/ch.sbb.geltungsbereiche) ist die Karte eigenständig verfügbar. Bei dieser Variante ist die Funktion zur Suche nach Haltestellen und anderen Orten besonders praktisch. Andere Transportunternehmen, die die Karte auf ihrer Website nutzten wollen, können dazu die [hier dokumentierte](https://jsdoc.maps.trafimage.ch/) Programmierschnittstelle verwenden.  + + + + image: /images/cases/wo-gilt-welches-öv-abo-unsere-lösung-visualisiert-es-zuverlässig-schweizweit-und-automatisiert/adobestock_867166537.jpeg +testimonialsOnTop: true +testimonials: + - name: Karin Fankhauser + position: Nationales Pricing + text: "*Ich schätze die kundenorientierte Zusammenarbeit. Unsere Anliegen werden + stets ernst genommen, zeitnah geprüft und abgeklärt sowie mit einem klaren + und lösungsorientierten Vorschlag beantwortet. Die Umsetzung erfolgt + unkompliziert und immer im Sinne des Bestellers.*" + portrait: "" +--- diff --git a/content/cases/gb-karte/index.en.md b/content/cases/gb-karte/index.en.md new file mode 100644 index 00000000..33aed125 --- /dev/null +++ b/content/cases/gb-karte/index.en.md @@ -0,0 +1,118 @@ +--- +title: Wo gilt welches ÖV-Abo? Unsere Lösung visualisiert es zuverlässig. + Schweizweit und automatisiert. +summary: Gemeinsam mit Alliance SwissPass haben wir eine vollautomatisierte + Kartenlösung entwickelt, die schweizweit die Geltungsbereiche von + ÖV-Abonnementen über sämtliche Linien und Verkehrsunternehmen präzise, aktuell + und bedienungsfreundlich visualisiert. +slug: gb-karte +gridImage: /images/cases/wo-gilt-welches-öv-abo-unsere-lösung-visualisiert-es-zuverlässig-schweizweit-und-automatisiert/gb-karte_grid.png +gridWidthFull: true +weight: 1 +cover: /images/cases/gb-karte/screenshot-2025-09-03-141917.png +customer: SBB CFF FFS +service: Automatisierte Kartenlösung, Datenintegration, UX/UI-Konzeption, + Responsives Frontend +timeline: laufend seit 2022 +published: true +content: + sections: + - imagePosition: bottom + highlight: false + title: Von statischen PDFs zur dynamischen Karten + text: >- + + + + Als Vielpendler:in im öffentlichen Verkehr gehört das Generalabonnement (GA) für viele zur Reisealltagserleichterung. Doch gilt es wirklich überall? + + + Die SBB produziert seit mehr als 20 Jahren die sogenannten Geltungsbereichskarten in gedruckter Form oder als PDF. Der Wunsch, mehr Details auf den Karten abzubilden, war einer der Treiber für unser Projekt der digitalen Geltungsbereichskarten. Dazu kam, dass eine PDF-Karte den Ansprüchen an digitale Informationsvermittlung nicht mehr genügte. Der wichtigste Grund, warum die bisherigen Karten und die damit zusammenhängende manuelle Pflege der Inhalte abgelöst werden sollte, war die Tatsache, dass die Informationen zu den Geltungsbereichen in anderen Datenbanken bereits vorhanden waren, wo sie als Basis für die Tarifierung und die Billetverkäufe genutzt wurden, und wo daher bereits viel Energie in deren laufende Aktualisierung investiert wurde. + + + + image: "" + - imagePosition: bottom + highlight: false + title: NOVA-Daten als Fundament für eine neue Kartenlösung + text: >- + + + + Die Geltungsbereiche der verschiedenen Abonnemente stammen aus der Tarifdatenbank **NOVA**, die von der SBB im Auftrag des Bundesamts für Verkehr betrieben wird. Diese zentrale Datenbasis liefert alle relevanten Tarifinformationen – von nationalen Bahnstrecken bis zu regionalen Spezialverbindungen. GeOps nutzt diese Daten, um sie mithilfe eines eigenen Routing-Tools präzise auf das gesamte Schweizer ÖV-Netz zu projizieren. Die daraus entstehende Webkarte symbolisiert Geltungsbereiche farblich und macht sie interaktiv abfragbar. Eine intelligente Generalisierungslogik sorgt dafür, dass die Darstellung sowohl auf nationaler Ebene übersichtlich bleibt als auch lokal bis ins Detail hinein korrekt ist. + + + + - imagePosition: bottom + highlight: false + title: Datenintelligenz trifft Kartografie + text: >- + Damit die komplexen Abo-Gültigkeitsinformationen aus NOVA für alle + verständlich und nutzbar werden, verbindet geOps Datenkompetenz mit + präziser Kartografie. Herzstück ist unser topologisch korrektes + ÖV-Streckennetz mit detaillierten Linienverläufen und Haltestellen in + verschiedenen Generalisierungsstufen. Aus den in NOVA hinterlegten + Tarifkanten – definiert durch Start- und Endhaltestellen – erzeugen wir + mithilfe unserer eigens entwickelten Routing-Engine präzise + Linienführungen. Ergänzend kommen Heuristiken zum Einsatz, um + Sonderfälle wie unterschiedliche Stationsnummern, Flughafenbusse oder + grenzüberschreitende Verbindungen korrekt darzustellen. So können auch + Detailunterschiede, etwa im Jungfrauraum oder bei touristischen + Bergbahnen, zuverlässig abgebildet werden. Für besonders komplexe Fälle, + wie saisonale Sportbusse oder Richtungseinschränkungen auf dem Bodensee, + weist die Karte bewusst neutrale Darstellungen mit entsprechenden + Hinweisen aus. Das Ergebnis ist eine intelligente Verschmelzung von + Datenmodellierung und Kartengestaltung, die selbst komplizierte + Tarifszenarien übersichtlich visualisiert. Die Datenintegration und + Publikation als Vector Tiles ist mit Pipelines komplett automatisiert, + so dass sie mehrmals jährlich aktualisiert werden kann.  + + + ![](/images/cases/wo-gilt-welches-öv-abo-unsere-lösung-visualisiert-es-zuverlässig-schweizweit-und-automatisiert/gb1.webp "Die Geltungsbereichskarte der Jungfraubahnen veranschaulicht übersichtlich, wo das GA ganz, teilweise oder nicht gilt.") + image: "" + - imagePosition: bottom + highlight: true + title: "Blick nach vorn: Blick nach vorn: mehr Funktionen, mehr Abos, mehr + Klarheit" + text: Die Lösung ist produktiv im Einsatz und kann laufend um weitere Aboarten, + Regionen oder Funktionen ergänzt werden. Sie schafft eine transparente + Grundlage für Auskunfts- und Verkaufssysteme sowie für Endkund:innen. + Gleichzeitig zeigt das Projekt, wie sich komplexe Datenstrukturen mit + intelligenter Technologie und sorgfältiger Modellierung verständlich + aufbereiten lassen. Das ist ein Ansatz, der auch für andere Märkte und + Systeme übertragbar ist. Bei der SBB ist die Karte an mehreren Stellen + in + den [Webauftritt](https://www.sbb.ch/de/abos-billette/abonnemente/ga/ga-geltungsbereich.html) integriert. + Im [Webkartenportal von + Trafimage](https://maps.trafimage.ch/ch.sbb.geltungsbereiche) ist die + Karte eigenständig verfügbar. Bei dieser Variante ist die Funktion zur + Suche nach Haltestellen und anderen Orten besonders praktisch. Andere + Transportunternehmen, die die Karte auf ihrer Website nutzten wollen, + können dazu die [hier + dokumentierte](https://jsdoc.maps.trafimage.ch/) Programmierschnittstelle + verwenden. + image: /images/cases/wo-gilt-welches-öv-abo-unsere-lösung-visualisiert-es-zuverlässig-schweizweit-und-automatisiert/adobestock_867166537.jpeg + title: Schweizweit klar sehen mit der automatisierten Geltungsbereichskarte + lead: >- + + + + Gemeinsam mit Alliance SwissPass haben wir eine vollautomatisierte Kartenlösung entwickelt, die schweizweit die Geltungsbereiche von ÖV-Abonnementen über sämtliche Linien und Verkehrsunternehmen präzise, aktuell und bedienungsfreundlich visualisiert. + + + + + + ![](/images/cases/wo-gilt-welches-öv-abo-unsere-lösung-visualisiert-es-zuverlässig-schweizweit-und-automatisiert/gb_uebersicht-kopie.png) +testimonialsOnTop: true +testimonials: + - name: Karin Fankhauser + position: Nationales Pricing + text: "*Ich schätze die kundenorientierte Zusammenarbeit. Unsere Anliegen werden + stets ernst genommen, zeitnah geprüft und abgeklärt sowie mit einem klaren + und lösungsorientierten Vorschlag beantwortet. Die Umsetzung erfolgt + unkompliziert und immer im Sinne des Bestellers.*" + portrait: "" +tags: + - maps +--- diff --git a/content/cases/insa/index.de.md b/content/cases/insa/index.de.md new file mode 100644 index 00000000..083cd293 --- /dev/null +++ b/content/cases/insa/index.de.md @@ -0,0 +1,90 @@ +--- +title: INSA – Indoor Station Application +summary: Mit INSA (Indoor Station Application) haben wir im Auftrag der SBB ein + leistungsfähiges Content-Management-System entwickelt, das die Ausstattung und + Angebote von Bahnhöfen verwaltbar macht und den Nutzenden eine Vielzahl an + intuitiv bedienbaren Funktionen bietet. +slug: insa +customer: SBB Real Estate +service: UX/UI basierend auf Design Vorgaben der SBB für eine intuitive + Bedienung des CMS, Entwicklung aller Funktionen unter Berücksichtigung der + Kundenanforderungen, Hosting und Wartung, Support über Ticketsystem +timeline: laufend seit 2022 +published: true +content: + title: "INSA: Bahnhöfe digital managen" + lead: >- + Mit INSA (Indoor Station Application) haben wir im Auftrag der SBB ein + leistungsfähiges Content-Management-System entwickelt, das die [Ausstattung + und Angebote von + Bahnhöfen](https://www.sbb.ch/de/reiseinformationen/bahnhoefe/bahnhof-finden/bahnhof-baselsbb.html) verwaltbar + macht und den Nutzenden eine Vielzahl an intuitiv bedienbaren Funktionen + bietet. + + + ![](/images/cases/insa-–-indoor-station-application/ihr-partner-für-smarte-mobilitätslösungen.png) + sections: + - imagePosition: bottom + highlight: false + title: Visualisierung im Bahnhofsalltag + text: INSA stellt für alle SBB-Bahnhöfe und auf für Stationen weiterer + Transportunternehmen eine zentrale Plattform bereit. Jeder Bahnhof + besitzt einen eigenen Bereich, indem Informationen wie Service- und + Shoppingangebote, Öffnungszeiten, Flächen, Zugänge oder Auf- und Abgänge + intuitiv gepflegt werden können. Über 2400 aktive Bearbeitende tragen so + zu einer stets aktuellen Datengrundlage bei. + - imagePosition: bottom + highlight: false + title: Weitreichende Datenintegration + text: >- + Herzstück von INSA ist + die [Karte](https://www.sbb.ch/de/reiseinformationen/bahnhoefe/bahnhof-finden/bahnhof-baselsbb.html), + in der Angebote, Fläche und Zugänge direkt verortet werden können. Die + Daten fliessen nahtlos in zahlreiche Anwendungen ein: Sie bilden die + Grundlage der Basiskarte in der SBB Mobile App, + auf [sbb.ch](https://www.sbb.ch/de), im [Trafimage + Webkartenportal](https://maps.trafimage.ch/ch.sbb.netzkarte?baselayers=ch.sbb.netzkarte,ch.sbb.netzkarte.dark,ch.sbb.netzkarte.luftbild.group,ch.sbb.netzkarte.landeskarte,ch.sbb.netzkarte.landeskarte.grau&layers=ch.sbb.geschosse2D&lang=de&x=925472&y=5920000&z=9) und + auch in [mapset](https://www.mapset.ch/de). Informationen wie + Öffnungszeiten und Bilden können dank Schnittstellen direkt auf der + SBB-Webseite ausgespielt werden. Zudem sind die INSA-Daten die Basis für + das Fussgänger-Routing in Bahnhöfen, was ein echter Mehrwert für + Reisende bietet. + + + Der Schwerpunkt von INSA liegt auf Informationen im und um den Bahnhof, die für Reisende relevant sind. Nebst allen SBB Bahnhöfen sind auch die Stationen weiterer Transportunternehmen in der Schweiz in INSA enthalten. Jedem Bahnhof ist in INSA ein eigener Bereich gewidmet, in welchem die Autoren Einträge erfassen und verändern können. Dazu gehören Service- und Shoppingangebote, Öffnungszeiten, Flächen, Zugänge sowie Auf- und Abgänge und Halteorte. + image: /images/cases/insa-–-indoor-station-application/screenshot-2025-09-03-130651.png + - imagePosition: right + highlight: false + title: Mehrwert für Reisende und Betreiber + text: >- + Ein durchdachtes Rollenkonzept sorgt für klare Zuständigkeiten: Während + übergeordnete Aufgaben von einem kleinen Nutzerkreis erledigt werden, + liegt die laufende Pflege der Bahnhofsinformationen in den Händen der + lokalen Verantwortlichkeiten. So wir die Qualität der Daten gesichert, + ohne den administrativen Aufwand unnötig zu erhöhen. + + + Für Reisende bedeutet INSA aktuelle und verlässliche Informationen direkt auf dem Smartphone, am Terminal oder auf der Webseite, von Öffnungszeiten bis zu Zugängen. Für Betreiber ist die Lösung ein effizientes Werkzeug, das Daten zentral zentral erfasst und in verschiedene Kanäle ausspielt, ohne Mehrfachpflege. Damit werden sowohl die Nutzerfreundlichkeit als auch die Betriebseffizienz spürbar gesteigert. + image: /images/cases/insa-–-indoor-station-application/2.png + - imagePosition: bottom + highlight: true + title: "Blick nach vorn: Bahnhöfe intelligent vernetzen" + text: INSA wird laufend weiterentwickelt und an die sich ändernden Bedürfnisse + der Reisenden angepasst. Zukünftig sollen noch mehr Funktionen + integriert werden, von erweiterten Routing-Optionen bis hin zu + zusätzlichen Services rund um den Bahnhof. Ziel bleibt es, Bahnhöfe + nicht nur digital abzubilden, sondern sie intelligent mit den + Bedürfnissen der Nutzer:innen zu vernetzen. +testimonialsOnTop: true +testimonials: + - name: Dominik Mosimann + position: SBB (2025) + text: "*Wir schätzen die langjährige und konstruktive Zusammenarbeit sowie die + schnelle Reaktionszeit und Flexibilität der geOps AG. Die zuständigen + Personen denken mit und hinterfragen die gewünschten Anforderungen und + deren Umsetzung auf eine lösungsorientierte Weise. Dadurch arbeiten wir + täglich mit qualitativ hochwertigen Produkten von geOps. Die Betreuung ist + stets verlässlich und die Zusammenarbeit ist in allen Belangen angenehm + und unkompliziert.*" + portrait: /images/cases/insa-–-indoor-station-application/divers-leinwände-querformat-.png +--- diff --git a/content/cases/insa/index.en.md b/content/cases/insa/index.en.md new file mode 100644 index 00000000..c9342449 --- /dev/null +++ b/content/cases/insa/index.en.md @@ -0,0 +1,92 @@ +--- +title: INSA – Indoor Station Application +summary: Mit INSA (Indoor Station Application) haben wir im Auftrag der SBB ein + leistungsfähiges Content-Management-System entwickelt, das die Ausstattung und + Angebote von Bahnhöfen verwaltbar macht und den Nutzenden eine Vielzahl an + intuitiv bedienbaren Funktionen bietet. +slug: insa +gridImage: /images/cases/insa-–-indoor-station-application/insa_grid.png +cover: /images/cases/insa-–-indoor-station-application/image-2025-8-21_15-3-16.png +customer: SBB Real Estate +service: UX/UI basierend auf Design Vorgaben der SBB für eine intuitive + Bedienung des CMS, Entwicklung aller Funktionen unter Berücksichtigung der + Kundenanforderungen, Hosting und Wartung, Support über Ticketsystem +timeline: laufend seit 2022 +published: true +content: + sections: + - imagePosition: bottom + highlight: false + title: Visualisierung im Bahnhofsalltag + text: INSA stellt für alle SBB-Bahnhöfe und auf für Stationen weiterer + Transportunternehmen eine zentrale Plattform bereit. Jeder Bahnhof + besitzt einen eigenen Bereich, indem Informationen wie Service- und + Shoppingangebote, Öffnungszeiten, Flächen, Zugänge oder Auf- und Abgänge + intuitiv gepflegt werden können. Über 2400 aktive Bearbeitende tragen so + zu einer stets aktuellen Datengrundlage bei. + - imagePosition: bottom + highlight: false + title: Weitreichende Datenintegration + text: >- + Herzstück von INSA ist + die [Karte](https://www.sbb.ch/de/reiseinformationen/bahnhoefe/bahnhof-finden/bahnhof-baselsbb.html), + in der Angebote, Fläche und Zugänge direkt verortet werden können. Die + Daten fliessen nahtlos in zahlreiche Anwendungen ein: Sie bilden die + Grundlage der Basiskarte in der SBB Mobile App, + auf [sbb.ch](https://www.sbb.ch/de), im [Trafimage + Webkartenportal](https://maps.trafimage.ch/ch.sbb.netzkarte?baselayers=ch.sbb.netzkarte,ch.sbb.netzkarte.dark,ch.sbb.netzkarte.luftbild.group,ch.sbb.netzkarte.landeskarte,ch.sbb.netzkarte.landeskarte.grau&layers=ch.sbb.geschosse2D&lang=de&x=925472&y=5920000&z=9) und + auch in [mapset](https://www.mapset.ch/de). Informationen wie + Öffnungszeiten und Bilden können dank Schnittstellen direkt auf der + SBB-Webseite ausgespielt werden. Zudem sind die INSA-Daten die Basis für + das Fussgänger-Routing in Bahnhöfen, was ein echter Mehrwert für + Reisende bietet. + + + Der Schwerpunkt von INSA liegt auf Informationen im und um den Bahnhof, die für Reisende relevant sind. Nebst allen SBB Bahnhöfen sind auch die Stationen weiterer Transportunternehmen in der Schweiz in INSA enthalten. Jedem Bahnhof ist in INSA ein eigener Bereich gewidmet, in welchem die Autoren Einträge erfassen und verändern können. Dazu gehören Service- und Shoppingangebote, Öffnungszeiten, Flächen, Zugänge sowie Auf- und Abgänge und Halteorte. + image: /images/cases/insa-–-indoor-station-application/screenshot-2025-09-03-130651.png + - imagePosition: right + highlight: false + title: Mehrwert für Reisende und Betreiber + text: >- + Ein durchdachtes Rollenkonzept sorgt für klare Zuständigkeiten: Während + übergeordnete Aufgaben von einem kleinen Nutzerkreis erledigt werden, + liegt die laufende Pflege der Bahnhofsinformationen in den Händen der + lokalen Verantwortlichkeiten. So wir die Qualität der Daten gesichert, + ohne den administrativen Aufwand unnötig zu erhöhen. + + + Für Reisende bedeutet INSA aktuelle und verlässliche Informationen direkt auf dem Smartphone, am Terminal oder auf der Webseite, von Öffnungszeiten bis zu Zugängen. Für Betreiber ist die Lösung ein effizientes Werkzeug, das Daten zentral zentral erfasst und in verschiedene Kanäle ausspielt, ohne Mehrfachpflege. Damit werden sowohl die Nutzerfreundlichkeit als auch die Betriebseffizienz spürbar gesteigert. + image: /images/cases/insa-–-indoor-station-application/2.png + - imagePosition: bottom + highlight: true + title: "Blick nach vorn: Bahnhöfe intelligent vernetzen" + text: INSA wird laufend weiterentwickelt und an die sich ändernden Bedürfnisse + der Reisenden angepasst. Zukünftig sollen noch mehr Funktionen + integriert werden, von erweiterten Routing-Optionen bis hin zu + zusätzlichen Services rund um den Bahnhof. Ziel bleibt es, Bahnhöfe + nicht nur digital abzubilden, sondern sie intelligent mit den + Bedürfnissen der Nutzer:innen zu vernetzen. + title: "INSA: Bahnhöfe digital managen" + lead: >- + Mit INSA (Indoor Station Application) haben wir im Auftrag der SBB ein + leistungsfähiges Content-Management-System entwickelt, das die [Ausstattung + und Angebote von + Bahnhöfen](https://www.sbb.ch/de/reiseinformationen/bahnhoefe/bahnhof-finden/bahnhof-baselsbb.html) verwaltbar + macht und den Nutzenden eine Vielzahl an intuitiv bedienbaren Funktionen + bietet. + + + ![](/images/cases/insa-–-indoor-station-application/ihr-partner-für-smarte-mobilitätslösungen.png) +testimonialsOnTop: true +testimonials: + - name: Dominik Mosimann + position: SBB (2025) + text: "*Wir schätzen die langjährige und konstruktive Zusammenarbeit sowie die + schnelle Reaktionszeit und Flexibilität der geOps AG. Die zuständigen + Personen denken mit und hinterfragen die gewünschten Anforderungen und + deren Umsetzung auf eine lösungsorientierte Weise. Dadurch arbeiten wir + täglich mit qualitativ hochwertigen Produkten von geOps. Die Betreuung ist + stets verlässlich und die Zusammenarbeit ist in allen Belangen angenehm + und unkompliziert.*" + portrait: /images/cases/insa-–-indoor-station-application/divers-leinwände-querformat-.png +--- diff --git a/content/cases/international-connections/index.de.md b/content/cases/international-connections/index.de.md index 6aa7f9ae..ef9cbe35 100644 --- a/content/cases/international-connections/index.de.md +++ b/content/cases/international-connections/index.de.md @@ -1,21 +1,92 @@ --- -title: Internationale Verbindungen -summary: "Ein Städtetrip nach Venedig oder ein wichtiges Businessmeeting in - Berlin? Viele europäische Ziele sind von der Schweiz aus bequem und - umweltfreundlich per Zug erreichbar. " +title: "Direktverbindungen nach Europa: ein interaktiver Liniennetzplan " +summary: Ein Städtetrip nach Venedig oder ein wichtiges Businessmeeting in + Berlin? Ab verschiedenen Schweizer Bahnhöfen bestehen direkte Tag- und + Nachtverbindungen in europäische Grossstädte. Der Trend umweltbewusster zu + reisen und auch auf längeren Strecken den Zug zu wählen, weckte bei der SBB + das Bedürfnis nach einer Übersichtskarte über die direkten Zugverbindungen zu + europäischen Destinationen. Mit unserem Liniennetzplan «Direktverbindungen + nach Europa» zeigt die SBB ihren Kund:innen auf der Website nun alle wichtigen + internationalen Verbindungen auf einen Blick. slug: internationale-verbindungen -gridWidthFull: false -customer: Schweizerische Bundesbahnen SBB, Internationaler Personenverkehr +gridWidthFull: true +customer: SBB CFF FFS service: Datenerfassung, Automatisierte Berechnung von Liniennetzplänen, Kartenveröffentlichung, UX/UI-Konzeption, Frontend +timeline: 2023 – 2024 published: true content: - title: "Europa auf einen Blick: unser Liniennetzplan für Bahnreisende" - lead: Ein Städtetrip nach Venedig oder ein wichtiges Businessmeeting in Berlin? - Viele europäische Ziele sind von der Schweiz aus bequem und umweltfreundlich - per Zug erreichbar. Ab verschiedenen Schweizer Bahnhöfen bestehen direkte - Tag- und Nachtverbindungen in zahlreiche Metropolen. Unsere - Karte [«Direktverbindungen nach - Europa»](https://www.sbb.ch/de/freizeit-ferien/destinationen/staedte-laender-europa.html) für - die SBB bildet das mit einem Liniennetzplan visuell ansprechend ab. + title: "Europa auf einen Blick: unser Liniennetzplan für Direktverbindungen" + lead: >- + Ein Städtetrip nach Venedig oder ein wichtiges Businessmeeting in Berlin? Ab + verschiedenen Schweizer Bahnhöfen bestehen direkte Tag- und + Nachtverbindungen in europäische Grossstädte. Der Trend umweltbewusster zu + reisen und auch auf längeren Strecken den Zug zu wählen, weckte bei der SBB + das Bedürfnis nach einer Übersichtskarte über die direkten Zugverbindungen + zu europäischen Destinationen. Mit unserem Liniennetzplan + [«Direktverbindungen nach + Europa»](https://www.sbb.ch/de/freizeit-ferien/destinationen/staedte-laender-europa.html) + zeigt die SBB ihren Kund:innen auf der Website nun alle wichtigen + internationalen Verbindungen auf einen Blick. + + +