CTE is a Collaborative Text Editor with changes history support.
Demo is available here - http://cteapp.online/
Progress can be tracked here
- User logs in by entering his email and password. If user is new to editor, he is able to sign up:
- by email & password or by Google (MVP+)
- then user must enter nickname and bio
- If user uses own email/password then user is also able to reset password: (MVP+)
- user enters Reset password screen
- user enters his email
- if user with entered email is found than link is generated and send to the user email (link is only valid for this user)
- user visits the link
- user enters new password on the Reset password page
- If user uses own email/password then after logging in for the first time user is promted that he must confirm his email
- user is redirected to the profile page
- user can confirm his email by visiting link from confirm-email letter
- After confirming his email he is able to:
- see a list of user documents
- see a list of bookmarked documents
- button to create new document
- Each document has a
- title
- last edit time and a set of available actions:
- bookmark (save Document in bookmarks block)
- go to Document editing page
- share a link to Document editing page
- for editing
- or for viewing
- Document's editing is not available if user not authirezed. If he visits editing link than he is promted to login to edit Document
- On the Document editing page user is able to:
- edit text (as a textarea, no additional elements like MD formatting). When user is writing or editing document the other users are able to see cursor โ position of checking that is synchronized
- go to the history page
- On the History page user is able to:
- see the changes history (like github's pull request diff preview)
- divide changes by users
- Authorization - session key with cookies / jwt
- Only with our login/password - no 3rd party services integration
- Sockets - WS
- Diff algorithm - google/diff-match-patch
- Common
- typescript
- ??webworkers/worker threads?? (for computing diff/patch)
- Backend
- nestjs
- Frontend
- vuejs
- Database
- postgresql
- CI/CD
- docker
- github actions
- digital ocean container registry + droplet /aws ecr + ec2
- History storing
- Custom implementation of diff/patch or different algorithm implementation
- ...
In progress. Current state is available in develop branch