Skip to content
This repository has been archived by the owner on Feb 6, 2024. It is now read-only.

feat: offline first #1215

Merged
merged 76 commits into from
Sep 7, 2021
Merged

feat: offline first #1215

merged 76 commits into from
Sep 7, 2021

Conversation

peterpeterparker
Copy link
Contributor

@peterpeterparker peterpeterparker commented Jun 27, 2021

use primary idb and, if and when user is sign in, firestore to clone data

still a long way to go, current status: "early exploration"

@peterpeterparker peterpeterparker added the studio "Studio" is the codename for the web editor label Jun 27, 2021
@peterpeterparker peterpeterparker added this to the Milestone 1 milestone Jun 27, 2021
@peterpeterparker peterpeterparker mentioned this pull request Jul 6, 2021
9 tasks
* feat: offline first storage

* feat: remove unused state

* fix: firebase sync assets
* feat: export slides assets images

* feat: export charts slides assets

* feat: subpath for data in export file

* feat: export deck background

* feat: import offline decks with assets
…#1310)

* feat: export and import (if offline) online assets

* fix: navigation actions displayed if offline

* fix: encoded image on export might get & instead of &

* chore: comment

* feat: deck online or local background

* feat: remove call sw cache which has no effect (triggered here too early)

* refactor: list assets to unzip
* feat: display a header info about the internet computer poc

* feat: internet computer hosting

* feat: internet computer backend example

* build: speed up boot time on the ic

* fix: merge

* build: for the time being, deploy staging version to the ic

* feat: set up canisters ids

* feat: preload modules is only needed with the simulated ic locally

* feat: ddg, ionic and web-social-share fetched from CDNs

* feat: reactivate service worker

* feat: add icp to csp rule

* feat: duplicate web components code to reduce amount of chunks

* feat: add jsdelivr to csp

* build: configuration for ic

* fix: use sw on the ic through raw subdomain

* build: upgrade DFINITY Canister SDK v0.7.7

* build: update dfinity libs

* build: preload modules according lighthouse

* feat: internet computer init auth (#1243)

* feat: internet computer init auth

* feat: set up to handle multiple auth providers including ic

* fix: ic config and node polyfill

* feat: sign with the Internet Identity cmp

* feat: sign in with internet identity

* feat: do not fetch templates if firebase not enabled

* build: redo local dev firebase

* feat: user store on ic login

* feat: add unsafe-eval to CSP for wasm (#1245)

* feat: init deck persistence in the internet computer (#1244)

* feat: init deck persistence in the internet computer

* feat: allow wasm-eval

* chore: use ic for local development

* feat: configure decks canister and call sync ("set deck in ic")

* feat: utils to parse nullisch value

* build: copy and format ic types with prettier

* feat: remove wasm-eval

* build: fix types run

* fix: data ownership

* refactor: services factory pattern - offline, firebase or internet computer (#1246)

* refactor: storage and sync service offline, firebase or ic

* refactor: rename no cloud configuration

* refactor: rename online deck and slide service for firebase

* build: clean before build

* refactor: cloud config moved to app config (#1247)

* refactor: cloud config moved to app config

* refactor: move mock config to app

* feat: use identity to interact with IC through actor (#1248)

* feat: create own actor

* feat: use identity for actor

* fix: ignore index.js file

* build: update dfx version

* feat: local internet identity

* refactor: rename config script

* feat: spinner loading until deck is loaded (#1249)

* feat: display a spinner when loading scripts through CDN

* feat: display spinner msg

* style: remove spacing

* fix: handle cdn script components not loaded yet (#1250)

* refactor: move and rename backend to canisters (#1252)

* refactor: rename backend to canisters

* feat: persist slides in the internet computer (#1253)

* feat: init slides using persisted hashmap

* feat: slides get, set and del

* build: slides canister

* feat: save slides in the internet computer

* fix: delete slide and add todos for not related issues

* feat: delete slide without throw error

A user might create a slide and delete it right afterwards. The sync will then try to sync a delete operation of a slide which has never been persisted.

* feat: save all slide properties

* refactor: common canisters types

* feat: persist deckId with slide information too

* feat: persist all deck properties to the internet computer (#1255)

* refactor: ic interactions with services (#1256)

* feat: sw cache canister (#1260)

* feat: get all user decks in dashboard (#1258)

* feat: save all user decks within a prefixed users hashmap

HashMap<user, HashMap<deckId, deck>>

* feat: entries endpoint to list all users' decks

* feat: get decks and slides from ic for dashboard

* fix: transform IC values

* feat: no clone with ic right now

* feat: delete deck and slides (#1261)

* chore: ionic type import

* feat: load slides from dashboard with ic data (#1265)

* feat: load slides from dashboard with ic data

* feat: invalid date

* fix: undefined values

* chore: update slides definition

* refactor: package functions renamed to canisters (#1267)

* chore: add console output for performance check

* feat: init users canister (#1268)

* feat: init users canister

* refactor: stateless utils without class

* feat: get user as query call

* refactor: rename owner user pair

* refactor: deconstruct object

* feat: auth get or set user in the ic

* feat: users canister id

* fix: actor canister id

* chore: track performance

* feat: update user profile

* feat: delete user

* docs: special use case user

* feat: add admin permission check on inter-canisters calls (#1269)

* revert: admin privilege that does not work (#1270)

* chore: no dev

* feat: delete decks and slides on delete user (#1271)

* fix: converting optional ic data (#1272)

* feat: unique usernames (#1273)

* feat: improve performance with getter query (#1274)

* refactor: rename owner containers

* feat: decks query for better performances

* feat: slides query for better performances

* feat: async delete

* feat: query deck and slide

* fix: empty attributes

* fix: wait for remote to be loaded (#1275)

* feat: one deck and slides = one canister (#1276)

* feat: init separate canisters for each decks

* feat: sub-canisters owner

* feat: main bucket returns only principal and generate deck bucket type definition

* chore: todo has been solved

* feat: slides in deck bucket canister

* refactor: move deck bucket to separate package / folder

* chore: print out del slide

* chore: doc todo inter canister call

* feat: delete decks and slides upon user delete

* feat: delete decks and slides upon user delete

* feat: set controllers to create canister

* refactor: update actor name

* refactor: bucketIds and canisterId

* feat: deck id should match on update

* fix: handle get error

* fix: stable deck canister owner (#1277)

* feat: update decks mgmt canister id (#1278)

* feat: decks and slides data as blob in the ic (#1285)

* feat: improve display username if not set (#1288)

* feat: defer ic decks and slides synchronization with web workers (#1289)

* feat: defer decks upload to ic with web workers

* feat: defer slides upload and delte to ic with web workers

* refactor: extract function to init identity

* feat: defer user initialization with web worker (#1290)

* feat: init user with a web worker to defer work

* feat: defer authentication once app rendered

* fix: mark import as type

* feat: delete canister (decks) and transfer cycles to manager (#1302)

* feat: delete canister (decks) and transfer cycles to manager

* feat: transfer cycles from sub-canisters

* fix: transfer cycles could not perform call

* feat: retain some cycles to transfer remainings

* refactor: rename canister decks to manager (#1303)

* feat: improve init deck canister performance (#1304)

* chore: add metrics to retrieve deck

* feat: improve performance by querying bucket (#1305)

* fix: handle weird data state

* chore: update definition after build
@peterpeterparker peterpeterparker marked this pull request as ready for review September 7, 2021 16:18
@peterpeterparker peterpeterparker merged commit 20371ae into main Sep 7, 2021
@peterpeterparker peterpeterparker deleted the feat/offline-first branch September 7, 2021 16:19
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request studio "Studio" is the codename for the web editor
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant