Difference between revisions of "Google Summer of Code 2019 proposed ideas"

From Ελεύθερο Λογισμικό / Λογισμικό ανοιχτού κώδικα
Jump to: navigation, search
Line 60: Line 60:
 
==== Mentors: [https://github.com/zvr Alexios Zavras], [https://github.com/irenevl Irene Vlachou] [https://github.com/thynem Εmilios Τheofanous] ====
 
==== Mentors: [https://github.com/zvr Alexios Zavras], [https://github.com/irenevl Irene Vlachou] [https://github.com/thynem Εmilios Τheofanous] ====
  
=== makeblock support in Greek ===
+
== makeblock support in Greek ==
  
 
=== Brief Explanation ===
 
=== Brief Explanation ===

Revision as of 12:07, 14 January 2019

GFOSS project proposals for GSOC 2019

Students interested to participate should check which of the following projects fits their interests and skills. For practical information for students visit this page. For additional information, please subscribe to this list and post your questions. The full list archives are available here.

The GSOC Projects implemented in 2017

The GSOC Projects implemented in 2018

Contents

Upgrade UMLGraph with JAva's new doclet API

Brief Explanation

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

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

https://github.com/dspinellis/UMLGraph

Knowledge Prerequisites

Java, UML

Mentors: 

Diomidis Spinellis

3gm

Brief Explanation

Government Gazette text mining, cross-linking, and codification Project (or 3gm for short) uses Natural Language Processing Methods and Practices on Greek Legislation. It is primarily aimed at providing with the most recent versions of each law, i.e. an automated codex via NLP methods and practices.

The scope of this GSoC project aims to expand the capabilities of the existing project by implementing NLP extensions (NER, Dep Parser etc.) described here: https://github.com/eellak/gsoc2018-3gm/issues in order to asses codification procedures. 

Expected Results

The aim of this GSoC project is to extend 3gm's current capabilities by incorporating more features like the development of a customized language model for dependency parsing, NER Extraction,  etc. in order to furtherly asses codification proceedures

Related Repositories

https://github.com/eellak/gsoc2018-3gm/tree/master/3gm and http://3gm.ellak.gr/

Knowledge Prerequisites

Experience in Machine Learning, Knowledge of Python, Basic DevOps and Web Development Skills

Mentors: 

Diomidis Spinellis Marios Papachristou

Addition of Greek glyphs in Open Source Fonts

Brief Explanation

Many of the Open Source fonts (e.g., available at https://fonts.google.com), do not include glyphs for Greek letters and are therefore useless for using in a Greek environment.

The aim of this project is to imporve this situation and add the missing glyphs in the correct Unicode codepoints. The exact set of fonts to be completed will be determined in discussions between the student and the mentor(s).

This is not a typical programming project. If you have never designed fonts before, it is probably not for you.

Expected Results

Full support for Greek text in a number of Open Source fonts.

Knowledge Prerequisites

Type design, font technologies. Please note that this is a special project, where coding, in the traditional sense, will not be enough.

Mentors: Alexios ZavrasIrene Vlachou Εmilios Τheofanous

makeblock support in Greek

Brief Explanation

Mblock, https://ide.makeblock.com/, is one of the best tools for Programming Software Designed for STEAM Education, supporting the Arduino (among other hardware).

We want to support the Greek Language on mblock version 5 for all platforms it is available, as this will enable Greek children to use it on their native language.

Expected Results

The addition of the Greek Language on mblock version 5

Related Repositories

http://www.mblock.cc/

Knowledge Prerequisites

programming in general

Mentors: 

Sarantos Kapidakis

Round-trip integration between GitHub/GitLab issues and git-issue

Brief Explanation

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

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

Related Repositories

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

Knowledge Prerequisites

Unix shell scripting

Mentors: 

Diomidis Spinellis


Epoptes

Brief Explanation:

Epoptes (Επόπτης  - a Greek word for overseer) is an open source computer lab management and monitoring tool. It allows for screen broadcasting and monitoring, remote command execution, message sending, imposing restrictions like screen locking or sound muting the clients and much more! It can be installed in Ubuntu, Debian and openSUSE based labs that may contain any combination of the following: LTSP servers, thin and fat clients, non LTSP servers, standalone workstations, NX or XDMCP clients etc.                                                   

Related GitHub repositories

https://www.github.com/Epoptes/epoptes

Expected Results

  • Use a VNC library instead of relying on external programs like x11vnc and xvnc4viewer.
  • Investigate screen sharing on Wayland.
  • Reimplement the Epoptes network benchmark tool with python libraries, e.g. twisted.

VNC library Epoptes supports broadcasting the teacher screen and assisting the students by taking control of their screens remotely. To do that, it's using external programs like x11vnc, xvnc4viewer, tightvnc, tigervnc, ssvnc. Most of these programs have maintenance issues and some of them have already been removed from distributions. On the other hand, there are some VNC libraries available in most distributions. They should be evaluated, and if some of them plans to eventually support Wayland, Epoptes should be rewritten to use that library instead of the external VNC programs.

Screen sharing on Wayland Some developers are trying to implement screen sharing on Wayland using modern technologies like WebRC/PipeWire. The current status should be evaluated, and if it appears to be mature, code could be added in Epoptes to support that. Network benchmark tool

The current implementation of Epoptes network benchmark tool is externally calling iperf v2, which is rather unstable. Its backend should be rewritten using native python libraries, for example twisted. Application/evaluation tasks Students that apply for a GSoC project should implement the following tasks for their initial evaluation: Implement a network benchmark tool in python, that measures the upload/download speed between only two computers in the local network. Try out and document the software and steps involved for sharing the screen (or a window, whichever is easier) between two users under Wayland, in any distribution.

Knowledge Prerequisites

Python

GTK

Mentors:

Symplegma

Brief Explanation

"Symplegma" stands for the combination of appropriate libraries for numerical computing with specialization to computational mechanics and orientation to educational and research purposes. Existing libraries, like "Apache Common Maths" for standard mathematics and statistics components, "FuturEye" a Java based Finite Element Method (FEM) Toolkit, "SymJava" for fast symbolic-numeric computation, among others, are combined with the in-house "Climax" library. "Climax" is a Java implementation of computational mechanics methods, e.g., the Boundary Element Method ("jbem" package) and the Finite Element Method ("jfem" package).

A simple IDE for manipulation of the above mentioned libraries, and possible extensions, has been developed in Java while it takes advantage of Apache Groovy, a powerful, optionally typed and dynamic language. That platform, under the acronym SDE, standing for Symplegma Development Environment.

Both educational and research activities are to be considered.

Expected Results

Toolbox development oriented to specific courses of higher education, Graphical User Environment update, extension of ploting capabilities.

Related  repositories

http://symplegma.org/ https://github.com/symplegma

Knowledge Prerequisites

numerical methods, computational mechanics, java, groovy

Mentors: George Manolis (gdm@civil.auth.gr), Christos Panagiotopoulos (pchr76@gmail.com)

clio — Software Components and IP Management System

Brief Explanation

clio is a web-based system to manage data on software components and their relations. It started out as a GSoC 2018 project. For the 2019 GSoC, the main goals would be: - improvement of the UI - integration of SDPX data - extension to covering of file info (time permitting)

Expected Results

improvements to clio

Related  repositories

code at https://github.com/eellak/clio demo at https://clio.ellak.gr/

Knowledge Prerequisites

Python, web front-end

Mentors: Alexios Zavras,

Replacement of LTSP

Brief Explanation

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

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

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


Knowledge Prerequisites

Netbooting internals, shell, python, git, debian packaging

Mentors: Yannis Siahos , Foteini Tsiami - Unofficial mentor, Debian & LTSP developer: Vagrant Cascadian

Port Qt Quick Controls Calendar widget to Qt Quick Controls 2 module

Brief Explanation

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

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

https://github.com/extenly/qtqc2_calendar

Knowledge Prerequisites

* Qt, QML * C++, JavaScript

Mentors:  Alexandra Betouni alexandra.betouni@extenly.com

Development of a Tool for Extracting Quantitative Text Profiles

Brief Explanation

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

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

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

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

Mentors: 

* Fotis Fitsilis

* Sotiris Leventis

Michael Fitsilis

OpenProject Work-Package #1 to support modeling of the PM2 methodology for project management

Brief Explanation:

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:

# a project governance model(Roles & Responsibilities) # a project lifecycle (Project Phases) # a set of processes (Project Management activities) # a set of project artifacts (templates and guidelines).

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².

Expected Results:

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.

The work of this Work-Package includes: * the analysis of PM2 requirements * the setup of OpenProject development environment (Development VM) * 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:

** Support the PM² Governance Model (Roles, Responsibilities) ** Support the PM² Phases ** Support the PM² Artifacts per Phase ** Support all PM2 plans and logs such as Change Log, Communications, Issue, Project, Quality, Requirements, and Risk * The development of tests for all the requirements (e.g. initiate PM² project, initiate phases, add artifacts, generate reports).

Related GitHub repositories

https://github.com/opf/openproject

https://ec.europa.eu/isa2/solutions/open-pm2_en\

Knowledge Prerequisites

* Ruby

* Ruby on Rails

* Postgres

* Problem Analysis & Modeling 

Mentors

OpenProject Work-Package #2 to support functionality of the PM2 methodology for project management

Brief Explanation:

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.

Expected Results:

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/) .

The developed functionality should:

* Provide wizards allowing the PM² user to:

** create and initiate PM² based project Templates ** Initiate Project phases ** add PM² artifacts per phase ** create reporting templates with visual content like Gantt and Pert charts ** add PM² artifacts with textual content like Risk Logs. * Support all PM2 plans and logs such as Change Log, Communications, Issue, Project ,Quality , Requirements, Risk * Provide tools such as

** 3-point estimation with triangular and/or beta distribution ** Critical Path Method (CPM) ** Monte-Carlo analysis/technique ** Network Diagram (FS, SS, FF) ** Work Breakdown Structure (WBS) * Support Agile Specific Artifacts and Tools, e.g. Iterations, Kanboards etc. * Support visual representation of PM² using standards like BPMN, STRATML, RDF etc * Allow connection with external systems (e.g. Open ID, Media-Wiki) * Allow for Export and import for/to other formats for data exchange (e.g. MS Project export/import, PDF, XLS etc.).

Related GitHub repositories

https://github.com/opf/openproject

https://ec.europa.eu/isa2/solutions/open-pm2_en

Knowledge Prerequisites

*Ruby

* Ruby on Rails

* Angular

* ES6 *

statistical modeling methods for PM (Monte carlo , CPM etc)

Mentors