inkandswitch / upwelling-code Goto Github PK
View Code? Open in Web Editor NEWThe Upwelling research prototype.
Home Page: https://upwelling-prototype.netlify.app/
The Upwelling research prototype.
Home Page: https://upwelling-prototype.netlify.app/
A button that syncs the changes to the server
no layers, for editing
/documents/:id/drafts
This will be useful for debugging at the very least, and I can also imagine myself really needing this 'broad overview' of all drafts that people are currently working on.
layer.message
)/document/:id/draft/:draftid
clicking on an item shows changes
This could be an array of notes or a map of notes and notes are basically arbitrary data but should have an id.
The id could be used in a mark or as a reference in another note, for example, to create comment threads and discussion
Unclear if this is the behavior that we want @bumbleblue would be interested to hear your perspective!
On any particular layer you should be able to toggle whether the syntax highlighting and track changes is on or off.
Need some way to indicate the doc isn't saved yet so people don't lose their work. This applies in both the server and non-server context, because we're only saving 1 second after the user stops typing.
To get the 'updated X minutes ago' feel. Questions:
Merge all visible layers on to the root layer
I think we can get some measured performance improvements by:
Read and write to the filesystem as a tar file, using the Chrome FileSystem API
Exploring what it means to have 'quiet space' and not get notified of other people's new layers
Depends on Peritext integration with Automerge
/document/:id/draft/:draftid
→ ViewDraft (see a draft with 1 or more authors)
Make the UI a bit more ready for demos! right now the layer ui is just a list (ul/li) T_T
Eileen & Scott doing this
Marks seem to be broken, but blaine will confirm and create some tests
We should have a 'me' concept of my author name, and every change and layer is annotated with it
Any time root changes, merge root back into the other layers
So then we only load layers that are un-archived by default
layer is default private, and then can be made public to then show up on other people's screens
I think we can do this in the text box by making editable = false if your local author name is not the same as the layer author name
We discussed this but sounds like we probably won't get to it
They aren't editable yet though!
This will be useful so that the designers can see it deployed and test it without building it locally.
Vercel requires node 14 but react-scripts v5 needs node 16 to run the tests and build the app..
We probably want to use GitHub Actions or Netlify instead if we need node v16? Unless someone can figure out Vercel
With diagrams!
Toggle multiple layers 'visible'
This would probably just be in the renderer layer, and not saved to automerge document. It would be great to have this setting stored in local settings storage (similar to how the author name is stored) so if you refresh the page it won't reset your settings
Send the layer objects to the component
<EditReview layers={layers} />
<TextArea layer={editableLayer} />
When you paste, do a diff first and then convert that to the automerge operations
Merge button
root
root
to your draftroot
, we know what changes between those two layersSide-effect: should we rename root
to latest
? - yes.
It should diff the current layer with the layer below it
Let's make a test suite that covers some basic functions we expect to need:
If you have any inkling to think about an ideal API, now is the time to sketch some ideas!
Test example: https://github.com/inkandswitch/upwelling/blob/main/src/backend/Documents.test.ts
Run a server on glitch and save/retrieve from S3 from the server response handlers when NODE_ENV=production.
Use S3 environment variables for access key and access secret
A developer should be able to toggle NODE_ENV=dev to save to the local filesystem rather than to S3. For example,
NODE_ENV=dev node ./server/index.js
or
NODE_ENV=production S3_ACCESS_KEY=asdjfhsadf S3_ACCESS_SECRET=asdfjksfd node ./server/index.js
A few more kinks to work on
If you hit '+' you get a random layer name and author name, such as 'Tito' (e.g., from cat-names) or a random emoji
We have this concept of a document id and a root. This is untested now and should be a bit more explored.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.