About This Project

Place Management System - SvelteKit Migration

This is a modern SvelteKit migration of the py4web Place Management System, providing a comprehensive solution for storing, searching, and managing geographical places with advanced search capabilities and a modern web interface.

Architecture

Modern Stack

  • Frontend: SvelteKit 2 with Svelte 5 (modern runes syntax)
  • Styling: Tailwind CSS 4
  • Backend: SvelteKit server routes with TypeScript
  • Database: PostgreSQL (shared with py4web app)
  • Authentication: JWT-based sessions, compatible with py4web

Core Features

🔍 Advanced Search

  • Complex query parser with field-specific searches
  • Boolean logic with OR operations
  • Multiple search fields (name, address, country, type, etc.)
  • Date-based searches with relative filters
  • Sub-30ms query execution times

📍 Geographic Data

  • Coordinate storage (latitude/longitude)
  • Google Plus Code generation
  • What3Words integration
  • Address geocoding
  • Google Maps links

🏗️ CRUD Operations

  • Create, Read, Update, Delete places
  • Form validation
  • Data preservation on errors
  • Secure operations

🎨 Modern UI

  • Responsive design
  • Card-based layouts
  • Interactive elements
  • Loading states
  • Mobile-friendly

Search Examples

Place Searches:

# Find specific airports
p:(MXP || VCE || MUC)

# Search by location
country:Italy address:Milano

# Mixed criteria
type:airport country:(Italy || Germany)

Date Searches:

# Exact date
d:2025-10-17

# Date components
yy:>2022 mm:9 dd:30

# Relative dates
d:2025-10-17 years:-1        # 1 year ago
d:2025-10-17 months:+3       # 3 months ahead
d:2025-10-17 days:-10        # 10 days before

Data Models

Memo

Main memo entries with date, title, body, people, vehicle, and weight tracking

Place

Geographic places with coordinates, addresses, contact info, and ratings

Memo-Place Junction

Links memos to places with actions (stay, check-in, check-out, visit, etc.)

Key Improvements Over py4web

  • Modern TypeScript codebase with full type safety
  • Improved performance with optimized queries
  • Better UX with reactive UI updates
  • Enhanced mobile responsiveness
  • Cleaner separation of concerns
  • Modern authentication with JWT
  • Shared database for seamless integration

Technical Details

Framework:
SvelteKit 2.x with Svelte 5
Runtime:
Bun (modern JavaScript runtime)
Database:
PostgreSQL with pg driver
Authentication:
JWT with pbkdf2_sha512 password hashing
Development Server:
Vite with HMR (Hot Module Replacement)

Recent Updates

October 2025 - SvelteKit Migration

  • Complete migration from py4web to SvelteKit
  • Modern UI with Tailwind CSS 4
  • JWT-based authentication system
  • TypeScript throughout for type safety

October 2025 - Memo Place & Navigation

  • Auto check-out for hotel stays
  • Smart date navigation
  • Enhanced search detection

December 2025 - Relative Date Filters

  • Search for dates relative to a base date
  • Support for years, months, weeks, days
  • Cumulative filter support

Status

✅ Active Development

This project is actively maintained and continuously improved. The migration to SvelteKit brings modern web development practices while maintaining full compatibility with the existing py4web database and user base.