Skip to content

andyholiday/ShipTrip

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

47 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ShipTrip ๐Ÿšข

Eine iOS-App zum Verwalten und Dokumentieren von Kreuzfahrt-Reisen.

Swift iOS SwiftUI SwiftData Version

๐Ÿ“‹ Changelog | ๐Ÿ“– Dokumentation

โœจ Features

Kreuzfahrten verwalten

  • ๐Ÿ“‹ Kreuzfahrten mit allen Details erfassen (Schiff, Reederei, Kabine, Buchungsnummer)
  • ๐Ÿ—บ๏ธ Interaktive Karte mit Routen-Visualisierung
  • ๐Ÿ“ธ Fotos zu jeder Reise hinzufรผgen
  • โญ Bewertungssystem
  • ๐ŸŒŠ Seetage erfassen

KI-gestรผtzter Import

  • ๐Ÿค– Gemini 2.5 Flash Integration - Buchungsbestรคtigungen per KI analysieren
  • Automatische Extraktion von:
    • Reisedaten (Titel, Datum, Schiff, Reederei)
    • Hรคfen mit Ankunfts-/Abfahrtszeiten
    • Seetage

๐Ÿ›ณ๏ธ ~1.900 Hรคfen weltweit

  • ๐ŸŒ Europa, Karibik, Asien, Ozeanien, Afrika, VAE/Oman
  • Autocomplete bei der Hafen-Suche
  • Automatische Koordinaten-Zuordnung

Statistiken

  • ๐Ÿ“Š Kreuzfahrten pro Jahr
  • ๐Ÿ’ฐ Ausgaben nach Kategorie
  • ๐Ÿ† Top Reedereien
  • Besuchte Lรคnder & Hรคfen

Weitere Features

  • ๐Ÿ’ธ Ausgaben-Tracking (Gerรคte-Locale-Wรคhrung, kein hartkodiertes EUR)
  • ๐Ÿ’พ Export/Import als ZIP (verlustfrei, inkl. Reise- und Hafenbilder)
  • ๐Ÿ”” Lokale Erinnerungen vor Reisestart (keine Push-Notifications/APNs)
  • ๐ŸŽจ Dark Mode Support
  • ๐Ÿ“ฑ Natives iOS-Design

๐Ÿ› ๏ธ Technologie-Stack

Komponente Technologie
Sprache Swift 6
UI Framework SwiftUI
Datenbank SwiftData
Karten MapKit
Charts Swift Charts
AI Google Gemini 2.5 Flash
Sicherheit Keychain Services (Generic Password, gerรคte-gebunden)
Notifications UserNotifications (lokal)

๐Ÿ“ Projektstruktur

ShipTrip/
โ”œโ”€โ”€ ShipTripApp.swift              # App Entry Point (kein separater App/-Ordner)
โ”œโ”€โ”€ Models/
โ”‚   โ”œโ”€โ”€ Cruise.swift                # Kreuzfahrt-Model
โ”‚   โ”œโ”€โ”€ Port.swift                  # Hafen-Model
โ”‚   โ”œโ”€โ”€ Expense.swift               # Ausgaben-Model
โ”‚   โ”œโ”€โ”€ Deal.swift                  # Angebote-Model
โ”‚   โ”œโ”€โ”€ Photo.swift                 # Foto-Model
โ”‚   โ”œโ”€โ”€ ShippingLine.swift          # Reederei-Daten
โ”‚   โ””โ”€โ”€ PortSuggestion.swift        # ~1.900 Hafen-Datenbank (Wikidata-Import)
โ”œโ”€โ”€ Views/
โ”‚   โ”œโ”€โ”€ Cruises/                    # Liste, Detail, Formulare, Hero-Card, Timeline
โ”‚   โ”œโ”€โ”€ Map/                        # MapView.swift โ€” Weltkarte mit Routen
โ”‚   โ”œโ”€โ”€ Deals/                      # DealsView.swift โ€” Wunschreisen
โ”‚   โ”œโ”€โ”€ Stats/                      # StatsView.swift โ€” Statistiken
โ”‚   โ””โ”€โ”€ Settings/                   # SettingsView.swift โ€” Einstellungen, Export/Import
โ”œโ”€โ”€ Services/
โ”‚   โ”œโ”€โ”€ GeminiService.swift         # KI-Integration
โ”‚   โ”œโ”€โ”€ KeychainService.swift       # Sichere Speicherung des API-Keys
โ”‚   โ”œโ”€โ”€ NotificationService.swift   # Lokale Erinnerungen (kein APNs)
โ”‚   โ”œโ”€โ”€ ExportImportService.swift   # ZIP-/JSON-Export/-Import
โ”‚   โ”œโ”€โ”€ ZipArchiveWriter.swift      # ZIP-Erstellung (STORED)
โ”‚   โ”œโ”€โ”€ ZipArchiveReader.swift      # ZIP-Extraktion (Zip-Slip-/Bomben-Schutz)
โ”‚   โ””โ”€โ”€ CRC32.swift                 # CRC-32 fรผr den ZIP-Stack
โ””โ”€โ”€ Assets.xcassets/                # App Icon & Assets

Vollstรคndige Architektur- und API-Doku: docs/ARCHITECTURE.md, docs/API.md.

๐Ÿ“š Dokumentation

Dokument Beschreibung
Setup Guide Installation & Einrichtung
Architektur Technische Architektur
Datenmodelle SwiftData Models
API Integration Gemini, Keychain, Notifications
Contributing Beitragsrichtlinien
Changelog Versionshistorie

๐Ÿš€ Installation

Voraussetzungen

  • Xcode 26.5+
  • iOS 18.5+ Simulator oder Gerรคt
  • Apple Developer Account (fรผr Gerรคt-Tests)

Schritte

  1. Repository klonen

    git clone https://github.com/DEIN-USERNAME/ShipTrip.git
    cd ShipTrip
  2. Projekt รถffnen

    open ShipTrip.xcodeproj
  3. Gemini API Key einrichten (optional, fรผr KI-Features)

    • Google AI Studio รถffnen
    • API Key erstellen
    • In der App unter Einstellungen โ†’ API Key eingeben
  4. Bauen & Starten

    • โŒ˜B zum Bauen
    • โŒ˜R zum Starten

๐Ÿ“ธ Screenshots

Kommt bald

๐Ÿ”ฎ Roadmap

Umgesetzt โœ…

  • Kreuzfahrten verwalten
  • Karten-Integration
  • KI-Import
  • Statistiken
  • ~1.900 Hรคfen (Wikidata Import)
  • Export/Import als ZIP (verlustfrei, inkl. Bilder)

Geplant

  • CloudKit Sync (Datenmodell teilweise vorbereitet, aber noch nicht konform/aktiv โ€” siehe ADR-002)
  • Hafen-Bilder + KI-Generierung
  • Wetter-API Integration
  • Auto-Import von Reederei-Angeboten

๐Ÿค Contributing

Contributions sind willkommen! Bitte erst ein Issue erstellen, bevor du einen PR einreichst.

๐Ÿ“„ Lizenz

MIT License - siehe LICENSE fรผr Details.

๐Ÿ‘จโ€๐Ÿ’ป Autor

Entwickelt mit โค๏ธ und ๐Ÿค– AI-Unterstรผtzung.


Made for cruise lovers ๐Ÿšข

About

๐Ÿšข iOS App zum Verwalten und Dokumentieren von Kreuzfahrt-Reisen. SwiftUI + SwiftData + Gemini AI fรผr Buchungs-Import.

Topics

Resources

License

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors