The current system is built with:
Backend: Python / FastAPI
Frontend: HTML / CSS / JavaScript
Database: Supabase / PostgreSQL
Desktop: Windows application packaged with PyInstaller
I need an experienced developer to improve the system's performance and add reliable offline functionality while keeping Supabase as the only database.
Requirements
1. Offline Support
The application should continue working when the internet connection is temporarily unavailable.
The system should be able to handle:
Creating bookings
Editing bookings
Check-in
Finish
Cancel booking
Delete booking
Queue number management
Searching and viewing existing data
When there is no internet connection, operations should be stored safely and synchronized with Supabase automatically when the connection is restored.
Important: I do NOT want SQLite or another local database as the main database. Supabase must remain the only database/source of truth.
A suitable local temporary/pending-data mechanism can be used only for handling offline operations.
2. Automatic Synchronization
When the internet returns:
Automatically detect the connection.
Synchronize pending operations with Supabase.
Prevent duplicate records.
Retry failed synchronization safely.
Do not lose data if the application is closed or Windows restarts during synchronization.
Handle conflicts safely.
3. Performance Optimization
The application currently takes too long to start and load data.
I need:
Faster application startup.
The application should not wait for Supabase before opening.
Optimize Supabase queries.
Avoid loading the entire bookings table unnecessarily.
Load only the required/current data.
Run synchronization in the background.
Reduce unnecessary API/database requests.
4. Existing JSON Backup
The current application has:
backups/latest_backup.json
Keep it as an additional backup mechanism.
Improve it so that:
Existing data is preserved.
It does not recreate the entire file unnecessarily after every operation.
Changed/new records are updated efficiently.
The file remains valid and UTF-8.
Use safe/atomic file writing to prevent corruption.
Existing monthly archive functionality must remain working.
5. UI
Change the current purple theme/accent color to blue while keeping the existing design and functionality.
Important
Do not rebuild the application from scratch.
Work on the existing codebase.
Do not delete existing Supabase data.
Do not change the existing database unnecessarily.
Preserve the current booking, grouping, queue, check-in, finish, cancellation, reporting, and backup functionality.
Keep compatibility with the current Windows .exe deployment.
No Arabic/emoji console output that could cause Windows charmap encoding errors.