How phuocthai39/mydrive-sync works
PBL4 Company Sync is a multi-agent shared-folder synchronization application: users sign in through a Swing client, manage workspaces and permissions, and sync local files through a TCP server. The server authenticates agents, coordinates file metadata, versions and replication, and persists administration and activity data in MySQL; file contents reside on agents. The graph reflects the documented capabilities and sampled call paths. Some server dispatch and UI wiring is unsampled, so uncertain connections are omitted.
Main entry points: AgentService.java Agent service · ClientHandler.java Client handler · NetworkClient.java Network client · ServerCore.java Server core
Components 18
Agent client
- Login UI
src/main/java/vn/edu/pbl4sync/client/ui/LoginFrame.java - Workspace UI
src/main/java/vn/edu/pbl4sync/client/ui/WorkspacePanel.java - Admin UI
src/main/java/vn/edu/pbl4sync/client/ui - Agent service
src/main/java/vn/edu/pbl4sync/client/AgentService.java - Folder watcher
src/main/java/vn/edu/pbl4sync/client/sync/FolderWatcher.java - Network client
src/main/java/vn/edu/pbl4sync/client/NetworkClient.java
Sync server
- Client handler
src/main/java/vn/edu/pbl4sync/server/ClientHandler.java - Server core
src/main/java/vn/edu/pbl4sync/server/ServerCore.java - Agent sessions
src/main/java/vn/edu/pbl4sync/server/ConnectionManager.java
Wire protocol
- Packet transport
src/main/java/vn/edu/pbl4sync/common/ProtocolIO.java - Message model
src/main/java/vn/edu/pbl4sync/common/Packet.java
State and files
- Local sync state
src/main/java/vn/edu/pbl4sync/client/sync/LocalStateStore.java - Shared folders
src/main/java/vn/edu/pbl4sync/client/AgentService.java - Database access
src/main/java/vn/edu/pbl4sync/server/db/Database.java - Database schema
src/main/resources/schema.sql
Other components
- User
- TCP socket
- MySQL
Connections 22
- User → Login UI: signs in
- User → Workspace UI: manages workspaces
- Login UI → Agent service: starts session
- Workspace UI → Agent service: requests workspace actions
- Admin UI → Agent service: requests administration
- Agent service → Network client: sends requests
- Agent service → Folder watcher: starts watchers
- Folder watcher → Agent service: reports file events
- Agent service → Local sync state: reads and writes versions
- Agent service → Shared folders: reads and writes files
- Network client → Packet transport: encodes and receives
- Client handler → Packet transport: receives and sends
- Packet transport → Message model: encodes packets
- Network client → TCP socket: uses socket
- Client handler → TCP socket: serves connection
- TCP socket → Network client: transfers packets
- TCP socket → Client handler: delivers packets
- Client handler → Server core: dispatches requests
- Server core → Database access: queries and updates
- Server core → Agent sessions: tracks agents
- Database access → MySQL: reads and writes
- Database access → Database schema: initializes tables