summaryrefslogtreecommitdiff
path: root/reveal.js/evalg.html
diff options
context:
space:
mode:
Diffstat (limited to 'reveal.js/evalg.html')
-rw-r--r--reveal.js/evalg.html274
1 files changed, 138 insertions, 136 deletions
diff --git a/reveal.js/evalg.html b/reveal.js/evalg.html
index e163950..d68a345 100644
--- a/reveal.js/evalg.html
+++ b/reveal.js/evalg.html
@@ -1,160 +1,162 @@
1<!doctype html> 1<!doctype html>
2<html lang="en"> 2<html lang="en">
3 <head> 3 <head>
4 <meta charset="utf-8"> 4 <meta charset="utf-8">
5 <title>Utviklerforum: eValg 3</title> 5 <title>Utviklerforum: eValg 3</title>
6 <meta name="author" content="Simeon Simeonov"> 6 <meta name="author" content="Simeon Simeonov">
7 <meta name="apple-mobile-web-app-capable" content="yes"> 7 <meta name="apple-mobile-web-app-capable" content="yes">
8 <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> 8 <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
9 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> 9 <meta name="viewport" content="width=device-width, initial-scale=1.0">
10 <link rel="stylesheet" href="css/reveal.css">
11 <link rel="stylesheet" href="css/theme/serif.css" id="theme">
12 10
13 <!-- Theme used for syntax highlighting of code --> 11 <link rel="stylesheet" href="dist/reset.css">
14 <link rel="stylesheet" href="lib/css/zenburn.css"> 12 <link rel="stylesheet" href="dist/reveal.css">
15 </head>
16 <body>
17 <div class="reveal">
18 13
19 <!-- Any section element inside of this container is displayed as a slide --> 14 <link rel="stylesheet" href="dist/theme/serif.css" id="theme">
20 <div class="slides">
21 <section>
22 <h1>eValg 3</h1>
23 <h3>Utviklerforum (28.11.2019)</h3>
24 <br/>
25 <p>Simeon Simeonov (<em>sgs</em> @ USITINT)</p>
26 </section>
27 15
28 <section> 16 <!-- Theme used for syntax highlighting of code -->
29 <h2>Agenda</h2> 17 <link rel="stylesheet" href="plugin/highlight/monokai.css" id="highlight-theme">
30 <br/> 18 </head>
31 <ul> 19 <body>
32 <li><p>Introduction</p></li> 20 <div class="reveal">
33 <li><p>Components</p></li>
34 <li><p>Development</p></li>
35 <li><p>Q &amp; A</p></li>
36 </ul>
37 </section>
38 21
39 <section> 22 <!-- Any section element inside of this container is displayed as a slide -->
40 <h2>Introduction</h2> 23 <div class="slides">
41 <p><em>eValg 3</em></p> 24 <section>
42 <ul> 25 <h1>eValg 3</h1>
43 <li><p>Development started in 2017 and then again in 2018</p></li> 26 <h3>Utviklerforum (28.11.2019)</h3>
44 <li><p>The last trial election (https://valg-pilot.uio.no) ended 15.11.2019</p></li> 27 <br/>
45 <li><p>Currently the eValg team consists of two developers (<em>skh</em>, <em>sgs</em>)</p></li> 28 <p>Simeon Simeonov (<em>sgs</em> @ USITINT)</p>
46 </ul> 29 </section>
47 </section>
48 30
31 <section>
32 <h2>Agenda</h2>
33 <br/>
34 <ul>
35 <li><p>Introduction</p></li>
36 <li><p>Components</p></li>
37 <li><p>Development</p></li>
38 <li><p>Q &amp; A</p></li>
39 </ul>
40 </section>
49 41
50 <section> 42 <section>
51 <section> 43 <h2>Introduction</h2>
52 <h2>Components</h2> 44 <p><em>eValg 3</em></p>
53 <br/> 45 <ul>
54 <ul> 46 <li><p>Development started in 2017 and then again in 2018</p></li>
55 <li><p>Backend</p></li> 47 <li><p>The last trial election (https://valg-pilot.uio.no) ended 15.11.2019</p></li>
56 <li><p>Dataporten</p></li> 48 <li><p>Currently the eValg team consists of two developers (<em>skh</em>, <em>sgs</em>)</p></li>
57 <li><p>Frontend</p></li> 49 </ul>
58 </ul> 50 </section>
59 </section>
60 51
61 <section>
62 <h3>Backend</h3>
63 <ul>
64 <li><p>General: Python >= 3.6, Flask, SQLAlchemy</p></li>
65 <li><p>DB: Alembic, SQLAlchemy-continuum, Flask-migrate</p></li>
66 <li><p>Signing & encryption: pynacl</p></li>
67 <li><p>Querying (GraphQL): graphene, graphene-sqlalchemy</p></li>
68 <li><p>Others: pytz, sentry_sdk, python-json-logger and many more</p></li>
69 </ul>
70 </section>
71 52
72 <section> 53 <section>
73 <h3>Dataporten</h3> 54 <section>
74 <ul> 55 <h2>Components</h2>
75 <li><p>OpenID Connect: Moved from Authorization code flow to Implicit flow (id_token token) in 2018</p></li> 56 <br/>
76 </ul> 57 <ul>
77 </section> 58 <li><p>Backend</p></li>
59 <li><p>Dataporten</p></li>
60 <li><p>Frontend</p></li>
61 </ul>
62 </section>
78 63
79 <section> 64 <section>
80 <h3>Frontend</h3> 65 <h3>Backend</h3>
81 <ul> 66 <ul>
82 <li><p>General: React, react-oidc, GraphQL</p></li> 67 <li><p>General: Python >= 3.6, Flask, SQLAlchemy</p></li>
83 <li><p>Encryption: TweetNaCl - a crypto library in 100 tweets</p></li> 68 <li><p>DB: Alembic, SQLAlchemy-continuum, Flask-migrate</p></li>
84 <li><p>Many, many more libraries and packages</p></li> 69 <li><p>Signing & encryption: pynacl</p></li>
85 </ul> 70 <li><p>Querying (GraphQL): graphene, graphene-sqlalchemy</p></li>
86 </section> 71 <li><p>Others: pytz, sentry_sdk, python-json-logger and many more</p></li>
72 </ul>
73 </section>
87 74
88 </section> 75 <section>
76 <h3>Dataporten</h3>
77 <ul>
78 <li><p>OpenID Connect: Moved from Authorization code flow to Implicit flow (id_token token) in 2018</p></li>
79 </ul>
80 </section>
89 81
82 <section>
83 <h3>Frontend</h3>
84 <ul>
85 <li><p>General: React, react-oidc, GraphQL</p></li>
86 <li><p>Encryption: TweetNaCl - a crypto library in 100 tweets</p></li>
87 <li><p>Many, many more libraries and packages</p></li>
88 </ul>
89 </section>
90 90
91 <section> 91 </section>
92 92
93 <section>
94 <h2>Development</h2>
95 <br/>
96 <ul>
97 <li><p>Improvements</p></li>
98 <li><p>Goals &amp; challenges</p></li>
99 </ul>
100 </section>
101 93
102 <section> 94 <section>
103 <h3>Improvements</h3>
104 <ul>
105 <li><p>Testing (<em>pytest</em>) & CI (<em>Jenkins</em>) - the best in USITINT so far?!? :)</p></li>
106 <li><p>No more FNR* and cross domain access. #GDPR</p></li>
107 <li><p>No more external programs (<em>GnuPG</em>, <em>evalg.jar</em>) and envelopes ...</p></li>
108 <li><p>Insight in all possible election paths in case of drawing</p></li>
109
110 </ul>
111 <p><small><em>* - work in progress</em></small></p>
112 </section>
113 95
114 <section> 96 <section>
115 <h3>Goals &amp; challenges</h3> 97 <h2>Development</h2>
116 <ul> 98 <br/>
117 <li><p>Anyone should be able to create an election</p></li> 99 <ul>
118 <li><p>No private key shall ever live in the backend</p></li> 100 <li><p>Improvements</p></li>
119 <li><p>Log &amp; audit all changes</p></li> 101 <li><p>Goals &amp; challenges</p></li>
120 <li><p>It is never too late to change a pollbook</p></li> 102 </ul>
121 <li><p>It is never too late to master public-key cryptography ... :)</p></li> 103 </section>
122 </ul>
123 </section>
124 104
125 </section> 105 <section>
106 <h3>Improvements</h3>
107 <ul>
108 <li><p>Testing (<em>pytest</em>) & CI (<em>Jenkins</em>) - the best in USITINT so far?!? :)</p></li>
109 <li><p>No more FNR* and cross domain access. #GDPR</p></li>
110 <li><p>No more external programs (<em>GnuPG</em>, <em>evalg.jar</em>) and envelopes ...</p></li>
111 <li><p>Insight in all possible election paths in case of drawing</p></li>
112
113 </ul>
114 <p><small><em>* - work in progress</em></small></p>
115 </section>
126 116
117 <section>
118 <h3>Goals &amp; challenges</h3>
119 <ul>
120 <li><p>Anyone should be able to create an election</p></li>
121 <li><p>No private key shall ever live in the backend</p></li>
122 <li><p>Log &amp; audit all changes</p></li>
123 <li><p>It is never too late to change a pollbook</p></li>
124 <li><p>It is never too late to master public-key cryptography ... :)</p></li>
125 </ul>
126 </section>
127 127
128 <section> 128 </section>
129 <h2>Q &amp; A</h2>
130 <h3>???</h3>
131 <p><em>“Old questions are not answered—they only go out of fashion”</em> - Donald Schön</p>
132 </section>
133 </div>
134 </div>
135 129
136 <script src="lib/js/head.min.js"></script>
137 <script src="js/reveal.js"></script>
138 <script>
139 130
140 // More info https://github.com/hakimel/reveal.js#configuration 131 <section>
141 Reveal.initialize({ 132 <h2>Q &amp; A</h2>
142 controls: true, 133 <h3>???</h3>
143 progress: true, 134 <p><em>“Old questions are not answered—they only go out of fashion”</em> - Donald Schön</p>
144 history: true, 135 </section>
145 center: true, 136 </div>
146 transition: 'slide', // none/fade/slide/convex/concave/zoom 137 </div>
147 // More info https://github.com/hakimel/reveal.js#dependencies
148 dependencies: [
149 { src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } },
150 { src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
151 { src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
152 { src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
153 { src: 'plugin/zoom-js/zoom.js', async: true },
154 { src: 'plugin/notes/notes.js', async: true }
155 ]
156 });
157 </script>
158 138
159 </body> 139 <script src="dist/reveal.js"></script>
140 <script src="plugin/zoom/zoom.js"></script>
141 <script src="plugin/notes/notes.js"></script>
142 <script src="plugin/search/search.js"></script>
143 <script src="plugin/markdown/markdown.js"></script>
144 <script src="plugin/highlight/highlight.js"></script>
145 <script>
146
147 // Also available as an ES module, see:
148 // https://revealjs.com/initialization/
149 Reveal.initialize({
150 controls: true,
151 progress: true,
152 center: true,
153 hash: true,
154
155 // Learn about plugins: https://revealjs.com/plugins/
156 plugins: [ RevealZoom, RevealNotes, RevealSearch, RevealMarkdown, RevealHighlight ]
157 });
158
159 </script>
160
161 </body>
160</html> 162</html>