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 beforeData 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.