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: