StudentSync LAN Synchronization Tool: Server
This project was done as a group project in partial fulfilment of the requirements for the course SCS2206 at NUST in the year 2020, Computer Science Department. StudentSync is a tool for automatically synchronizing Student generated academic material over a LAN.
The StudentSync application is made up of two components:
- A server application (https://github.com/alecmus/StudentSync_Server)
- A client application (https://github.com/kenjjmat/StudentSync_Client)
This app was built using the lecnet network library, which is part of the liblec C++ libraries.
- Server sends UDP multicast datagram containing the IP addresses of all its interfaces
- Client listens for datagrams
- Client receives datagram and:
- Extracts server IPs
- Selects IP address within the same range
- Client requests connection to server over a TCP/IP connection
- Server accepts client connection and sends acknowledgement to client
- Client sends file-list to server
- Server consolidates file-list from all connected clients
- Server creates a table listing client addresses and corresponding missing file lists
- Client requests missing files
- Server sends missing files to respective clients, updating missing file table
- Client is notified of added files
Microsoft Windows family of operating systems (Win 8, 8.1, 10, or later)
- 10MB free disk space minimum
- 64MB ram minimum
- Network Card (Ethernet, WiFi etc.)