\documentclass[10pt,
article,
type=msc,
colorbacktitle,
instlogo,
accentcolor=tud1c,
%twoside
]{tudreport}

\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}

\usepackage{subfig}
\usepackage{hyperref}
\usepackage{url}
\usepackage[section]{placeins}
\usepackage{booktabs}
\usepackage{listings}
\begin{document}

\title{Title - to be discussed}
\subtitle{Carsten Porth, carsten.porth@stud.tu-darmstadt.de, 1804629}
\maketitle

\section*{Meta data}
\begin{tabular}{l l}
	\textbf{Name:} & Carsten Porth \\
	\textbf{Student number:} & 1804629 \\
	\textbf{Department:} & Computer Science \\
	\textbf{Allocation Date:} & xx.xx.2018 \\
	\textbf{Supervisor:} & Jörg Daubert \\
	\textbf{Second Supervisor:} &  Aidmar Wainakh \\
	\textbf{Category for Digilib:} & \\
\end{tabular}


\section{Motivation}
The work will be done as part of the project "Privacy and Trust for Mobile Users". The ongoing penetration of computers in everyday life is used by a large part of the population for their own benefit. Emerging disadvantages, such as the increasing transparency and monitorability of a user with simultaneous lack of transparency of the entire network, are accepted. The aim of this interdisciplinary project is to reverse these trends and adapt privacy to personal interests. Economic interests on the one hand and social interests on the other should be reconciled.

