Software Requirement and Analysis
In this initial phase we met up early after the project description was posted by the instructor. This was the most important phase where we introduced to teammates. The following activities are done:
1. Analyzing the scope of project
2. Decided the platforms that can be used like C, JAVA, C++
3. Analyzing problem description .i.e. which daemon does what
4. Analyzing the requirements for the project
5. Discussing about socket programming and design basics
Design and Work Assignment
In this meeting we met after doing some research on examples of same projects online and how people implemented. We decided upon following points:
1. Divided the project in different modules e.g. Client Daemon (replication daemon), Server Daemon
2. Designed the detailed models with threads and functioning of each thread
3. Decided the C language as our final platform because it has many function that interacts directly to
4. Calculated the work to be done
5. Divided the project work into two teams of two people each on the basis of experience and workload
Implementation
This phase comes after our 4 meetings in 2 weeks after full research and finalizing the design of our project. In this phase we did following tasks:
1. Started developing initial client server model for file sharing
2. Decided Application level protocols for file share and other messages passing
3. Client side group started directory monitoring tasks and event handling
4. Server side group started making different message processing modules
5. Initialization message passing implemented using listing of files and matching
6. Diff handling research and implementation on both sides
7. Client group started working on file replication module
8. Sync server was created in master slave fashion with two separate demons for file version handling
9. Client side group implemented compression
10. Server side group researched and implemented encryption and decryption
Integration and Testing
Before this phase implementation is done by two groups on their own modules separately. Now we started integrating things together to form a working module. During this phase following tasks are done:
1. Started Integrating individual teams modules first
2. Server and client connected for first time
3. Debugging the errors and done changes as per required
4. Client side integrated with encryption and decryption
5. Server side also integrated with encryption and decryption
6. Server side compression integration
7. Test cases are made as per requirements
8. Program was checked with set of test case to fulfill requirements
9. Debugged any errors