timesafari
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 def744b3df don't allow notification service-worker interaction until it is ready 11 months ago
public update all icon images to our own art 11 months ago
src don't allow notification service-worker interaction until it is ready 11 months ago
sw_scripts don't allow notification service-worker interaction until it is ready 11 months ago
.browserslistrc init 2 years ago
.eslintrc.js In transition ... experimenting 2 years ago
.gitignore Some updates and nudging toward notification ui 1 year ago
CHANGELOG.md bump to version 0.1.9 11 months ago
README.md increment version and add -beta 11 months ago
babel.config.js init 2 years ago
openssl_signing_console.rst update the script commands for JWT signature generation & validation 1 year ago
openssl_signing_console.sh fix: update openssl script according to new info 1 year ago
package-lock.json increment version and add -beta 11 months ago
package.json increment version and add -beta 11 months ago
postcss.config.js Adding Tailwind and start application views 2 years ago
project.task.yaml bump to version 0.1.9 11 months ago
tailwind.config.js Fix config 2 years ago
tsconfig.json fix the last of the type annotations (still have to fix no-explicit-any warnings) 1 year ago
vue.config.js compute commit hash with git-describe 12 months ago
web-push.md doc: update tasks, update verbiage, and add to help doc 12 months ago

README.md

TimeSafari.app - Crowd-Funder for Time - PWA

Project setup

We have pkgx.dev set up in package.json, so you can use dev to set up the dev environment.

npm install

Compiles and hot-reloads for development

npm run serve

Lints and fixes files

npm run lint

Compiles and minifies for production

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

  • Update the project.task.yaml & CHANGELOG.md & the version in package.json, run npm install, and commit.

  • Tag wth the new version.

  • If production, change src/constants/app.ts DEFAULT_*_SERVER to be "PROD" and package.json to remove "_Test". Also record what version is on production.

  • npm run build

  • npx prettier --write ./sw_scripts/

...to make sure the service worker scripts are in proper form. (It's only important if you changed something in that directory.)

  • cp sw_scripts/[ns]* dist/

... to copy the contents of the sw_scripts folder to the dist folder - except additional_scripts.js.

  • rsync -azvu -e "ssh -i ~/.ssh/..." dist ubuntutest@test.timesafari.app:time-safari

  • Revert src/constants/app.ts and package.json (if that was prod), edit package.json to increment version & add "-beta", npm install, and commit. Also record what version is on production.

Tests

Register new user on test server

On the test server, User #0 has rights to register others, so you can start playing one of two ways:

  • Import the keys for the test User did:ethr:0x0000694B58C2cC69658993A90D3840C560f2F51F by importing this seed phrase: rigid shrug mobile smart veteran half all pond toilet brave review universe ship congress found yard skate elite apology jar uniform subway slender luggage (Other test users are found here.)

  • Alternatively, register someone else under User #0 automatically:

    • In the src/views/AccountViewView.vue file, uncomment the lines referring to "testServerRegisterUser".

    • Visit the /account page.

Create multiple identifiers

Under the "Your Identity" screen, click "Advanced", click "Switch Identity / No Identity", then "Add Another Identity...".

Create keys with alternate tools

This page is a tool to create a JWT from a locally-generated keypair.

Web-push

For your own web-push tests, change the push server URL in Advanced settings on the account page, and install Time Safari & push server on the same domain.

Icons

To add an icon, add to main.ts and reference with fa element and icon attribute with the hyphenated name.

Manual walk-through

  • Clear the browser cache for localhost for a new user.
    • See that it's using the test API.
    • On each page, verify the messaging.
    • On the home page, see the feed without names, and see a message prompting to generate an ID.
    • On the discovery page, check that they can see projects, and set a search area to see projects nearby.
  • As User #0 in another browser on the test API, add a give & a project. (See User #0 details above.)
    • With the new user on the home page, see the feed that shows User #0 in network but without the name.
  • As the new user on the contacts page, add User #0 as a contact.
    • On the home page, see the feed that shows User #0 with a name.
  • Generate an ID.
    • On the home page, check that it now prompts them to get registered.
    • On the account page, check that they see messages on limits.
  • Register the ID from User #0.
    • As the new user on the home page, check that they can now record a gift.
    • On the contacts page, check that they cannot register someone else yet.
  • Walk through the functions on each page.

Scenarios

  • Create a new identity as prompted. Go to "Your Identity" screen and copy the ID to the clipboard.

  • Go back to /start and import test User did:ethr:0x000Ee5654b9742f6Fe18ea970e32b97ee2247B51 with this this seed phrase: rigid shrug mobile smart veteran half all pond toilet brave review universe ship congress found yard skate elite apology jar uniform subway slender luggage (Other test users are found here.)

  • Go to "Your Contacts" screen and add the ID you copied to the clipboard, and hit "+" to add them.

  • Click on the "Registration Unknown" button and register that person to be able to make claims as them.

Clear/Reset data & restart

  • Clear cache for site. (In Chrome, go to chrome://settings/cookies and "all site data and permissions"; in Firefox, go to about:preferences and search for "cache" then "Manage Data", and also manually remove the IndexedDB data if the DBs still show.)
  • Clear notification permission. (In Chrome, go to chrome://settings/content/notifications; in Firefox, go to about:preferences and search for "notifications".)
  • Unregister service worker. (In Chrome, go to chrome://serviceworker-internals/; in Firefox, go to about:serviceworkers.)
  • Clear Cache Storage manually, possibly deleting the DB. (In Chrome, in dev tools under Application; in Firefox, in dev tools under Storage.)

(If you find more, add them to the HelpNotificationsView.vue file.)

Other

Reference Material

Kudos

Gifts make the world go 'round!