Commit Graph

508 Commits

Author SHA1 Message Date
Patrick Jentsch
d34447686b Move socketio event handlers in seperate file. 2019-08-27 10:40:29 +02:00
Patrick Jentsch
9a9e3ebf73 Add socket.io.js.map to fix the client-side "not found" error 2019-08-27 09:27:40 +02:00
Stephan Porada
9f011b27c3 Add redis message qeue 2019-08-26 14:21:06 +02:00
Patrick Jentsch
7aef3de81d Stop polling. Use SocketIO! 2019-08-23 15:05:01 +02:00
Patrick Jentsch
9f215d7613 Add socketio javascript 2019-08-22 15:13:10 +02:00
Patrick Jentsch
19f60cfd0f Codestyle and new python package versions. 2019-08-22 09:33:34 +02:00
Patrick Jentsch
bfe28eca61 Add socketio. 2019-08-21 14:41:38 +02:00
Patrick Jentsch
3a6fdaa24b Catch more exceptions. 2019-08-21 11:40:09 +02:00
Patrick Jentsch
be0241519d Don't save job filtered job lists in variables. Handle service not found error. 2019-08-21 08:37:10 +02:00
Patrick Jentsch
a86ae5c75c Use minimal list.js file. 2019-08-20 16:12:03 +02:00
Patrick Jentsch
6975076fc3 Remove ugly workaround for scheduler function. Now the current app_context is used, instead of creating a new app instance. 2019-08-20 15:57:58 +02:00
Patrick Jentsch
5ff2ef9301 Use custom List classes for corpora and job lists. 2019-08-20 11:24:52 +02:00
Patrick Jentsch
74c863e0f7 Only handle difference of changes to the job list. 2019-08-19 17:09:01 +02:00
Patrick Jentsch
5ba08a21f4 Add jsondiffpatch. 2019-08-19 17:08:27 +02:00
Patrick Jentsch
8a49b8c871 Add jsondiffpatch. 2019-08-19 17:08:16 +02:00
Patrick Jentsch
025c51646c Add javascript code for polling with update subscibers. 2019-08-16 14:54:29 +02:00
Patrick Jentsch
6d0096c2cc Renome to_jsonifyable method to to_dict 2019-08-16 14:53:59 +02:00
Patrick Jentsch
22f6c6b4b6 Addition to last commit. 2019-08-16 09:49:47 +02:00
Patrick Jentsch
4a5804460f Add admin functions to api. Add to_jsonifyable method to Job and Corpus and use it in API. 2019-08-16 09:49:27 +02:00
Stephan Porada
2832dd8b6f Merge branch 'development' of gitlab.ub.uni-bielefeld.de:sfb1288inf/opaque into development 2019-08-15 15:57:40 +02:00
Stephan Porada
388efbbd73 Add cascade deletion of jobs and corpora on user delete. 2019-08-15 15:57:27 +02:00
Stephan Porada
bccf661957 Add new admin blueprint with new user delete feature. Reorganize templates etc. 2019-08-15 15:56:53 +02:00
Patrick Jentsch
99614a56a9 Add switch for admins to get all jobs (of all users) 2019-08-15 13:33:15 +02:00
Patrick Jentsch
4ffb10fd11 Return 404 if requested ressource does not exist. 2019-08-15 12:09:00 +02:00
Patrick Jentsch
6bc1ef94dc Add api blueprint. 2019-08-15 12:02:50 +02:00
Patrick Jentsch
93330c0efb Remove api routes from main package. 2019-08-15 11:48:14 +02:00
Patrick Jentsch
47c3edeb7f Toggle paginations if one or less items are displayed. 2019-08-14 16:59:39 +02:00
Patrick Jentsch
ea399d2cdc Add api endpoints for testing. 2019-08-14 16:59:15 +02:00
Patrick Jentsch
b0c2f69568 Rename scheduler function 2019-08-13 14:27:02 +02:00
Patrick Jentsch
e3ceb19f7a Name docker client like mentioned in the api docs 2019-08-13 14:21:54 +02:00
Patrick Jentsch
db0c2532ad Use Flask-APScheduler. Move docker swarm logic to scheduler. 2019-08-13 14:10:50 +02:00
Patrick Jentsch
1fa9cbc586 pass job object instead of id. 2019-08-12 19:34:41 +02:00
Patrick Jentsch
a5687a3f1b Use scoped_session correctly. 2019-08-12 19:34:24 +02:00
Patrick Jentsch
faf54e57fa Use APScheduler to handle job execution. 2019-08-12 17:03:12 +02:00
Patrick Jentsch
344ba1a8e2 Add download helper for dev process 2019-08-12 10:37:02 +02:00
Patrick Jentsch
fa2827608c Add download helper for dev process. 2019-08-12 10:36:51 +02:00
Patrick Jentsch
e00d34ef81 Only use one file list. 2019-08-12 09:51:32 +02:00
Patrick Jentsch
759a29362c Increase desription length for corpora. 2019-08-12 08:57:21 +02:00
Patrick Jentsch
ad8a8a4696 use job id for swarm run instead of job object 2019-08-11 19:01:19 +02:00
Patrick Jentsch
a302d08405 Add infos to job model and show them on the job info pages. 2019-08-09 15:59:53 +02:00
Patrick Jentsch
359baf0297 Change job template. 2019-08-09 11:49:09 +02:00
Patrick Jentsch
a82b7292ed Change job model. 2019-08-09 11:48:43 +02:00
Patrick Jentsch
50273ea4d1 Use links as list items for corpora and jobs. Add colors for service types. Link jobs to job page. 2019-08-09 10:16:31 +02:00
Patrick Jentsch
136f2ee2b2 Add description for nlp (for now only german). 2019-08-09 10:15:51 +02:00
Patrick Jentsch
4d99c52983 Only use job_id as service name. 2019-08-09 09:13:24 +02:00
Patrick Jentsch
1d6f1a8933 Update ressource requirements. 2019-08-09 09:13:12 +02:00
Stephan Porada
388e0433fd Add searchable User table. 2019-08-08 16:06:41 +02:00
Patrick Jentsch
14b64f86ba Add pagination and search to dashboard. 2019-08-08 15:28:15 +02:00
Patrick Jentsch
12d9ac8727 Add list.js to base template. 2019-08-08 14:28:16 +02:00
Patrick Jentsch
01c5b3603e Remove job from database if an error occurs. Remove job object from session before thread starts. 2019-08-08 12:06:01 +02:00
Patrick Jentsch
202ade92e9 Set name for swarm service. 2019-08-08 12:01:55 +02:00
Patrick Jentsch
75b587e693 Remove redundant add to session. 2019-08-07 16:03:24 +02:00
Patrick Jentsch
c291fac22f Add dummy text to job section 2019-08-07 15:53:37 +02:00
Patrick Jentsch
6f8cef26e4 Map task states to job status. Colorize status badges on dashboard. 2019-08-07 15:01:37 +02:00
Patrick Jentsch
267f86d342 Remove debug message. 2019-08-07 14:36:19 +02:00
Patrick Jentsch
3de48946b9 Update job database entries on status change. 2019-08-07 14:35:33 +02:00
Patrick Jentsch
0461139bb7 Remove unused import. 2019-08-07 14:34:45 +02:00
Patrick Jentsch
e52629dd7e Remove unused import. 2019-08-07 10:22:30 +02:00
Patrick Jentsch
0ac3ed3a29 Set 'submitted' as initial job status value. 2019-08-07 10:21:04 +02:00
Patrick Jentsch
ed2d1abd8c Remove debug output. 2019-08-07 10:06:28 +02:00
Patrick Jentsch
ce051e8024 Remove dummy lists from Dashboard, show actual corpus and job list instead. 2019-08-07 09:40:18 +02:00
Patrick Jentsch
3c344bf023 Remove debug output. 2019-08-06 17:05:55 +02:00
Patrick Jentsch
f2eaa61f3c Add link to nlp service. 2019-08-06 17:04:53 +02:00
Patrick Jentsch
d860a5d279 Set backrefs correctly. 2019-08-06 17:04:38 +02:00
Patrick Jentsch
59016be061 Fix code for creation_date in corpus object. 2019-08-06 15:46:23 +02:00
Patrick Jentsch
b255f3bb4a rename createon.data to creaton.date 2019-08-06 15:41:07 +02:00
Patrick Jentsch
65becc1187 Add creation_data to corpus. 2019-08-06 15:39:09 +02:00
Patrick Jentsch
32c6b9ab8a Change path for corpora. 2019-08-06 14:56:41 +02:00
Patrick Jentsch
36753c3b51 Remove unused import. 2019-08-06 14:54:44 +02:00
Patrick Jentsch
338e4111c2 Add user id to path. 2019-08-06 14:54:00 +02:00
Stephan Porada
6f5bf674c6 Handle job creation with the new Job class. 2019-08-06 14:27:41 +02:00
Stephan Porada
175dbceac6 Add creation and registration dates. 2019-08-06 14:26:22 +02:00
Patrick Jentsch
5a67164dbe Add corpus to database after creation. 2019-08-06 13:25:27 +02:00
Patrick Jentsch
46b8550c65 Add corpus model. 2019-08-06 12:06:41 +02:00
Patrick Jentsch
525d53a906 Redesign db models. 2019-08-06 11:47:04 +02:00
Patrick Jentsch
34b87c23a7 Add corpus page. 2019-08-05 16:46:34 +02:00
Stephan Porada
94dcaa55a3 Add Job model. 2019-08-05 16:45:38 +02:00
Stephan Porada
8763e0f4db Add NLP template. Add Link to NLp template. 2019-08-05 15:36:18 +02:00
Stephan Porada
a3039e0529 Comment --keep_intermediates 2019-08-05 15:35:51 +02:00
Stephan Porada
1092312e6d Add NLP view. 2019-08-05 15:35:18 +02:00
Patrick Jentsch
ab688e290a Make swarm run more generic 2019-08-05 14:22:16 +02:00
Patrick Jentsch
602ef371f8 Fix path 2019-08-05 12:25:58 +02:00
Patrick Jentsch
f506a562cd Add version field for ocr job 2019-08-05 12:25:51 +02:00
Patrick Jentsch
a1be95ff68 Rename ocr job form and add nlp job form 2019-08-05 08:36:29 +02:00
Patrick Jentsch
f2f62c64eb No double initialization for javascript powered elements. 2019-08-02 15:15:02 +02:00
Patrick Jentsch
1b166e83e6 Add buttons to create new corpora and jobs. 2019-08-02 14:48:27 +02:00
Patrick Jentsch
a49e862432 Add redirect for login page if the user is already loged in. 2019-08-02 13:30:43 +02:00
Patrick Jentsch
0de63e2b4b Add prototype vision for dashboard elements. 2019-08-02 13:25:54 +02:00
Patrick Jentsch
e55d4aafab Replace lorem ipsum with german short explaination. 2019-08-02 13:25:34 +02:00
Patrick Jentsch
e327f0c8bf Make the about page the index page. 2019-08-02 13:24:52 +02:00
Patrick Jentsch
d6f60e4267 Change environment variable name: OPAQUE_FILES -> OPAQUE_STORAGE 2019-08-02 13:23:26 +02:00
Patrick Jentsch
df7d618b2a Add file type validation 2019-08-01 14:01:22 +02:00
Patrick Jentsch
c958edbae1 Fix wrong offset for navbar elements. 2019-08-01 14:01:06 +02:00
Patrick Jentsch
64fb17f17e Only import once from wtforms 2019-08-01 13:49:24 +02:00
Patrick Jentsch
ce6ec4af58 Add validator to file upload in corpus creation. 2019-08-01 12:16:49 +02:00
Patrick Jentsch
3964fe5444 Allow multiple file upload and add title 2019-08-01 12:16:31 +02:00
Patrick Jentsch
716ebdfa7c Add create corpus form to dashboard. 2019-08-01 11:47:14 +02:00
Patrick Jentsch
a5b7ccaeb7 Update landing page. 2019-08-01 10:33:05 +02:00
Patrick Jentsch
bf00670784 Update job file path. 2019-08-01 10:32:21 +02:00
Patrick Jentsch
78040536f2 Add input options for ocr job creation. 2019-08-01 08:22:17 +02:00
Patrick Jentsch
009e188924 Save output in input folder. 2019-08-01 08:21:47 +02:00
Patrick Jentsch
a863e8f04f Change wording. 2019-07-31 09:10:37 +02:00
Patrick Jentsch
5c976199cd fixed navbar and new navigation entries for serivces (nlp and ocr) 2019-07-19 15:16:20 +02:00
Patrick Jentsch
273cff64ea Add Layout with lorem ipsum texts to ocr page. 2019-07-19 15:15:49 +02:00
Patrick Jentsch
de6efc3aac Change path to fit in the development swarm. 2019-07-19 15:15:28 +02:00
Patrick Jentsch
2d6805a990 Remove debug information. 2019-07-19 14:42:02 +02:00
Patrick Jentsch
cd79061579 Don't use jaas as if offers not enough configuration possibilities. 2019-07-19 13:28:57 +02:00
Patrick Jentsch
7b185d929e Move ocr job to extra package. 2019-07-19 13:28:17 +02:00
Patrick Jentsch
94c51acc99 Edit layout of the about page. 2019-07-17 13:36:03 +02:00
Patrick Jentsch
7db27020c7 Add Docker Swarm interface. 2019-07-17 13:34:20 +02:00
Patrick Jentsch
735802d88e Remove options to change username and email. 2019-07-12 17:23:11 +02:00
Patrick Jentsch
6d1be8f391 Change colors for error messages in forms. 2019-07-12 17:22:15 +02:00
Patrick Jentsch
9096cc4028 Remove test message. 2019-07-12 17:21:38 +02:00
Patrick Jentsch
4377568fd4 Add about page. 2019-07-12 17:21:13 +02:00
Patrick Jentsch
6bbfc589af Add new navigation entries. 2019-07-12 17:21:04 +02:00
Stephan Porada
30f405bb88 Add some docstrings 2019-07-11 15:43:48 +02:00
Stephan Porada
4918d185c2 Add some docstrings to models.py 2019-07-11 15:33:48 +02:00
Patrick Jentsch
c5422638a6 Remove first APScheduler tests. 2019-07-11 15:22:33 +02:00
Patrick Jentsch
0266886874 Remove merge marker. 2019-07-11 09:41:33 +02:00
Patrick Jentsch
b82ab23079 Merge branch 'development' of gitlab.ub.uni-bielefeld.de:sfb1288inf/opaque into development 2019-07-11 09:40:37 +02:00
Patrick Jentsch
bb2b0294fa Add rudimentary job handler 2019-07-11 09:40:12 +02:00
Patrick Jentsch
e6446834b4 Add rudimentary job handler 2019-07-11 09:35:55 +02:00
Patrick Jentsch
c2139500e2 Merge branch 'development' of gitlab.ub.uni-bielefeld.de:sfb1288inf/opaque into development 2019-07-10 14:37:37 +02:00
Patrick Jentsch
ad0c754b8b Add scheduler output skeleton. 2019-07-10 14:37:31 +02:00
Stephan Porada
ef25ba7545 Merge branch 'development' of gitlab.ub.uni-bielefeld.de:sfb1288inf/opaque into development 2019-07-10 14:36:33 +02:00
Stephan Porada
4ec9e2ff41 Add flask_table for admin view 2019-07-10 14:36:31 +02:00
Stephan Porada
eef9ec9b37 Add title as context and remove wrong title from templates 2019-07-10 14:35:37 +02:00
Patrick Jentsch
d41702bc51 Add scheduler test. 2019-07-10 14:20:22 +02:00
Patrick Jentsch
9679ef80c8 Add scheduler. 2019-07-10 13:41:48 +02:00
Patrick Jentsch
a978ea5782 Remove link from user data in sidenav. 2019-07-10 10:56:04 +02:00
Patrick Jentsch
7c1496a4df Add new opaque logo icon and sidenav header. 2019-07-10 10:09:11 +02:00
Patrick Jentsch
a3ca0f27ac Use new common Layout for all pages now. 2019-07-10 09:47:29 +02:00
Patrick Jentsch
8405f54868 Use DFG instead SFB logo in footer. 2019-07-10 09:47:04 +02:00
Patrick Jentsch
8a509ecc63 Layout update 2019-07-10 08:56:49 +02:00
Patrick Jentsch
93b67cb297 Update page layout. 2019-07-09 16:59:04 +02:00
Patrick Jentsch
678ac670ea Update settings page. 2019-07-09 16:18:21 +02:00
Stephan Porada
79cccd36ee Add Roles and Permission models so that only admins can access /admin 2019-07-09 15:41:16 +02:00
Stephan Porada
66d9ab8a93 Add custom error pages 2019-07-09 15:39:28 +02:00
Stephan Porada
26016458dd Merge branch 'development' of gitlab.ub.uni-bielefeld.de:sfb1288inf/opaque into development 2019-07-09 15:38:53 +02:00
Stephan Porada
1db630b74a Add missing title into render_template 2019-07-09 15:38:21 +02:00
Patrick Jentsch
7f76e7884f Rename account form. 2019-07-09 14:53:17 +02:00
Patrick Jentsch
3187cca1af Implement cards the correct way. card-action outside of card-content 2019-07-09 14:13:56 +02:00
Patrick Jentsch
37765c755a Rename profile to account and enable password change. 2019-07-09 13:40:33 +02:00
Patrick Jentsch
de2aacc2de Add auth.profile view. 2019-07-09 13:27:24 +02:00
Patrick Jentsch
dec9efa074 Add automatic confirmation mail after changing e-mail adress. 2019-07-09 13:27:13 +02:00
Patrick Jentsch
43be1045d9 Fix static exception for unconfirmed user requests. 2019-07-09 13:18:46 +02:00
Patrick Jentsch
a3efdc87cc Add change profile page. 2019-07-09 11:53:40 +02:00
Patrick Jentsch
b311fcb9de Enable login by username. 2019-07-09 11:00:41 +02:00
Stephan Porada
586bf8af37 Change maind.index to main.index 2019-07-09 10:17:58 +02:00
Stephan Porada
1ec93fa7d6 Add message to confirm account for unconfirmed users 2019-07-09 10:09:35 +02:00
Stephan Porada
1936e1493d Add new password icon for login template 2019-07-08 16:09:28 +02:00
Stephan Porada
3b6c9f22dd Add email confirmation for nuew users 2019-07-08 16:09:00 +02:00
Stephan Porada
8c121a63de Add .j2 suffix for template files 2019-07-08 16:08:34 +02:00
Stephan Porada
ce5179e10d Add .j2 suffix for template files 2019-07-08 16:07:46 +02:00
Stephan Porada
5069646b96 Merge branch 'development' of gitlab.ub.uni-bielefeld.de:sfb1288inf/opaque into development 2019-07-08 16:07:15 +02:00
Stephan Porada
11a3e7551f Add email confirmation 2019-07-08 15:59:15 +02:00
Stephan Porada
ae11e04c6c Add email confirmation 2019-07-08 15:58:46 +02:00
Patrick Jentsch
49222eeeef Add password reset functionality. 2019-07-08 15:13:32 +02:00
Patrick Jentsch
bc9f64ba90 Link password reset request page to log in screen. 2019-07-08 14:14:35 +02:00
Patrick Jentsch
59ad0c1668 Fix wrong merge. 2019-07-08 14:08:11 +02:00
Stephan Porada
d1d5e5f114 Add registration form, view, template 2019-07-08 14:06:35 +02:00
Stephan Porada
999e51bcc5 Merge branch 'development' of gitlab.ub.uni-bielefeld.de:sfb1288inf/opaque into development 2019-07-08 14:05:04 +02:00
Stephan Porada
9cca7de035 Add indentation 2019-07-08 14:04:02 +02:00
Patrick Jentsch
1a973bfbc6 Add page for password reset. 2019-07-08 13:56:09 +02:00
Patrick Jentsch
4ef5b480b1 Add reset token generation functionality in User class. 2019-07-08 13:55:56 +02:00
Patrick Jentsch
686b621d54 Merge branch 'development' of gitlab.ub.uni-bielefeld.de:sfb1288inf/opaque into development 2019-07-08 11:29:17 +02:00
Patrick Jentsch
bd49bb4dae Add e-mail code. 2019-07-08 11:29:11 +02:00
Stephan Porada
511ccf96f6 Merge branch 'development' of gitlab.ub.uni-bielefeld.de:sfb1288inf/opaque into development 2019-07-08 11:27:56 +02:00
Stephan Porada
7adaf3f22d Add register view 2019-07-08 11:27:54 +02:00
Patrick Jentsch
baf7c1192b Merge branch 'development' of gitlab.ub.uni-bielefeld.de:sfb1288inf/opaque into development 2019-07-08 11:10:35 +02:00
Stephan Porada
073b0e0e05 Merge branch 'development' of gitlab.ub.uni-bielefeld.de:sfb1288inf/opaque into development 2019-07-08 11:10:09 +02:00
Patrick Jentsch
5c0ba9f7d8 Add title as template param. 2019-07-08 11:10:09 +02:00
Stephan Porada
7a66e4a778 Merge branch 'development' of gitlab.ub.uni-bielefeld.de:sfb1288inf/opaque into development 2019-07-08 11:10:00 +02:00
Patrick Jentsch
0a9227c7c9 Return template for GET requests. 2019-07-08 11:08:49 +02:00
Stephan Porada
98fcfe1e7d Add registrationForm 2019-07-08 11:08:24 +02:00
Patrick Jentsch
dd4fcdfe20 Add password reset request view. 2019-07-08 11:04:52 +02:00
Patrick Jentsch
4076e44194 Add e-mail templates for password reset request. 2019-07-08 11:00:49 +02:00
Patrick Jentsch
311498415b Add form for password reset request. 2019-07-08 10:54:29 +02:00
Patrick Jentsch
3e8ce1e719 Add Flask-Mail to app instance. 2019-07-08 10:53:54 +02:00
Patrick Jentsch
8e86e0a0e9 Positioning 2019-07-08 10:16:23 +02:00
Patrick Jentsch
296db67188 Add remember me! 2019-07-08 10:07:26 +02:00
Patrick Jentsch
3b04addc17 Implement login form in template and add support for flash messages via a toast. 2019-07-08 09:05:59 +02:00
Patrick Jentsch
b6a67fcd4d Merge base templates. Add database support. Add blueprint for main. 2019-07-05 14:47:35 +02:00
Patrick Jentsch
f6b2dd3282 Add example image for server activities. 2019-07-05 13:55:35 +02:00
Patrick Jentsch
ed279deede Remove unused code. 2019-07-05 13:55:14 +02:00
Patrick Jentsch
228bb5ee19 Add index template and change some ids to defaults like the doc suggests. 2019-07-05 13:54:08 +02:00
Patrick Jentsch
ab9e50b46b Fix slidenav-trigger target 2019-07-05 11:06:37 +02:00
Patrick Jentsch
96960a9e25 Create and use module templates for different page sections. 2019-07-05 11:04:45 +02:00
Patrick Jentsch
c27408ef78 Move material icons. 2019-07-05 11:03:48 +02:00
Patrick Jentsch
4eb7a7b27b Add title parameter. 2019-07-05 11:02:56 +02:00
Patrick Jentsch
3d0fb27147 Add documentation and fixes for sidenav-fixed usage. 2019-07-05 11:02:24 +02:00
Stephan Porada
7450770518 Add picture with background color white 2019-07-04 16:07:19 +02:00
Stephan Porada
fed711d23b Add login and register templates and routes 2019-07-04 15:17:51 +02:00
Patrick Jentsch
e127e1e5c4 Add navigation structure. 2019-07-04 14:59:23 +02:00
Patrick Jentsch
05cbf1fed5 Add row structure to base template 2019-07-04 12:23:09 +02:00
Stephan Porada
fa4fa57a89 Change block name from body to page_content 2019-07-04 12:18:49 +02:00
Patrick Jentsch
f586d762e3 Remove footer 2019-07-04 12:01:00 +02:00
Patrick Jentsch
e3d4fa4d90 Add modularity to base 2019-07-04 11:59:52 +02:00
Patrick Jentsch
b5b6a1b9a7 Add login template 2019-07-04 11:59:24 +02:00
Patrick Jentsch
5f75019c8e Add favicon 2019-07-04 11:58:46 +02:00
Stephan Porada
f4fcba887d Add title if condition 2019-07-04 11:36:23 +02:00
Stephan Porada
b93bbcb756 Add auth and main lueprint structure 2019-07-04 11:24:06 +02:00
Stephan Porada
ea8250c805 Change href links to url_for() 2019-07-04 11:11:07 +02:00
Stephan Porada
8410df3231 Add material design icon font 2019-07-04 11:10:38 +02:00
Patrick Jentsch
bc5ec9695f Add materializecss. 2019-07-04 10:40:23 +02:00
Patrick Jentsch
96fc8f4064 Load config from 'config.py'. 2019-07-03 15:40:45 +02:00
Stephan Porada
b49fade1a2 Add folders template and static 2019-07-03 12:23:58 +02:00
Patrick Jentsch
da8ab512a9 Create project skeleton. 2019-07-03 10:31:23 +02:00