Navigation auf uzh.ch
This semester's challenge task (CT) is the design and implementation of a fully-distributed, P2P messaging application. The system will be similar to a instant messaging application such as Bleep, Signal, or Telegram, where users are able to message other application's users. The application should have the notion of a contact list composed of friends. A friend is defined as being another application's user that accepted to appear within a respective user's contact list -- therefore the friendship is bi-directional, meaning that users should send requests to other users asking permission to be added. Once the permission is granted, the specific user becomes available in the contact list. Moreover, a user should be able to chat with one or more friends (supporting group chat) when the respective users are online. In order to achieve this, the user's contact lists as well as the user's status (online or offline) should be stored in a distributed manner. Optionally, the application should be able to support offline messages, meaning that offline users are able to receive either chat messages when they go online (at any time). Each student's group is free to decide about specifics of building the P2P messaging application and how to organize the information within the distributed network.
Challenge task presentation (PDF, 494 KB)
Scrum introduction (PDF, 2 MB)
Scrum, part 3 (PDF, 525 KB)
The TI&M Scrum Garage Tour happens on the 11.05.2017
All requirements below must be met in order to not get any grade reduction.
Further requirements are:
The following facts may be assumed:
The items below represent supporting libraries, tools, or references that are recommended to be taken into consideration.
During the challenge task each group will be able to ask questions and get support from their supervisors:
Group # | Participants |
---|---|
1 | Sebastian Schrepfer, Yury Belevskiy, Silvan Imhof, Christian Killer |
2 | Vasileios Koukoutsas, Simon Müller, Thomas Finkbeiner, Simon Miescher |
Challenge task presentations and demonstrations will take place on June 1st from 14.00 to 16:00. On these dates, the groups will present and demonstrate their results, which will be evaluated by a jury. Presentations and demos on dates will take place in room BIN.1.D.25 / BIN.1.D.12.
Please find below the report and source code of each group for download. Source code is licensed under open source license. In case of questions, please contact the respective supervisor.
Group 1: report / source code
Group 2: report / source code