aboutsummaryrefslogtreecommitdiff
path: root/template/gsoc-2018-gnunet-webui.html.j2
blob: 69feea8c9b0b9ca0b41dba091be69bf98991e3e3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
{% extends "common/base.j2" %}
{% block body_content %}
<main id="maincontent">
  <article class="d-flex flex-column p-2 bd-highlight">
    <div class="container">
      <div class="text-center">
        <header>
          <h1>{{ _("GSoC 2018: GNUnet WebUI (GNUnet Web-based User Interface)") }}</h1>
        </header>
        <br />
        <p>
          {% trans %}
            Tue, 08/14/2018 - 07:55, Phil Buschmann
          {% endtrans %}
        </p>
      </div>
      <h4>What was done?</h4>
      <p>
        {% trans %}
          In the context of Google Summer of Code 2018, my mentor
          (Martin Schanzenbach) and I have worked on creating and
          extending the REST API of GNUnet. Currently, we mirrored
          the functionality of following commands:
        {% endtrans %}
      </p>
      <ul>
        <li>gnunet-identity</li>
        <li>gnunet-namestore</li>
        <li>gnunet-gns</li>
        <li>gnunet-peerinfo</li>
      </ul>
      <p>
        {% trans %}
          Additionally, we developed a website with the Javascript
          framework Angular 6 and the design framework iotaCSS to use
          the new REST API. The REST API of GNUnet is now documented
          with Sphinx.
        {% endtrans %}
      </p>
      <h4>Why did we create a REST API?</h4>
      <p>
        {% trans %}
          ... when you can use the command line tools?  We need to
          keep in mind, that everyone has the right to stay secure and
          private but not everyone feels comfortable using a
          terminal. The further developed REST access to GNUnet APIs
          in addition to the new web application allows new users to
          interact with GNUnet over a well known tool: their
          browsers. This addition to the C API and the command line
          tools may attract new users and developers.
        {% endtrans %}
      </p>
      <h4>How can we use it?</h4>
      <ol>
        {% trans %}
          <li>
            The REST API developed in GNUnet<br> The REST API is
            already merged into the gnunet.git repository
            (<a href="https://gnunet.org/git/gnunet.git/">GNUnet Main Git</a>).<br />
            To use the new features, clone the repository and follow
            the <a href="https://gnunet.org/en/install.html">Installation</a>
            on gnunet.org. Then, start the rest service with
            "gnunet-arm -i rest".
          </li>
        <li>
          The Web Application<br>
          The web application is available under the gnunet-webui.git
          repository
          (<a href="https://gnunet.org/git/gnunet-webui.git/">GNUnet WebUI Git</a>).<br />
          You need to install the newest version of 'node' and
          'yarn'. Dependent on your system, you may need to download
          newer versions and install them manually and not over your
          packet manager. After the installation succeeded, you need to
          clone the repository. Then, you need to run "yarn install" and
          "yarn start" for testing purposes. To deploy the website (keep
          in mind, that this website communicates with another localhost
          instance) use "yarn build" for building the web application
          and use the output in the 'dist' directory.
        </li>
        <li>
          The Documentation<br />
          The documentation is available under the gnunet-rest-api.git
          repository
          (<a href="https://gnunet.org/git/gnunet-rest-api.git/">GNUnet REST API Docmentation Git</a>).<br />
          Clone the repository
          and "make html". Then open the 'index.html' under
          'build/html/'.
        </li>
      {% endtrans %}
      </ol>
      <p>
        {% trans %}
          Please, give it a try and contact me, if you find any
          bugs or unintentional features. ;)
        {% endtrans %}
      </p>
      <h4>What can be improved?</h4>
      <p>
        {% trans %}
          Right now, the build process of the web application may be a
          little too complex for a casual user. We may be able to solve
          this by using docker.<br />  Additionally, the web application
          does not prevent wrong inputs but responds with error
          messages. Adding GNUnet Records is currently only usable for
          people, who know how a GNS Record looks like. This can be
          adapted to each record type.<br />
          Last but not least, additional features, design changes,
          etc...
        {% endtrans %}
      </p>
      <p>
        {% trans %}
          Thanks for reading.
        {% endtrans %}
      </p>
    </div>
  </article>
{% endblock body_content %}