How sulfurcodes/sulfurdocs-realtime-document-editor works
SulfurDocs is a cross-platform collaborative document editor. Users authenticate, create or open private documents, edit rich text, and have edits broadcast live and saved automatically. The backend’s REST routes handle account and document operations; its Socket.IO server authenticates connections, checks document ownership, relays deltas, and persists saves. The tree omits Flutter’s lib/ sources, so frontend components use the existing frontend/ path and their links rely on README documentation rather than sampled client code.
Main entry points: frontend Flutter app · socketServer.js Socket server · authRoutes.js Auth routes · documentRoutes.js Document routes
Components 16
Flutter client
- Flutter app
frontend - Rich text editor
frontend - Client state
frontend
REST API
- Auth routes
backend/src/routes/authRoutes.js - Document routes
backend/src/routes/documentRoutes.js - Express app
backend/src/app.js - JWT middleware
backend/src/middlewares/authMiddleware.js - Account operations
backend/src/controllers/authController.js - Document operations
backend/src/controllers/documentController.js
Live collaboration
- HTTP server
backend/src/server.js - Socket server
backend/src/socket/socketServer.js
Persistence
- User model
backend/src/models/user.js - Document model
backend/src/models/document.js - DB connection
backend/src/config/database.js
Other components
- User
- MongoDB
Connections 23
- User → Flutter app: uses
- Flutter app → Client state: updates
- Flutter app → Auth routes: requests account API
- Flutter app → Document routes: requests documents
- Flutter app → Rich text editor: opens and edits
- Rich text editor → Socket server: sends deltas
- Socket server → Rich text editor: broadcasts changes
- Rich text editor → Socket server: sends autosaves
- Express app → Auth routes: mounts
- Express app → Document routes: mounts
- Auth routes → JWT middleware: guards profile route
- Document routes → JWT middleware: guards document routes
- Auth routes → Account operations: dispatches account actions
- Document routes → Document operations: dispatches document actions
- Account operations → User model: reads and creates
- Document operations → Document model: reads and writes
- HTTP server → Express app: serves HTTP
- HTTP server → Socket server: initializes
- HTTP server → DB connection: connects database
- DB connection → MongoDB: connects
- User model → MongoDB: persists users
- Document model → MongoDB: persists documents
- Socket server → Document model: checks ownership and saves