• If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • You already know Dokkio is an AI-powered assistant to organize & manage your digital files & messages. Very soon, Dokkio will support Outlook as well as One Drive. Check it out today!



Page history last edited by PBworks 16 years, 7 months ago




Week 1


Week 1: 02.07.2007 – 06.07.2007



Besides working out in more detail the requirements of the application, I performed some experiments in order to understand as much as possible the Bluetooth technology and the Java APIs for Bluetooth (JSR-82). I created a simple user interface that allows users to chat through a Bluetooth network. In this network there can’t just exist only one central server to which all other devices are connected as clients, because this means that when the central server is no longer reachable via Bluetooth, then the whole network will crash. Therefore, each node in this network functions as client and server at the same time. The result is that each node is connected to every other node (i.e. either as client or as server) in the Bluetooth network and the network tolerates if some node is no longer reachable.



Week 2


Week 2: 09.07.2007 – 13.07.2007



During this week I finally succeeded to implement the use case "interact with other user via Bluetooth". Now users can logon to the application with their username and they can interact with other users in the contact list via Bluetooth. Users are able to select the recipients of a message; this means that only the selected recipients receive the message. The messages are sent in XML format. Therefore I had to design a simple exchange protocol and to implement a class that is responsible for parsing incoming messages and encoding outgoing messages. The incoming messages are parsed by using the kXML library. In addition, I began to implement a simple server application (by using a server socket) that can be accessed by mobile devices and is able to access to a MySQL DB, which is used to store and manage the “virtual” and “close” friends of each user.


Week 3


Week 3: 16.07.2007 – 20.07.2007



During this week I implemented the use cases “add close friend to contact list” and “delete friends from the contact list”. New users are recognized if they are in the range of the Bluetooth. The user gets displayed a confirmation screen that asks if it wants to add the other user as “close” friend to its contact list. The user has two possibilities: either it rejects or accepts to add the other user as “close” friend in its contact list. In addition to this feature the user now also has the possibility to remove a certain friend from its contact list. Finally, during this week I performed some refactorings: I tried to improve and simplify the design of the application and I produced some documentation (e.g. UML diagrams, comments …).




Week 4


Week 4: 23.07.2007 – 27.07.2007



During this week I started to work on the use case “discover paths between friends”. The prerequisite for discovering paths between friends is the so-called social network graph. This directed graph consists of several vertices (i.e. users) and edges (i.e. friendships – either “close” or “virtual” - between users). In general graphs can be represented with an adjacency or incidence matrix. I have chosen the adjacency matrix for storing the graph in the DB and in the memory on the server. The table in the DB has the following columns: ID, userid, friendid. For keeping this graph as an object into the memory on the server I decided to use the java.util.HashMap class. This data type maps a unique key to a certain value. In our case the key is the ID of the user and the value is a list of the IDs of all adjacent users. Besides working out the suitable representation for the social network graph, I also began to implement a simple and efficient search algorithm that is able to find paths between different users.



Week 5


Week 5: 30.07.2007 – 03.08.2007



During this week Markus and I combined the location-based and Bluetooth chat. This means that users now are able to chat with other users either via Bluetooth or via Internet. In addition, I succeeded to implement all the functionalities of my server. Thus, my server now is able to return the contact list of a user, to add a contact in the contact list and to delete a contact from the contact list. Furthermore, the server holds the social network graph, which allows calculating paths between different users. This path is automatically updated when a user adds a contact in its contact list or when it removes a certain user from its contact list. The paths are calculated by using the so-called “iterative deepening search” algorithm. This algorithm combines breadth-first and depth-first search. It explores by layers like breadth-first. This ensures that the shortest path is found. However, at each run it performs a depth-first that saves space.



Week 6


Week 6: 06.08.2007 – 10.08.2007



During this week I started to develop the user interfaces for the Social Network application. Since MIDP does not offer an appropriate user interface element for displaying paths between friends, I decided to implement a custom item by my own. In addition, I had to change slightly my server application, since now it is also used to perform the login to the First Life application as well as to perform the registration of new users. Besides changing the code of the server, I also improved the exception handling on the server side. This means that a user now will get detailed information whether its request has been carried out successfully or whether an error occurred while processing the request. Finally, due to the changes of the server application, I had to adjust also the JUnit test cases.




Week 7


Week 7: 13.08.2007 – 17.08.2007



During this week I extensively tested the necessary classes that are responsible for the Bluetooth chat. By doing this I uncovered some small mistakes, which I had to correct. I also improved slightly the design of the classes that allow the chat via Bluetooth. Besides working on the Bluetooth chat modules, I concentrated on the user interfaces for the “People” entry in the menu list of the First Life application. Now the “People” entry contains all the necessary features for managing the contact list, i.e. it is possible to have a look at the details of a certain contact, it is possible to add new “virtual” friends and to delete friends from the contact list. It is also possible to request the path to a certain user in the contact list to determine from which other people I know this friend. In addition I integrated the people search that has been developed by Markus and that allows to search for specific users by determining for example the nickname, the name, the surname and also the location.



Week 8


Week 8: 20.08.2007 – 24.08.2007



In this week I changed the source code on the mobile and server side in such a way that it allows the encryption and decryption of the passwords. The encryption is based on the Rijndael algorithm. The encryption massively increases the security of the application, since passwords that are contained in XML documents are no longer sent as plain text strings through the network. Besides changing the source code, I finally was able to test the application on a “real” mobile device. Until this week, the settings of the mobile phone prevented to connect to a remote server via sockets. By testing the application on my phone, I was able to recognize and fix some layout errors of the user interfaces. In addition, I also started to write some pages for my thesis.


Comments (0)

You don't have permission to comment on this page.