diff --git a/.gitignore b/.gitignore index b92c212a..5294961a 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ signature.bin # generated during `npm run build` sw_scripts-combined.js *.pem +tsconfig.node.tsbuildinfo verified.txt myenv @@ -40,19 +41,15 @@ pnpm-debug.log* playwright-tests dist-electron-packages .ruby-version -+.env # Test files generated by scripts test-ios.js & test-android.js .generated/ -.env.default vendor/ -# Build logs build_logs/ # PWA icon files generated by capacitor-assets icons - -android/app/src/main/res/ \ No newline at end of file +android/app/src/main/res/ diff --git a/README.md b/README.md index d673c279..711f8818 100644 --- a/README.md +++ b/README.md @@ -3,49 +3,22 @@ [Time Safari](https://timesafari.org/) allows people to ease into collaboration: start with expressions of gratitude and expand to crowd-fund with time & money, then record and see the impact of contributions. -## Database Migration Status - -**Current Status**: The application is undergoing a migration from Dexie (IndexedDB) to SQLite using absurd-sql. This migration is in **Phase 2** with a well-defined migration fence in place. - -### Migration Progress -- ✅ **SQLite Database Service**: Fully implemented with absurd-sql -- ✅ **Platform Service Layer**: Unified database interface across platforms -- ✅ **Settings Migration**: Core user settings transferred -- ✅ **Account Migration**: Identity and key management -- 🔄 **Contact Migration**: User contact data (via import interface) -- 📋 **Code Cleanup**: Remove unused Dexie imports - -### Migration Fence -The migration is controlled by a **migration fence** that separates legacy Dexie code from the new SQLite implementation. See [Migration Fence Definition](doc/migration-fence-definition.md) for complete details. - -**Key Points**: -- Legacy Dexie database is disabled by default (`USE_DEXIE_DB = false`) -- All database operations go through `PlatformService` -- Migration tools provide controlled access to both databases -- Clear separation between legacy and new code - -### Migration Documentation -- [Migration Guide](doc/migration-to-wa-sqlite.md) - Complete migration process -- [Migration Fence Definition](doc/migration-fence-definition.md) - Fence boundaries and rules -- [Database Migration Guide](doc/database-migration-guide.md) - User-facing migration tools - ## Roadmap -See [project.task.yaml](project.task.yaml) for current priorities. -(Numbers at the beginning of lines are estimated hours. See [taskyaml.org](https://taskyaml.org/) for details.) +See [ClickUp](https://sharing.clickup.com/9014278710/l/h/8cmnyhp-174/10573fec74e2ba0) for current priorities. ## Setup & Building Quick start: -* For setup, we recommend [pkgx](https://pkgx.dev), which installs what you need (either automatically or with the `dev` command). Core dependencies are typescript & npm; when building for other platforms, you'll need other things such as those in the pkgx.yaml & BUILDING.md files. +* For setup, we recommend [pkgx](https://pkgx.dev), which installs what you need (either automatically or with the `dev` command). Core dependencies are typescript & npm; when building for other platforms, you'll need other things such as those in the pkgx.yaml & doc/BUILDING.md files. ```bash npm install npm run dev ``` -See [BUILDING.md](BUILDING.md) for more details. +See [BUILDING.md](doc/BUILDING.md) for more details. ## Tests @@ -97,9 +70,6 @@ The application uses a platform-agnostic database layer: **Development Guidelines**: - Always use `PlatformService` for database operations -- Never import Dexie directly in application code -- Test with `USE_DEXIE_DB = false` for new features -- Use migration tools for data transfer between systems ### Kudos diff --git a/BUILDING.md b/doc/BUILDING.md similarity index 99% rename from BUILDING.md rename to doc/BUILDING.md index 04531f01..393a6f20 100644 --- a/BUILDING.md +++ b/doc/BUILDING.md @@ -11,17 +11,6 @@ For a quick dev environment setup, use [pkgx](https://pkgx.dev). - Git - For desktop builds: Additional build tools based on your OS -## Forks - -If you have forked this to make your own app, you'll want to customize the iOS & Android files. You can either edit existing ones, or you can remove the `ios` and `android` directories and regenerate them before the `npx cap sync` step in each setup. - - ```bash - npx cap add android - npx cap add ios - ``` - -You'll also want to edit the deep link configuration (see below). - ## Initial Setup Install dependencies: @@ -479,3 +468,12 @@ You must add the following intent filter to the `android/app/src/main/AndroidMan ``` ... though when we tried that most recently it failed to 'build' the APK with: http(s) scheme and host attribute are missing, but are required for Android App Links [AppLinkUrlError] + +## Forks + +If you have forked this to make your own app, you'll want to customize the iOS & Android files. You can either edit existing ones, or you can remove the `ios` and `android` directories and regenerate them before the `npx cap sync` step in each setup. + + ```bash + npx cap add android + npx cap add ios + ``` diff --git a/doc/database-migration-guide.md b/doc/database-migration-guide.md index fe17287e..179e1fda 100644 --- a/doc/database-migration-guide.md +++ b/doc/database-migration-guide.md @@ -27,6 +27,32 @@ The Database Migration feature allows you to compare and migrate data between De - Clear success and error messaging - Export functionality for comparison data +## Database Migration Status + +**Current Status**: The application is undergoing a migration from Dexie (IndexedDB) to SQLite using absurd-sql. This migration is in **Phase 2** with a well-defined migration fence in place. + +### Migration Progress +- ✅ **SQLite Database Service**: Fully implemented with absurd-sql +- ✅ **Platform Service Layer**: Unified database interface across platforms +- ✅ **Settings Migration**: Core user settings transferred +- ✅ **Account Migration**: Identity and key management +- 🔄 **Contact Migration**: User contact data (via import interface) +- 📋 **Code Cleanup**: Remove unused Dexie imports + +### Migration Fence +The migration is controlled by a **migration fence** that separates legacy Dexie code from the new SQLite implementation. See [Migration Fence Definition](doc/migration-fence-definition.md) for complete details. + +**Key Points**: +- Legacy Dexie database is disabled by default (`USE_DEXIE_DB = false`) +- All database operations go through `PlatformService` +- Migration tools provide controlled access to both databases +- Clear separation between legacy and new code + +### Migration Documentation +- [Migration Guide](doc/migration-to-wa-sqlite.md) - Complete migration process +- [Migration Fence Definition](doc/migration-fence-definition.md) - Fence boundaries and rules +- [Database Migration Guide](doc/database-migration-guide.md) - User-facing migration tools + ## Prerequisites ### Enable Dexie Database