The last week has been dedicated to refactoring and adding core functionality to the back end of the application. Overall I think it has been pretty productive working through some of these trickier issues.
Here's the progress since last week:
I've been working from the withAuth branch and will merge changes to master once I've tested all the aspects.
Authentication: Feathers.js makes it pretty easy to implement authentication and authorization. So now the application required auth for creating, updating, patching, and updating documents. Unauthenticated users can read.
Access control: I've implemented a crude resource based access control strategy. Now users can add collaborators to a project and this allow them to make update, patch, and remove actions on a document. I still need to work out how to deal with merge conflicts if people are working on the document at the same time (not trivial! π€―) .
Database structure: I've decided to go with using mongoose (mongodb) and using populate() as a way to link documents across collections.
Saving document history versions: added document saving /versioning for the last 25 updates and changes to a document
Things on my mind:
How to work with merge conflicts!
Featherjs doesn't seem to like the idea of using express-like routes (e.g. /resources/id/:id or /resources/add/) and rather prefers the use of query parameters. I like the explicitness of the URLs when working with REST so we know that X URL path only does Y action. Before I go too much further, it would be cool to get feedback on my api endpoint situation.
Build a super duper cool front end
Naming! still don't think Knitting machine is the right thing :/ ==> added ideas:
Happy Halloween π!
Just the usual weekly update here which I will eventually move to https://github.com/knittingmachine/knittingmachine-docs/blob/master/updates-and-notes.md
The last week has been dedicated to refactoring and adding core functionality to the back end of the application. Overall I think it has been pretty productive working through some of these trickier issues.
Here's the progress since last week:
populate()
as a way to link documents across collections.Things on my mind: