Skip to content

Latest commit

 

History

History
44 lines (39 loc) · 1.99 KB

File metadata and controls

44 lines (39 loc) · 1.99 KB

Features:

  • Set up the server and client
  • Set up the first connection
  • Implement the realtime update mechanism
    • Try with an input element at first
  • Implement the code editor with react-ace (Migrated to Codemirror later)
  • Implement sessions
    • Users should be able to share the session via links
  • Add a 'copy to share' button to copy URL (For UX purposes)
  • Keep user's preferred theme in local storage
  • List recent sessions on homepage
  • Sessions will expire after 24 hours
  • Users should be able to see each other's caret positions
    • Codemirror is able to render a tooltip on a custom position
    • Do further research about highlighting texts by other users
  • Import/export code as a file
    • While importing, file extension is checked and editor language is set accordingly
  • Users in the session are listed
    • Users are asked a username while joining the session
  • Set the UI theme according the editor theme

Bugs:

  • Random caret jump to start
  • Serverless not working properly
    • Only redis sleeps after 10 minutes of inactivity, client and server are always up
  • Language choice should be binded to the session
    • If one of the users change the language, all editors should be synced
  • In editor, text is not wrapping and shifting sidebar, editor should have a max-width
  • CORS

Improvements/Refactors:

  • Implement lazy loading for themes and languages
  • Add request timeout for client, render a toast accordingly
  • Add a shared types library (Socket events, languages, themes)
  • Add unit, integration, e2e tests (Just to practice)
  • Global state management
  • Add logger (?Winston?)
  • ?Add custom error handler?
  • Optimise Dockerfiles and compose files (both prod and dev)
  • Optimise GitHub workflows
  • Use socket.io rooms to implement sessions