Git Product home page Git Product logo

cte's Introduction

About

CTE is a Collaborative Text Editor with changes history support.

Demo

Demo is available here - http://cteapp.online/

Progress

Progress can be tracked here

MVP (the end of March (lab3 - lab4))

Main flow

Main flow

Main flow & Mesurable goals

  1. 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
  1. 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
  1. 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
  1. 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
  1. 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
  1. 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
  1. On the History page user is able to:
  • see the changes history (like github's pull request diff preview)
  • divide changes by users

Algorithm

Algorithm

Technologies

Per feature ([more likely] / [possible options])

  • Authorization - session key with cookies / jwt
    • Only with our login/password - no 3rd party services integration
  • Sockets - WS
  • Diff algorithm - google/diff-match-patch

Per service

  • 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

Mockups (inspired by hackmd.io)

Login Documents page Editor page

MVP+ (lab 6)

  1. History storing
  2. Custom implementation of diff/patch or different algorithm implementation
  3. ...

Project structure

In progress. Current state is available in develop branch

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.