NoteSync
Collaborative Note-Taking Desktop Application
Overview
NoteSync is a powerful desktop application developed using C# and WPF within the .NET framework. It transforms traditional note-taking into a dynamic, interactive experience, ideal for team collaboration, online teaching, and creative projects.
Features
Client Features
- User Authentication: Users can sign up and log in.
- Notebook Management: Create and manage multiple notebooks.
- Canvas Creation: Create new canvases within notebooks.
- Real-Time Collaboration: Add multiple collaborators to a canvas for real-time collaboration.
- Save and Share: Save canvases and share them using a generated code/link.
Server Features
- User Authentication: Authenticate users and manage sessions.
- Collaboration Management: Allow collaborators to join sessions via code/link.
- Real-Time Communication: Facilitate real-time communication between clients.
- Data Synchronization: Ensure synchronization of canvas content across clients.
- Logging and Monitoring: Maintain logs of all communications and monitor multiple sessions.
Technical Details
- Communication Protocol
- Protocol: WebSocket over TCP for real-time communication.
- Message Format: JSON format for message serialization.
- Message Types: Includes DrawCommand, EraseCommand, AddText, RemoveText, PasteImage, DeleteImage, AddCollaborator, JoinRequest, CanvasUpdate, SyncCommand.