Add environment variable configuration to support deployment on custom
domains like https://awards.dj7nt.de
## Changes
- Add .env.example with configuration template
- Update API client to use VITE_API_BASE_URL with fallback to /api
- Update SvelteKit config to use VITE_APP_URL for CSRF trusted origins
- Update backend CORS to use configurable allowed origins
- Add ALLOWED_ORIGINS environment variable for production
- Add build and preview scripts to package.json
- Update README with production deployment guide and nginx example
## Environment Variables
- VITE_APP_URL: Application hostname (e.g., https://awards.dj7nt.de)
- VITE_API_BASE_URL: API base URL (empty = relative paths)
- ALLOWED_ORIGINS: Comma-separated CORS origins
- JWT_SECRET: Strong secret for production
- NODE_ENV: development/production
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Configure SvelteKit dev server to proxy API requests to Elysia backend,
allowing users to access the application on a single port (5173).
## Changes
- Add proxy config to vite.config.js for /api requests
- Update API client to use relative URLs (/api)
- Add convenience 'dev' script to start both servers
- Update README with single-port instructions
- Add architecture section explaining proxy setup
Benefits:
- Single port to access (5173)
- HMR still works for frontend
- No CORS issues
- Backend runs hidden on port 3001
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
## Backend
- Add Pino logging framework with timestamps and structured output
- Replace all console.error statements (49+) with proper logging levels
- Fix Drizzle ORM bug: replace invalid .get() calls with .limit(1)
- Remove unused auth routes file (already in index.js)
- Make internal functions private (remove unnecessary exports)
- Simplify code by removing excessive debug logging
## Frontend
- Add navigation bar to layout with:
- User's callsign display
- Navigation links (Dashboard, QSOs, Settings)
- Logout button with red color distinction
- Navigation only shows when user is logged in
- Dark themed design matching footer
## Documentation
- Update README.md with new project structure
- Update docs/DOCUMENTATION.md with logging and nav bar info
- Add logger.js to configuration section
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Describe project purpose and features
- Document tech stack (Bun, Elysia, SvelteKit, SQLite, Drizzle)
- Add project structure overview
- Include setup and installation instructions
- Document all API endpoints
- Include database schema for all tables
- Explain background job queue system
- Document LoTW sync logic and pagination features
- Add development commands
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>