You are expected to design and implement develop a resource sharing system (i.e. file sharing). This project differs from other projects you may have done before in the following ways:
- It requires "design": you have to justify all your choices and the architecture
of the system
- The requirements are on purpose vague: users state requirements not specifications, turning requirements into specifications is your task
- It is open ended: you are free to explore and provide novel features (consult the instructor or the TA before deviating too much)
- You are free and expected to look at current practices and get inspiration (like any engineer should do).
You need to document all resources you will use.
- The instrucotr is like a future "boss": he assigned a task and you need to complete it in a timely and professional manner.
- The TA and the instructor will be consultants but not as co-developers.
- You will deliver an professional quality documentation of the system and the process for developping it (format will be given).
The user requirements are the following:
The system in more detail:
- Users want to be able to join a networked community and share resources. Users should be able to join, leave, specify which resources they will share, request and acquire resources.
- The system should operate over a network. The location of the participating users should not impede their capabilities to participate.
- As in any real system, there are several parameters and dimensions that are important by default such as: