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 8a2966a13e Enhance commentary and logging. 3 weeks ago
.cursor/rules chore: update migration documents and move to new home 2 months ago
.github/workflows Playwright install 1 year ago
android Feature: lock orientation mode 1 month ago
assets Updated icon and splash assets 2 months ago
doc Refactor build files, separating & consolidating & renaming as needed. 3 weeks ago
ios Feature: lock orientation mode 1 month ago
public add another sample boundary frame for the certificate view of a claim 7 months ago
scripts Merge branch 'sql-absurd-sql-back' 2 months ago
src Enhance commentary and logging. 3 weeks ago
sw_scripts switch the encryption secret from localStorage to IndexedDB (because localStorage gets lost so often) 8 months ago
test-playwright Fix issue showing the actions on contact screen. (Test still fails later.) 3 weeks ago
test-scripts rename app ID from app.timesafari.app to app.timesafari & adjust tests (Java 20 works) 4 months ago
.browserslistrc init 3 years ago
.env.development Move remaining strings for Environment & Platform to type-checked values. 3 weeks ago
.env.production Move remaining strings for Environment & Platform to type-checked values. 3 weeks ago
.env.testing Enhance commentary and logging. 3 weeks ago
.eslintrc.js fix: update ESLint and VS Code settings 2 months ago
.gitignore refactor documentation 3 weeks ago
CHANGELOG.md begin corrections for builds in specific environments (dev/test/prod) 3 weeks ago
CONTRIBUTING.md add recipient description to offers in user's list 12 months ago
Dockerfile Remove ContactScanView and rename ContactQRScanView to ContactQRScanFullView 2 months ago
Gemfile feat: Add Fastlane configuration for mobile app deployment 5 months ago
Gemfile.lock feat(ios): enhance iOS test automation and fix dependencies 4 months ago
LICENSE add license file 8 months ago
README.md Refactor build files, separating & consolidating & renaming as needed. 3 weeks ago
build.sh feature: adding Dockerfile for online testing or deployment to docker 3 months ago
capacitor.config.json Turned off automatic safe area in iOS 2 months ago
index.html Move remaining strings for Environment & Platform to type-checked values. 3 weeks ago
package-lock.json bump to version 1.0.3-beta 1 month ago
package.json Move remaining strings for Environment & Platform to type-checked values. 3 weeks ago
pkgx.yaml disable SQLite in Java & Swift (since they don't compile) & add SQL queueing on startup 2 months ago
playwright.config-local.ts Fix webapp-run command for test:web. 3 weeks ago
playwright.config.ts Refactor build files, separating & consolidating & renaming as needed. 3 weeks 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 add Python dependency for electron on Mac 2 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 months ago
tsconfig.json WIP: fix(AbsurdSqlDatabaseService) fixes to typing and other curious beasts 2 months ago
tsconfig.node.json Move remaining strings for Environment & Platform to type-checked values. 3 weeks ago
vite.config.capacitor.mts Move remaining strings for Environment & Platform to type-checked values. 3 weeks ago
vite.config.common-utils.mts Refactor build files, separating & consolidating & renaming as needed. 3 weeks ago
vite.config.common.mts Move remaining strings for Environment & Platform to type-checked values. 3 weeks ago
vite.config.electron.mts Move remaining strings for Environment & Platform to type-checked values. 3 weeks ago
vite.config.pywebview.mts Move remaining strings for Environment & Platform to type-checked values. 3 weeks ago
vite.config.web.mts Move remaining strings for Environment & Platform to type-checked values. 3 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 ClickUp for current priorities.

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 & doc/BUILDING.md files.
npm install
NODE_ENV=dev npm run start:web

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

Database Architecture

The application uses a platform-agnostic database layer:

  • src/services/PlatformService.ts - Database interface definition
  • src/services/PlatformServiceFactory.ts - Platform-specific service factory
  • src/services/AbsurdSqlDatabaseService.ts - SQLite implementation
  • src/db/ - Legacy Dexie database (migration in progress)

Development Guidelines:

  • Always use PlatformService for database operations

Kudos

Gifts make the world go 'round!