Difference between revisions of "Google Summer of Code 2019 Accepted projects"

From Ελεύθερο Λογισμικό / Λογισμικό ανοιχτού κώδικα
Jump to navigation Jump to search
m
m
Line 165: Line 165:
 
Thesis subjects must fall under one or more topics, from a list that the department sets and the topic information along with the title, a description and a list of references is stored with each subject.
 
Thesis subjects must fall under one or more topics, from a list that the department sets and the topic information along with the title, a description and a list of references is stored with each subject.
  
When the profesor finally decides on the student(s) that will carry out a project, he/she has to propose two more professors from the department or externals that will co-supervise the project.
+
When the professor finally decides on the student(s) that will carry out a project, he/she has to propose two more professors from the department or externals that will co-supervise the project.
  
 
When all the assignments have been fixed by the administrator of the TMS, they can be exported in a document which can be published on the department web site.
 
When all the assignments have been fixed by the administrator of the TMS, they can be exported in a document which can be published on the department web site.
Line 328: Line 328:
 
=== Mentors ===
 
=== Mentors ===
 
[https://www.dit.hua.gr/~varlamis/ Iraklis Varlamis], [https://github.com/tgkarounos Theodoros Karounos]
 
[https://www.dit.hua.gr/~varlamis/ Iraklis Varlamis], [https://github.com/tgkarounos Theodoros Karounos]
 
== <span lang="en-US">OpenProject Work-Package #1 to support modeling of the PM<sup>2 </sup>methodology for project management</span> ==
 
 
==== <span lang="en-US">Brief Explanation:</span> ====
 
<span lang="en-US">PM²
 
is a Project Management Methodology developed by the European
 
Commission. PM² is built on Project Management best practices and is
 
supported by the following four (4) pillars: </span>
 
 
# <span lang="en-US">a project governance model(Roles & Responsibilities) </span>
 
# <span lang="en-US">a project lifecycle (Project Phases) </span>
 
# <span lang="en-US">a set of processes (Project Management activities) </span>
 
# <span lang="en-US">a set of project artifacts (templates and guidelines). </span>
 
 
<span lang="en-US">For
 
a full support of PM² Project Management Methodology by OpenProject,
 
new modules should be developed on OpenProject that will allow
 
modeling of the abovementioned four pillars of PM².</span>
 
 
==== <span lang="en-US">Expected Results:</span> ====
 
<span lang="en-US">Support
 
for the process of PM² itself in OpenProject: That is, development
 
of  Open Project plug-ins which  should add support for defining and
 
handling the roles, responsibilities, phases and activities (in terms
 
of PM² governance, life-cycle and processes pillars) for every new
 
project. </span>
 
 
<span lang="en-US">The
 
work of this Work-Package includes:</span>
 
* <span lang="en-US">the analysis of PM2 requirements </span>
 
* <span lang="en-US">the setup of OpenProject development environment (Development VM)</span>
 
* <span lang="en-US">the modeling of PM2 requirements in OpenProject environment via the development of one or more plug-ins. The plug-ins should follow the Open Project plug-in guidelines and be consistent with the OpenProject API (http://docs.openproject.org/apiv3-doc/). The plug-ins should add the required models, logic and DB tables in order to: </span>
 
 
** <span lang="en-US">Support the PM² Governance Model (Roles, Responsibilities) </span>
 
** <span lang="en-US">Support the PM² Phases </span>
 
** <span lang="en-US">Support the PM² Artifacts per Phase</span>
 
** <span lang="en-US">Support all PM<sup>2 </sup>plans and logs such as Change Log, Communications, Issue, Project, Quality, Requirements, and Risk </span>
 
* <span lang="en-US">The development of tests for all the requirements (e.g. initiate PM² project, initiate phases, add artifacts, generate reports).</span>
 
 
==== <span lang="en-US">'''Related GitHub repositories'''</span> ====
 
<span lang="en-US">https://github.com/opf/openproject
 
</span>
 
 
https://ec.europa.eu/isa2/solutions/open-pm2_en/
 
 
==== '''Knowledge Prerequisites''' ====
 
* <span lang="en-US">R</span>uby
 
 
* <span lang="en-US">Ruby on Rails</span>
 
 
* <span lang="en-US">Postgres </span>
 
 
* <span lang="en-US">Problem Analysis & Modeling </span>
 
 
==== Mentors ====
 
[http://users.ntua.gr/karounos/karounos.html Theodoros Karounos], [http://www.3-lab.eu/core-team/george-blanas/ George Blanas], [https://www.linkedin.com/in/nicoskourounakis/ Nicos Kourounakis]
 
 
== <span lang="en-US">OpenProject Work-Package #2 to support functionality of the PM<sup>2 </sup>methodology for project management</span> ==
 
 
==== <span lang="en-US">Brief Explanation:</span> ====
 
<span lang="en-US">This
 
work-package is based on and extends OpenProject Work-Package #1
 
(Support modeling of the PM2 methodology for project management) by
 
adding visual elements that will support for PM²project artifacts
 
through templates, wizards, tools and guidelines.</span>
 
 
<span lang="en-US">'''Expected
 
Results:'''</span>
 
 
<span lang="en-US">Integrate
 
the outputs of Work-Package #1 in OpenProject UI. For this, developed
 
plug-ins from Work_Package #1 will be extended and new plug-ins will
 
be developed in order to provide a rich User interface for the user.
 
The plug-ins should follow the Open Project plug-in guidelines and be
 
consistent with the OpenProject API
 
(http://docs.openproject.org/apiv3-doc/)
 
.</span>
 
 
<span lang="en-US">The
 
developed functionality should: </span>
 
 
* <span lang="en-US">Provide wizards allowing the PM² user to:</span>
 
 
** <span lang="en-US">create and initiate PM² based project Templates</span>
 
** <span lang="en-US">Initiate Project phases </span>
 
** <span lang="en-US">add PM² artifacts per phase</span>
 
** <span lang="en-US">create reporting templates with visual content like Gantt and Pert charts </span>
 
** <span lang="en-US">add PM² artifacts with textual content like Risk Logs.</span>
 
* <span lang="en-US">Support all PM<sup>2 </sup>plans and logs such as Change Log, Communications, Issue, Project ,Quality , Requirements, Risk </span>
 
* <span lang="en-US">Provide tools such as</span>
 
 
** <span lang="en-US">3-point estimation with triangular and/or beta distribution</span>
 
** <span lang="en-US">Critical Path Method (CPM)</span>
 
** <span lang="en-US">Monte-Carlo analysis/technique</span>
 
** <span lang="en-US">Network Diagram (FS, SS, FF)</span>
 
** <span lang="en-US">Work Breakdown Structure (WBS)</span>
 
* <span lang="en-US">Support Agile Specific Artifacts and Tools, e.g. Iterations, Kanboards etc.</span>
 
* <span lang="en-US">Support visual representation of PM² using standards like BPMN, STRATML, RDF etc</span>
 
* <span lang="en-US">Allow connection with external systems (e.g. Open ID, Media-Wiki)</span>
 
* <span lang="en-US">Allow for Export and import for/to other formats for data exchange (e.g. MS Project export/import, PDF, XLS etc.).</span>
 
 
==== <span lang="en-US">'''Related GitHub repositories'''</span> ====
 
<span lang="en-US">https://github.com/opf/openproject
 
</span>
 
 
<span lang="en-US">https://ec.europa.eu/isa2/solutions/open-pm2_en</span>
 
 
==== '''Knowledge Prerequisites''' ====
 
*Ruby
 
 
* Ruby on Rails
 
 
* Angular
 
 
* <span lang="en-US">ES6</span>
 
<nowiki>*</nowiki>
 
 
<span lang="en-US">statistical modeling methods for PM (Monte carlo , CPM etc)</span>
 
 
==== Mentors ====
 
[http://users.ntua.gr/karounos/karounos.html Theodoros Karounos], [http://www.3-lab.eu/core-team/george-blanas/ George Blanas], [https://www.linkedin.com/in/nicoskourounakis/ Nicos Kourounakis]
 
  
  

Revision as of 23:51, 13 May 2019


Contents

Upgrade UMLGraph with Java's new doclet API[edit | edit source]

Brief Explanation[edit | edit source]

UMLGraph allows the declarative specification and drawing of UML class and sequence diagrams. One specifies a class diagram using the Java syntax complemented by javadoc tags. Running the UmlGraph doclet on the specification will generate a Graphviz diagram specification that can be automatically processed to create Postscript, PNG, SVG, JPEG, fig, or Framemaker drawings. The objective of the proposed project is to upgrade the UMLGraph code so that it uses the jdk.javadoc.doclet Doclet API rather than the currently used older package com.sun.javadoc. This new API provides an environment which, in conjunction with the Language Model API and Compiler Tree API, allows clients to inspect the source-level structures of programs and libraries, including API comments embedded in the source. Details on the mapping of old types to new types can be found in the Migration Guide https://docs.oracle.com/javase/9/docs/api/jdk/javadoc/doclet/package-summary.html#migration. In addition the project will also add support for Java features such as Lambdas and Generics, unit tests, and update the corresponding integration tests.

Expected Results[edit | edit source]

It is expected that the project will deliver a well-tested version of UMLGraph built around the new jdk.javadoc.doclet Doclet API with support for Java features such as Lambdas and Generics.

Related Repositories[edit | edit source]

https://github.com/dspinellis/UMLGraph

Knowledge Prerequisites[edit | edit source]

Java, UML

Mentors:[edit | edit source]

Diomidis Spinellis, Stamelos Ioannis



API Design Tool
[edit | edit source]

Mentor Organisation: National Bank Of Greece[edit | edit source]

Brief Explanation:[edit | edit source]

In the new world of “API Design First Approach” there is a need for a tool that can be used from both business or developer people to design the APIs. There are tools/IDE in the market at the moment that claim to fit this need but none has all the features required for the job.


Related GitHub repositories[edit | edit source]

There is no project URL at the moment.

Expected Results[edit | edit source]

    • The API Design tool should fulfill the following requirements:
    • A person with no developer skills to be able to design/create an API visually.
    • A developer to be able to design the API manually by writing/editing the swagger file.
    • To be able to sync bidirectional changes to the API swagger file between the tool and a GitHub repository.
    • To be able to download the API in a swagger yaml or json file (resolved or unresolved format).
    • To be able to generate the API server stub in c#.
    • To be able to preview the documentation of the API.
    • To be able to download the documentation of the API.
    • To be able to mock the API functionality.
    • To be able to organize the APIs in projects and Teams.
    • To be able to invite other people to collaborate with the API design.
    • To be able to assign specific rights/roles to the people designing/viewing the the API.
    • To be able to make public or private an API.
    • To be able to create OAS2 and OAS3 APIs or convert between them.
    • To be able to view at a glance what were the last changes and who made them.

Knowledge Prerequisites[edit | edit source]

AngularJS or ReactJS (latest stable version) C#

Mentors:[edit | edit source]

Bogdos Nikos, Gkozntari Stamatia, Koliarmou Despina, Agapitou Flora.

Greek Government Gazette text mining, cross-linking, and codification - 3gm[edit | edit source]

Brief Explanation[edit | edit source]

Government Gazette text mining, cross-linking, and codification Project (or 3gm for short) uses Natural Language Processing Methods and Practices on Greek Legislation.

The project is primarily aimed at providing with the most recent versions of each law, i.e. an automated codex (Code of Law) [1] via NLP methods and practices.

With 3gm, the Greek Government Gazzete Issues (FEKs) are automatically fetched, denoised and parsed in order to extract the amendments made to laws by newer ones [2]. A versioning history of each law is kept on the database and is continuously served to the citizen via a web application. Therefore anyone has access to all different versions of each law at any time. The codification procedure is done by hand and this project automates it. The Greek Government Gazzete Documents are also kept on Internet Archive for easier retrieval and as a part of the public domain [3]. The project was initiated in Google Summer of Code 2018 [4] and a first phase was successfully carried out as a result of it. The most recent versions of laws can be found at https://3gm.ellak.gr.

The scope of this GSoC project for 2019 aims to expand the capabilities of the existing project by implementing NLP extensions (NER, Dep Parser etc.) in order to asses automated codification processes.

Possible extensions of 3gm for this year's GSoC can be found at the project's issue page here: https://github.com/eellak/gsoc2018-3gm/issues.

Expected Results[edit | edit source]

The candidate shall implement features which are part of the issue page or propose new ways and approaches to automated codification. The amount of work must be sufficient for the entire program. The issues have estimated durations and it is strongly advised to combine them in your proposal to a meaningful amalgamation.

Immprovemnts

1. Possibility of projection of the incorporation of a draft law into existing legislation. For example, incorporation of a suggestion from the consultation at opengov.gr and visualisation of possible changes it brings to existing legislation.

2. Ability of interactive corrections of encoded text resulting from the auto-coding algorithm.

imple users will be able to flag verbal description while advanced users will be able to interactively process / delete / modify / insert the correct references between 2 legends.

3. Ability to see the full history of a codified version of a law. (e.g. a page with the ability to track the changes that all the amending laws have brought to the text.)

4. Use of ELI (https://publications.europa.eu/en/web/eu-vocabularies/eli) as a metadata for the laws at 3gm.ellak.gr

5. Use one of the above Core Vocabularies to represent the structure / competencies / staffing of public administrations.

6. Possibility of interactive corrections of the structure and responsibilities derived from the NER & Metadata Extraction of the Greek Government Gazette

Related Repositories[edit | edit source]

Source Code: https://github.com/eellak/gsoc2018-3gm

Web application: http://3gm.ellak.gr/

Knowledge Prerequisites[edit | edit source]

An ideal candidate would have the following skills:

  • Advanced knowledge of Python
  • Experience with at least one machine learning framework (e.g. PyTorch, Keras, Tensorflow)
  • Basic DevOps skills (setting up a server with a database and deploying the web application)
  • Greek as native language
  • Solid understanding of machine learning algorithms and neural networks (DNNs, RNNs) as well as fundamentals of NLP (POS tagging, DEP parsing, NER, rule-based approaches)
  • Basic knowledge in compilers would be appreciated
  • Knowledge of MongoDB
  • Familiarity with version control systems (git) and GitHub workflows (e.g. pull-requests, project boards)

Reading List[edit | edit source]

For further information on study material, please study the project wiki [5] as well as the reading list [6].

Mentors:[edit | edit source]

Diomidis Spinellis Marios Papachristou


Development of a DIY robot kit for educators[edit | edit source]

Brief Explanation[edit | edit source]

The aim of the project will be to develop all the designs, guidelines and sample code for a starter DIY robot kit that can be 3d-printed, assembled and operated using basic electronics and sensors. This is expected to create a low-cost alternative to commercial robot kits (e.g. Lego Mindstorms) that does not require expert staff in robotics, electronics or IoT programming (e.g. using Arduino/Raspberry kits). The ability to 3D-print everything and combine it with low-cost basic electronics and sensors will allow regional open technologies initiatives to provide schools with starter kits and a full 'Robotic 101' introductory course.

The kit that will be developed and opened must comprise 3D-designs for all the necessary parts of a modular robot that can be printed and assembled following the assemble guidelines. The target audience of the project can be educators (e.g. high school ICT teachers), with minimum expertise in robotics, electronics, and programming. So the print and assembly guidelines must be detailed and simple. In addition, the project must have a modular structure that allows educators to guide their students to the step-by-step development of the robot and to the implementation of simple navigation or sensing scenarios, that require basic programming skills.

Deliverables of the project, apart from the robot parts' designs, include a detailed list of the necessary electronics and sensors and the specifications for a Raspberry pi or similar single board computer (SBG).

Detailed assembly instructions, images, and videos from the assembly process are desirable.

The open source code that will be installed and run on the SBG and will allow controlling the robot through a simple programming interface, along with installation guidelines must be developed.

The robot will be operated either manually using a browser that wirelessly connects with the robot, or automatically by uploading robot control scripts through the same environment.

Some sample control scripts and robot programming scenarios will also be developed.

Expected Results[edit | edit source]

In the three months of the project it is expected to have the basic robot designs, the libraries for controling basic sensors (ultrasonic sensor, IR sensor, micro switches, optical odometer, servo/dc motor), the core operating software for controlling the robot and some simple robot programming assignments.

The three months plan of the project must define: a) The selection of electronics parts, SBC, and motors. b) The 3D designs of the printed parts of the robot. c) The libraries and software for controlling the robot. d) The development of assembly guidelines and the creation of demo scenarios for the class.


Related Repositories[edit | edit source]

https://hackaday.io/project/26007-versatile-educational-2wd-robot

Knowledge Prerequisites[edit | edit source]

Electronics, Robotics, Programming.

Mentors:[edit | edit source]

Iraklis Varlamis, Theodoros Karounos


Development of a Thesis Management System (TMS)[edit | edit source]

Brief Explanation[edit | edit source]

The lifecycle of the final project Thesis takes a large amount of administrative work from the initiation phase of project assignment till the last stage of publishing the Thesis to the University's library catalog. The main entities in this lifecycle are students, teachers, externals (e.g. companies or academics that cooperates with the university) and of course the Thesis subject.

The cycle begins with professors announcing subjects, which can be their own subjects or subjects that have been suggested by externals or even the students who have contacted professors beforehand.

It continuous with students applying for subjects, from the list of available subjects and professors doing the final assignment.

When a student did not manage to get a subject for which he/she applied, the system raises a flag to the student advisor, who contacts the student and professors in order to find a subject.

Thesis subjects must fall under one or more topics, from a list that the department sets and the topic information along with the title, a description and a list of references is stored with each subject.

When the professor finally decides on the student(s) that will carry out a project, he/she has to propose two more professors from the department or externals that will co-supervise the project.

When all the assignments have been fixed by the administrator of the TMS, they can be exported in a document which can be published on the department web site.

When the student completes the thesis he/she submits a draft to the TMS and automatically notifies the supervisor to provide feedback. This is repeated until the supervisor agrees that this is the thesis to be shared with the other two co-supervisors.

In the final step the supervisors comment on the thesis and the final document is submitted to the system.

The TMS must provide reports on the undergoing and completed thesis, must alert on delayed thesis and provide related statistics.

Expected Results[edit | edit source]

In the three months of the project it is expected to have the whole functionality required to support the TMS lifecycle.

Related Repositories[edit | edit source]

https://github.com/redhatcz/Thesis-management-system

Knowledge Prerequisites[edit | edit source]

Programming Skills

Mentors:[edit | edit source]

Iraklis Varlamis, Theodoros Karounos


Round-trip integration between GitHub/GitLab issues and git-issue[edit | edit source]

Brief Explanation[edit | edit source]

Git-issue is a minimalist decentralized issue management system based on Git. It has the following advantages over other systems.

   No backend, no dependencies: You can install and use git issue with a single shell script. There's no need for a server or a database back-end, and the corresponding problems and requirements for their administration.
   Decentralized asynchronous management: Anyone can add, comment, and edit issues without requiring online access to a centralized server. There's no need for online connectivity; you can pull and push issues when you're online.
   Transparent text file format: Issues are stored as simple text files, which you can view, edit, share, and backup with any tool you like. There's no risk of loosing access to your issues because a server has failed.
   Git-based: Issues are changed and shared through Git. This provides git issue with a robust, efficient, portable, and widely available infrastructure. It allows you to reuse your Git credentials and infrastructure, allows the efficient merging of work, and also provides a solid audit trail regarding any changes. You can even use Git and command-line tools directly to make sophisticated changes to your issue database.

Git-issue can currently import issues using the GitHub API. The project's objective is to extend this functionality with a way to synchronize between GitHub/GitLab issues and the issues kept under git-issue.

Expected Results[edit | edit source]

Git-issue extended for exporting its issues to GitHub/GitLab

Related Repositories[edit | edit source]

https://github.com/dspinellis/git-issue

Knowledge Prerequisites[edit | edit source]

Unix shell scripting

Mentors:[edit | edit source]

Diomidis Spinellis, Kostas Papadimas



Replacement of LTSP[edit | edit source]

Brief Explanation[edit | edit source]

LTSP (Linux Terminal Service Project) allows diskless workstations to be netbooted from a single server image, with centralized authentication and home directories. But the project shows its age; the initial thin-client focused design is no longer suitable for the netbooted fat client/wayland era, and it contains a lot of stale source code. This GSoC project is about designing and implementing a modern replacement of LTSP.

Expected Results[edit | edit source]

A modern replacement of LTSP should be implemented, as outlined in http://wiki.ltsp.org/wiki/Dev:GSoC. It should be ready for inclusion in Debian/Ubuntu, for LTSP users to be able to slowly migrate to it.

Related repositories[edit | edit source]

http://www.ltsp.org/ http://wiki.ltsp.org/wiki/Dev:GSoC

Knowledge Prerequisites[edit | edit source]

Netbooting internals, shell, python, git, debian packaging


Mentors[edit | edit source]

Yannis Siahos, Foteini Tsiami, Vagrant Cascadian

Port Qt Quick Controls Calendar widget to Qt Quick Controls 2 module[edit | edit source]

Brief Explanation[edit | edit source]

Qt is an open source cross platform framework facilitating GUI applications development, for mobile, desktop and embedded devices. Nowadays it is widely used in applications from a variety of industries like automotive or medical. Although the framework is written in C++, it brings with it a meta-language (or modelling language), QML which’s purpose is to be used for creating the visual parts of the application easily and fast, thanks to its flexibility and clarity. To accelerate UI development, QML provides the Qt Quick Controls module with ready made widget types, each supported by a C++ class, like Button or Switch, ready to be styled and modified at our project needs. The module is currently on version 2.4 but there is no support for Calendar in the latest version, to be more specific, the Calendar was lastly provided in version 1.4 of the Qt Quick Controls module that was released with the Qt 5.3 version.

Expected Results[edit | edit source]

The Qt Calendar widget is updated, modified accordingly and ported into Qt 5.12 and Qt Quick Controls 2 current version. Ideally it will be upstreamed to Qt, contributing this way to the Qt ecosystem.

Related repositories[edit | edit source]

https://github.com/extenly/qtqc2_calendar

Knowledge Prerequisites[edit | edit source]

* Qt, QML * C++, JavaScript

Mentors:[edit | edit source]

Alexandra Betouni, Amilcar Navarro

Development of a Tool for Extracting Quantitative Text Profiles[edit | edit source]

Brief Explanation[edit | edit source]

Quantitative text analysis is the basis of nearly every computational approach to text management and processing. All advanced Natural Language Processing (NLP) tasks including information retrieval, sentiment analysis, computational stylistics etc. involve the quantification of texts across a huge number of linguistic features and transform text into vectors. In many programming languages, e.g. R, Python, Java etc., there are numerous open source scripts, tools, packages and libraries that can transform texts to vectors of word frequencies, character and word n-gram frequencies, stylometric features etc. However, each of these tools covers only a restricted subset of the possible linguistic features.

Moreover, the available tools are written in different languages and require considerable efforts to be combined so that the user can extract a unified file of results. Due to the fragmentary nature of the programing environments and the highly technical skills that are required to operate the tools and combine their results, they can’t be used by large communities of scientists with humanities and sociopolitical background.

For the above reasons, we envisage the development of a user-friendly Graphical User Interface (GUI) based tool that shall provide integrated access to existing open NLP software. The new tool shall support the quantitative analysis of multilingual texts and produce quantitativetext profiles that can be used as input for further analysis, visualization, machine learning and other advanced computational processing. Such a tool does not exist to date and it will boost research in all scientific areas that require computational processing of large amounts of text.

Expected Results[edit | edit source]

The outcome of this project would be an open-source software with the following specifications: * User-friendly GUI that can guide intuitively its users to select the features they want to count in their text collections. * Large set of linguistic features that include at least:

** Most frequent words of the texts analyzed ** User-specified word lists ** Word and Character n-grams of arbitrary length ** Different stylometric features such as vocabulary diversity indices, readability indices, quantitative linguistic indices. * UTF-8 support * Corpus management features using text metadata

Related repositories[edit | edit source]

https://github.com/gmikros/Author_Multilevel_Ngram_Profiles

https://github.com/quanteda/quanteda

https://github.com/unDocUMeantIt/koRpus

https://miroslavkubat.webnode.cz/software/

https://github.com/bnosac/udpipe

https://github.com/explosion/spaCy

Knowledge Prerequisites[edit | edit source]

Good knowledge of the languages R, Java, Python and skills for GUI interfaces development. Good understanding of NLP concepts and tools.

Mentors:[edit | edit source]

George Mikros Fotis Fitsilis Sotiris Leventis Michael Fitsilis

Anonymisation through data encryption of sensitive data in odt and text files in Greek Language[edit | edit source]

Backround Information[edit | edit source]

Legal decisions that must be publicly available, contain a lot of sensitive information that has to be anonymized. GDPR defines pseudonymization in Article 3, as “the processing of personal data in such a way that the data can no longer be attributed to a specific data subject without the use of additional information.” To anonymise a data set, the “additional information” must be “kept separately and subject to technical and organisational measures to ensure non-attribution to an identified or identifiable person.”

Expected results[edit | edit source]

A LibreOffice Extension and a Linux application with a web GUI that will anonymize information in legal documents(odt and txt). Must have the ability to mass edit files, and to recognize through NLP and anonymize entities (such as Names, Addresses- ID numbers- VAT- social security numbers or any other potentially sensitive information. The entities that will be anonymized through strong data encryption so that only people with access to a secret key or password can read the documents.

Knowledge Prerequisites[edit | edit source]

Python, Spacy, Encryption algorithms

Related repositories[edit | edit source]

https://pypi.org/project/bcrypt/

https://github.com/eellak/anonimos-amka/

https://github.com/eellak/gsoc2018-spacy

Mentors[edit | edit source]

Iraklis Varlamis, Theodoros Karounos


Creation of an online Greek mail dictation system, using Sphinx and personalized acoustic/language models training[edit | edit source]

Brief Explanation[edit | edit source]

CMUSphinx comprises a collection of systems/algorithms, towards automatic speech recognition (ASR), and is one of the most well known open-source ASR toolkits. Its current version is Sphinx 4, written in Java, but PocketSphinx exists as well, being a lightweight version that can operate in embedded systems. Sphinx includes libraries for acoustic and language model training, recognizers, as well as a number of ready-to-deploy statistical language models, including Greek (from 2017). In our work, we aspire to utilize the Sphinx tool, so as to create an online Greek mail dictation system. The system will comprise several sequential steps. The first step concerns the personalized acoustic model adaptation using the Sphinx tools, done via providing specific sentences the user has to dictate. The second phase is for the user to provide access to some of their mails, in order to train a statistical language model, adapted to their way of writing. Furthermore, an automatic classification based on various topics will be performed, so as to create different statistical language models, for heterogeneous mail corpuses. Finally, the ASR output text will be fed to the NLP (natural language processing) system that, based on the provided corpuses, will auto-correct or suggest corrections on the (usually erroneous) generated text. This system will be deployed as an online webpage, where the heavy processing will occur in the cloud.

Expected Results[edit | edit source]

The expected outcome will be a standalone web page, via which automatic speech to text towards personalized mail dictation will be offered. The code will be opensource and provided by GitHub repositories. Our approach will offer A) improvements in the speech-to-text procedure by acoustic model adaptation to individual users and statistical text model adaptation based on already existent corpuses (the user’s mails) and B) a standalone tool for everyone to utilize.

Related repositories[edit | edit source]

https://github.com/cmusphinx

Knowledge Prerequisites[edit | edit source]

The following are desired, but are not mandatory: Programming languages: Java, Python Techniques: Web protocols like REST and WebSocket , Natural Language Processing and Automatic Speech recognition

Mentors:[edit | edit source]

Andreas Symeonidis, Manos Tsardoulias


Development of an open source Greek Spelling and Grammatical dictionary[edit | edit source]

Brief Explanation[edit | edit source]

Development of a spelling- grammatical tool that can work both as a LibreOffice extension and as a stand-alone web service by reusing the AfterTheDeadline API in order to be reused into a wide range of packages and platforms (Firefox, Chrome, Thunderbird, TinyMCE / Wordpress, jquery, etc.).

Expected results[edit | edit source]

  • Extraction of Greek words from platforms with open licences (Wikipedia, Wikinews - wiki dictionary- Wikipedia revision history etc)
  • Creation of a morphological dictionary of Modern Greek which will include all the extracted verbs, adjectives into finite state transducers (for the implementation of morphological analyzer and morphological word generator through the tools of Apertium and HFST).
  • Implementation of the tool:

in python3/c+/c++.

as LibreOffice extension

in (REST/JSON)

Knowledge Prerequisites
[edit | edit source]

  • C
  • C++
  • Python
  • SQL

Mentors:[edit | edit source]

Kostas Papadimas Diomidis Spinellis

CScout AJAX-based Interface[edit | edit source]

Brief Explanation[edit | edit source]

CScout is a source code analyzer and refactoring browser for collections of C programs. It can process workspaces of multiple projects (a project is defined as a collection of C source files that are linked together) mapping the complexity introduced by the C preprocessor back into the original C source code files. CScout takes advantage of modern hardware (fast processors and large memory capacities) to analyze C source code beyond the level of detail and accuracy provided by current compilers and linkers. The analysis CScout performs takes into account the identifier scopes introduced by the C preprocessor and the C language proper scopes and namespaces. CScout has already been applied on projects of tens of thousands of lines to millions of lines, like the Linux, OpenSolaris, and FreeBSD kernels, and the Apache web server.

The aim of this project is to redesign the current web interface, which is based on HTML forms generated by C++ code, into a responsive AJAX-based one. Under this scheme the C++ code will provide JSON data through a RESTful interface, which the JavaScript front-end will use.

Expected Results[edit | edit source]

A modern responsive web interface offering the current capabilities of CScout. Ideally this would include in-line editing of identifiers.

Related GitHub repository[edit | edit source]

https://github.com/dspinellis/cscout

Knowledge Prerequisites[edit | edit source]

  • C++
  • JavaScript
  • A modern development framework for interactive web content

Mentor:[edit | edit source]

Diomidis Spinellis Stamelos Ioannis 


NextCloudPi[edit | edit source]

Brief Explanation[edit | edit source]

NextCloudPi is an open source project that aims to simplify the installation of Nextcloud server to amateurs but also advanced users who want to avoid maintenance.

At the moment it has these main features:

  • Ready to use Images for RasbperryPi and other ARM Boards based on Debian-ish Distros (Raspbian - Armbian)
  • Docker Images for ARM and x86 architectures
  • 1 Bash script that installs everything on a clean Debian System (Allows installation on ARM boards that not yet have image, or systems that don't support/want to use docker)
  • State of the art configuration of Apache, PHP-FPM, Mariadb, Redis and more
  • Features like: Backup, Restore, SSL Certificates, DDNS Clients, NFS, Samba, UFW, Fail2ban, modsecurity, nc-report and many (many) more.
  • Offers 2 choices to manage the system (They both use the same back-end scripts)

It is written mostly in `BASH` and a bit with `php`,`html`,`css`,`js` language

Expected Results[edit | edit source]
  • Develop: Nextcloud Native NCP App (webpanel)
    • Make a nice UI/UX
    • Create Backups-Restore/Import-Export/Snapshots UI
  • Develop Onlyoffice easy installation (not ARM architecture yet)
  • Develop: Collabora online easy installation (not ARM architecture yet)
  • Develop: Vagrant installation
  • Develop: Ansible role
  • Develop: CI/CD to build releases on github
  • Design - Develop: High availability option for big installations
  • Mobile app integration (Manage - Info - Users)
Secondary tasks[edit | edit source]
  • Develop: Easy way to selfhost email
  • Write: Best documentation possible (https://docs.nextcloudpi.com)
    • Write: Guides
    • Write: Make a simple small video for amateurs
  • Make contacts and calendar encrypted
Related GitHub repositories[edit | edit source]

https://github.com/nextcloud/nextcloudpi/

Knowledge Prerequisites[edit | edit source]
  • BASH
  • PHP
  • HTML/CSS/JS
  • JAVA
Mentors[edit | edit source]

Sarantos Panteleimon, Ignacio Núñez, Efstathios Iosifidis