With Web 2.0, the use and perception of the Internet changed. Instead of just consuming content as before, web applications were created that allowed users to place content on the Internet themselves. The big social media networks such as Facebook (2 billion monthly active users\footnote{\url{https://www.heise.de/newsticker/meldung/Facebook-meldet-2-Milliarden-aktive-User-3757367.html}}) or Twitter (330 million monthly active users\footnote{\url{https://www.heise.de/newsticker/meldung/Twitter-schafft-ersten-Gewinn-Nutzerzahl-stagniert-3963390.html}}) have become particularly popular.

With the evolution of the mobile phone to the smartphone, a range of functions preciously known only by computers has been made accessible mobile. The ability to install any application and to use the device for a variety of purposes opened up new possibilities. The development of the hardware and new sensors make it possible to comprehensively capture the environment. This technology is not only used in smartphones, more and more tracking devices and smart watches are conquering the market. For the user, these changes initially bring advantages. What happens to the collected data and what may be unconsciously shared with servers all over the world and possibly further processed there is in most cases opaque.

Especially in social networks, a lot of data is collected by the respective app. If the user wants to use a certain network, he usually has no choice but to divulge the data. However, recent data scandals have shown that the user should be careful about what data he reveals. Often there are no opportunities to determine this yourself. The aim should therefore be to find a way to be able to use the already used social networks as usual, but to decide for oneself which data are exchanged via the provider servers and which are exchanged via a separate network that is closed to the provider.

\section{Why not Facebook?}
In March 2018, it was revealed that Facebook had not treated the data of 87 million users confidential. The British company Cambridge Analytica had collected and processed data via Facebook. Both companies suffered immense damage after it became known. Facebook suffered a major damage to its image, Cambridge Analytica had to file for bankruptcy and ceased operations.

Improving privacy and protecting the personal data of Facebook users would be of particular interest against this background. However, the strong limitations of the Facebook API (Graph API) do not allow it to develop your own Facebook client. For example, it is not possible to query a user’s news stream or to like a post.

With apps like \textit{Friendly for Facebook} or \textit{Metal} there are alternative Facebook clients in the Google Play Store. Since the official Facebook API may not have been used due to the restrictions, two approaches are conceivable:

\begin{enumerate}
	\item The website offered for mobile devices (\url{https://m.facebook.com/})) is displayed in a WebView. Thus, the app only serves as a wrapper around the mobile website. However, the different design indicates that the pages are modified by the Android app. This is technically possible by injecting JavaScript code into the page. Disadvantage is that changes on the mobile website lead to the injected JavaScript code suddenly no longer having the desired effect.
	\item The Facebook website is crawled and the content extracted. The display of the data can therefore be freely designed. The disadvantage of this method is its dependence on the HTML structure of the Facebook web pages. Even small changes to the website could prevent the content from being extracted. Furthermore, requests to the Facebook servers would have to pass through the security precautions on Facebook, for example the presence of any tokens.
\end{enumerate}

The limitations of the Facebook Graph API and the problems with the alternative approaches mentioned were decisive for the decision in favour of Twitter. Twitter releases the full range of functions for developers via its API, allowing them to develop their own clients. Furthermore, a kit is provided specifically for the development of Android apps, which makes the development much easier.

\section{Requirements}
To develop a Twitter client app for Android based on the objectives, the author should have some knowledge on different topics, which is discussed in more detail below.

Basic knowledge of the used programming language Java should be present, which is necessary for the development of the Android application. Experiences with the development of Android apps are beneficial.

To exchange data between the app and the Twitter servers, knowledge of REST interfaces and the Twitter API is required, which must be acquired at the beginning of the work, if they are not available. Furthermore, knowledge of peer-2-peer networks is required to implement the protected data exchange between the clients.

Since the actual work with LaTeX is written, previous knowledge should also be available there. Basically, the author must be willing to acquire and expand missing knowledge independently.


\section{Approach/Goal}
The goal of the thesis is the development of a Twitter client app for Android. In this app it should be possible to use the traditional functions of Twitter as usual, so that communication with any other Twitter user is possible without problems.

In addition, it should also be possible to decide for yourself whether a tweet is shared with the followers via a peer-2-peer network and is therefore not stored on a Twitter server.

The Twitter API is mainly used via the Twitter Android Kit\footnote{\url{https://github.com/twitter/twitter-kit-android}}, which already includes UI components to display the essential elements. However, it will be necessary to modify the kit to include tweets from the P2P source. This probably cannot be achieved only by extending the contained classes, so that the code provided on Github has to be adapted. Since the Twitter Android Kit is licensed with the Apache License 2.0, such modifications are possible.

Due to the limited time the app should have the following functionalities:
\begin{itemize}
	\item Writing tweets in text form
	\item Retweet Tweets
	\item Like Tweets
	\item Show Timeline (Home)
	\item Show user profiles
	\item Search for Tweets and users
\end{itemize}
As a result, the following functionalities are not implemented in the context of this thesis:
\begin{itemize}
	\item The notification system
	\item The direct message system
	\item Changing settings
	\item Update the user's profile
	\item Writing tweets containing any multimedia attachment like videos and pictures
\end{itemize}

The peer-2-peer network should not only extend to a local network, but to a global network over the Internet. In doing so, the problem with the network address translation (NAT) has to be conquered. The tweets exchanged via the peer 2 peer network are serialized into a JSON or XML format and then exchanged among the clients via the network.

Two approaches are conceivable for the implementation of the P2P network:
\begin{enumerate}
	\item The Java Library Hive2Hive\footnote{\url{https://github.com/Hive2Hive/Hive2Hive}} (based on TomP2P\footnote{\url{https://github.com/tomp2p/TomP2P}}) is suitable for setting up a P2P network for secure file synchronization.
	\item WebRTC\footnote{\url{https://webrtc.org/}} is a approach for real-time communication that is supported by Google, Mozilla and Opera, among others. In addition to modern web browsers, Android and iOS are also supported as platforms.
\end{enumerate}
The first step is to evaluate the strengths and weaknesses of the two approaches and the extent to which they are better suited for their intended use.

Peer discovery is the most difficult task in both approaches. Since synchronization should work over the Internet and in most cases the clients should not have a static address, a solution must be found for clients to discover other clients. For Hive2Hive, this problem can be solved by using a bootstrap node that has a fixed address and is first contacted by the clients. The software for this node would also have to be written and deployed on a server with appropriate properties. WebRTC also requires a central contact point. This could also be implemented by own software, but for this purpose there are also third-party solutions that can be used free of charge.

The thesis is written in English.

\section{Development Environment}
The Android app is to be developed in Android Studio. The minimum SDK version results from the minimum requirements of the used libraries.

\textit{Comment on Git repo, license, etc.}

\section{Schedule}
The following schedule should only give a rough outline. Where appropriate, individual phases may also overlap and change slightly over time. In addition, regular meetings are scheduled with the supervisors to discuss progress and possible problems.



\begin{tabular}{|l|l|p{9cm}|}
	\hline
	\textbf{Month} & \textbf{Task} & \textbf{Description}\\
	\hline
	 & Induction & Analysis of the provided APIs of different social networks. Familiarization with the problems of a P2P network beyond the local network. \\
	 \hline
	 Start & Discussion of the task and goal & \\
	 \hline
	 1 - Beginning & & Masterand begins his literary work. Development of a concept for the implementation of P2P synchronization. \\
	 \hline
	 1 - Middle & Hand in exposé & Acceptance of the exposé by the supervisor \\
	 \hline
	 2 - Beginning & Start of implementation & Results of the literature search, beginning of the development of concepts, architecture...\\
	 \hline
	 3 - End & Prototype & \\
	 \hline
	 4 - Middle & Trial period & Two-week test phase with about 10 users \\
	 \hline
	 5 - Middle & Implementation completed & \\
	 \hline
	 6 - Middle & 2nd presentation & \\
	 \hline
	 6 - End & Submission of written thesis & \\
	 \hline
\end{tabular}

\end{document}