You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Trent Larson 38e67f3533 update a DB save to match others, ie. first SQL then maybe Dexie 23 hours ago
.cursor/rules chore: update migration documents and move to new home 2 weeks ago
.github/workflows Playwright install 11 months ago
android bump to build # 19 version 0.4.7 for mobile packages 2 days ago
assets add documentation, especially for build processes 3 weeks ago
doc convert all remaining DB writes & reads to SQL (with successful registration & claim) 2 weeks ago
ios add another way to fix the privacy policy manifest for third parties like GoogleToolboxForMac 23 hours ago
public add another sample boundary frame for the certificate view of a claim 6 months ago
scripts WIP: BROKEN FOR ELECTRON: Fixes in progress 1 week ago
src update a DB save to match others, ie. first SQL then maybe Dexie 23 hours ago
sw_scripts switch the encryption secret from localStorage to IndexedDB (because localStorage gets lost so often) 6 months ago
test-playwright refactor files that should be ignored 3 weeks ago
test-scripts rename app ID from app.timesafari.app to app.timesafari & adjust tests (Java 20 works) 3 months ago
.browserslistrc init 3 years ago
.env.development fix console error about "window" unavailable due to service worker 2 weeks ago
.env.production fix console error about "window" unavailable due to service worker 2 weeks ago
.env.staging fix console error about "window" unavailable due to service worker 2 weeks ago
.eslintrc.js fix: update ESLint and VS Code settings 2 weeks ago
.gitignore refactor files that should be ignored 3 weeks ago
BUILDING.md bump to build # 19 version 0.4.7 for mobile packages 2 days ago
CHANGELOG.md bump to build # 19 version 0.4.7 for mobile packages 2 days ago
CONTRIBUTING.md add recipient description to offers in user's list 10 months ago
Dockerfile Remove ContactScanView and rename ContactQRScanView to ContactQRScanFullView 3 weeks ago
Gemfile feat: Add Fastlane configuration for mobile app deployment 3 months ago
Gemfile.lock feat(ios): enhance iOS test automation and fix dependencies 3 months ago
LICENSE add license file 6 months ago
README.md various instructions (and their timeouts) 2 weeks ago
TASK_storage.md add documentation for some new work: storage 2 weeks ago
build.sh feature: adding Dockerfile for online testing or deployment to docker 1 month ago
capacitor.config.json fix: add requirements for capacitor/sqlite 2 weeks ago
index.html Safe area implementation for iOS 1 month ago
package-lock.json feat(db): improve settings retrieval resilience and logging 2 days ago
package.json bump to build # 19 version 0.4.7 for mobile packages 2 days ago
pkgx.yaml disable SQLite in Java & Swift (since they don't compile) & add SQL queueing on startup 4 days ago
playwright.config-local.ts refactor: improve feed loading and infinite scroll reliability 2 months ago
playwright.config.ts Refatored vite.config to be a bit more streamlined before adding alternate build options. This did end up requiring me to remove @ from imports for some reason. Tests came out fine. 5 months ago
postcss.config.js Adding Tailwind and start application views 3 years ago
project.task.yaml update ClickUp link to a public link 1 year ago
requirements.txt for test script: add requirements, fix endpoint, and add setup instructions 3 months ago
sw_combine.js combine all service-worker scripts into a single file to try and ensure included scripts aren't lost 1 year ago
tailwind.config.js Fix config 3 years ago
tsconfig.electron.json WIP: fix(AbsurdSqlDatabaseService) fixes to typing and other curious beasts 2 weeks ago
tsconfig.json WIP: fix(AbsurdSqlDatabaseService) fixes to typing and other curious beasts 2 weeks ago
tsconfig.node.json refactor(electron): improve build process and configuration 1 month ago
vite.config.capacitor.mts refactor: reorganize Vite config into modular files 4 months ago
vite.config.common.mts WIP: disabling absurd-sql when using Capacitor SQLite 2 weeks ago
vite.config.dev.mts WIP: certificate view and dependency updates 4 months ago
vite.config.electron.mts WIP: disabling absurd-sql when using Capacitor SQLite 2 weeks ago
vite.config.mts refactor: Replace console logging with logger utility 3 months ago
vite.config.pywebview.mts refactor: reorganize Vite config into modular files 4 months ago
vite.config.ts remove unused setting 2 weeks ago
vite.config.utils.mts refactor: reorganize Vite config into modular files 4 months ago
vite.config.web.mts fix: resolve PWA build issues with SQL.js worker files 2 weeks ago

README.md

TimeSafari.app - Crowd-Funder for Time - PWA

Time Safari 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.

Roadmap

See project.task.yaml for current priorities. (Numbers at the beginning of lines are estimated hours. See taskyaml.org for details.)

Setup & Building

Quick start:

  • For setup, we recommend pkgx, 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.
npm install
npm run dev

See BUILDING.md for more details.

Tests

See TESTING.md for detailed test instructions.

Icons

Application icons are in the assets directory, processed by the capacitor-assets command.

To add a Font Awesome icon, add to main.ts and reference with font-awesome element and icon attribute with the hyphenated name.

Other

Reference Material

  • Notifications can be type of toast (self-dismiss), info, success, warning, and danger. They are done via notiwind and set up in App.vue.

  • Customize Vue configuration.

  • If you are deploying in a subdirectory, add it to publicPath in vue.config.js, eg: publicPath: "/app/time-tracker/",

Code Organization

The project uses a centralized approach to type definitions and interfaces:

  • src/interfaces/ - Contains all TypeScript interfaces and type definitions
    • deepLinks.ts - Deep linking type system and Zod validation schemas
    • give.ts - Give-related interfaces and type definitions
    • claims.ts - Claim-related interfaces and verifiable credentials
    • common.ts - Shared interfaces and utility types
    • Other domain-specific interface files

Key principles:

  • All interfaces and types are defined in the interfaces folder
  • Zod schemas are used for runtime validation and type generation
  • Domain-specific interfaces are separated into their own files
  • Common interfaces are shared through common.ts
  • Type definitions are generated from Zod schemas where possible

Kudos

Gifts make the world go 'round!