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

From Ελεύθερο Λογισμικό / Λογισμικό ανοιχτού κώδικα
Jump to: navigation, search
m (<Knowledge Prerequisites)
m (Replacement of LTSP)
Line 266: Line 266:
 
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.
 
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 ===
+
==== Related  repositories ====
 
http://www.ltsp.org/
 
http://www.ltsp.org/
 
http://wiki.ltsp.org/wiki/Dev:GSoC
 
http://wiki.ltsp.org/wiki/Dev:GSoC
Line 274: Line 274:
 
Netbooting internals, shell, python, git, debian packaging
 
Netbooting internals, shell, python, git, debian packaging
  
==== Mentors: ==== 
+
 
 +
==== Mentors:==== 
  
 
[https://www.linkedin.com/in/yannissiahos/ Yannis Siahos], Foteini Tsiami, [https://www.socallinuxexpo.org/scale/15x/speakers/vagrant-cascadian Vagrant Cascadian]
 
[https://www.linkedin.com/in/yannissiahos/ Yannis Siahos], Foteini Tsiami, [https://www.socallinuxexpo.org/scale/15x/speakers/vagrant-cascadian Vagrant Cascadian]

Revision as of 22:15, 6 February 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, Stamelos Ioannis

Government Gazette text mining, cross-linking, and codification

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 procedures

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

Development of a DIY robot kit for educators

Brief Explanation

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 scenaria, 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. 

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

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.

Related Repositories

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

Knowledge Prerequisites

Electronics, Robotics, Programming.

Mentors: 

Iraklis Varlamis, Theodoros Karounos

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

Development of a Thesis Management System (TMS)

Brief Explanation

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

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

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

Related Repositories

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

Knowledge Prerequisites

Programming Skills

Mentors: 

Iraklis Varlamis, Theodoros Karounos

Greek support for Makeblock - Mblock

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 educators and students to use it in their native language.

Expected Results

The addition of the Greek Language on mblock version 5 Document the source code

Related Repositories

https://github.com/Makeblock-official/mBlock

Knowledge Prerequisites

programming in general

Mentors: 

Sarantos Kapidakis, kalovrektis konstantinos

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, Kostas Papadimas


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:

Giannis Siahos, Fotis Tsiamis, Avgoustos Tsinakos

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, Christos Panagiotopoulos

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, 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,

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: 

George Mikros 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

Theodoros Karounos, George Blanas, Nicos Kourounakis

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

Theodoros Karounos, George Blanas, Nicos Kourounakis

Real time Django monitoring and profiling

Brief Explanation

Modern Django web applications expose a plethora of URLs and API endpoints that are consumed by a number of clients (web browsers, API clients, Django management commands) under different authorization and authentication credentials. It is not always feasible or easy to replicate the action that resulted in a system crash, a 500 error or a heavily delayed response but it is necessary to trace such incidents to facilitate debuggind and fixing of errors. There's also the obvious fact of monitoring the application availability and uptime and get alerted in case of mulfunctions. While there are great tools as Django Debug Toolbar and Silk that provide insights and application profiling for debugging issues, there's a lack of an open source solution that unifies real time monitoring and application profiling for both the application and database layers. This need is usually covered by either inhouse solutions, or by expensive proprietary Software as a Service solutions for those that can afford it.

As part of this project we suggest that a unified solution is developed, either as an extension to an existing open source tool (as Django silk) or by leveraging tools as ElasticSearch/Kibana. The system should be able to monitor and log all sort of requests, along with error stacktraces and related information and present on a web dashboard with grouping capabilities (eg similar endpoints) and statistics about slow requests. Given the fact that the tool should run in production, there are some architectural notes to take care, for example perform database saves not in real time but rather offloaded by a system as Celery, or sent to a separate database (eg ElasticSearch).

This is an opportunity to provide a really beneficial tool for the Django community.

Expected Results

An overview of similar solutions (mainly open source but also commercial offerings). A web dashboard exposing information about mulfunctions and providing real time monitoring for Django applications.

Related  repositories

https://github.com/django/django https://github.com/jazzband/django-debug-toolbar https://github.com/jazzband/django-silk

Knowledge Prerequisites

Django, Celery, Django-debug-toolbar, optionally ElasticSearch/Kibana, Postgresql

Mentors: Markos Gogoulos, Michael Petychakis, Kostas Siaterlis

Moodle connection with multiple BigBlueButton servers

Brief Explanation

Moodle is  a free and open-source learning management system (the most widely used one) used by the our Institute in training programmes of thousands of teachers.

BigBlueButton is an open-source web conferencing system while the BigBlueButtonBN  is an open source plugin that integrates BigBlueButton (BBB)  within Moodle, providing online classrooms. 

However, the plugin supports the configuration of only one BBB server per Moodle installation. So, the number of students that can participate concurrently in virtual classrooms is limited to the capacity of a specific BBB server. 

This is why, for better load balancing, our institute is looking for an upgrade of the plugin so that one can select a different BBB server host (BigBlueButton Server URL and BigBlueButton Shared Secret) ,  for each BBB virtual classroom that one creates. We would also like to have all the rest configuration parameters set per virtual classroom. 

Expected Results

BigBlueButtonBN plugin configuration parameters set per virtual classroom and not globally

Related  repositories

https://github.com/blindsidenetworks/moodle-mod_bigbluebuttonbn

https://github.com/moodle/moodle

https://github.com/bigbluebutton

Knowledge Prerequisites

PHP, MySQL, HTML5, CSS3,  jQuery

Mentors:

Panagiotis Giannitsaros,   

Creation of an online Greek mail dictation system, using Sphinx and personalized acoustic/language models training

Brief Explanation

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

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

https://github.com/cmusphinx

Knowledge Prerequisites

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:

Andreas Symeonidis,

Moodle ADaptable VIsualization for CommunitiEs ( Moodle - ADVICE)

Brief Explanation

Make the forum communication more effective by using ADVICE, a visualization learning analytics tool. Through ADVICE, the users are able to characterize every message posted on the forum, based on the learning theory of Communities of Inquiry. At the same time, ADVICE provides to the learners and instructors, adaptable visualizations that reflect the development of the discussion as well as qualitative data about the user’s/learner’s contribution to the discussion. This way, the students are promoted to post messages with cognitive value and the forum is transformed from a simple means of communication into a tool of learning and community building.

Expected Results

Develop a moodle plugin with the following functionality: •Allow the users to characterize every user’s message posted in the forum through a dropdown menu with various characterizations that follow the Community of Inquiry theory. • Oblige the student to characterize his own message before posting it to the forum. •Capture the data derived from the above functionalities. •Statistically analyze and combine the data from students’ interaction within the forum (number of posted messages, number of visits in the forum, etc) and the data captured from the above functionalities of ADVICE, in order to calculate qualitative and qualitative indicators of the discussion that reflect discussion development according to the Community of Inquiry theory. • Provide an adaptable visualization of the progress of the discussion according to various dimensions that the user will select from (e.g. according to the community’s perspective or the “high-participation students’” perspective). •Provide a star-chart visualization for the contribution of each user according to the analysis results in means of the Community of Inquiry theory. • Provide to the instructor a file with the data captured and analyzed.

Related  repositories

https://github.com/moodle/moodle/tree/master/mod

https://moodle.org/plugins/

Knowledge Prerequisites

PHP, C++, visualization

Mentors:

Kyparisia Papanikolaou, Maria Tzelepi

Open source plugin for math and algebra in Moodle

Brief Description

Make the moodle learning environment more functional in relation to mathematics. Although there are a lot of math editors available for moodle, there is still a lot of functionalities missing in relation to school algebra as an open source plugin

Expected Results

  • Develop a Moodle plugin with the following functionality.
  • Allow the teacher to design math assignments, which the student has to interactively solve. The plugin will provide real time feedback on each answer, whether it’s correct, partially correct or incorrect.
  • Give the teacher the ability to assign to students conversions of algebraic representations, (ie the student must make simplifications or factorizations), while the plugin monitors the process performed by the student and give him comments on the correctness of each step.
  • The same functionality must be applied in the case of solving an equation.
  • Interoperate with the Geogebra plugin.
  • In addition to math-focused functionalities, it would be useful to create a page so that the teacher can write in the so-called “Student Progress Notebook” where the teacher comments on the performance of each student.

Related repositories

https://github.com/moodle/moodle

https://docs.moodle.org/34/en/Mathematics#Equation_Construction_and_Display


We will utilize the work implemented by CERN with CERNBOX

Knowledge Prerequisites

XHTML

CSS

Javascript

Κnowledge of math and algebra

Mentors:

Avgoustos Tsinakos, Diomidis Spinellis

Development of an open source Greek Spelling and Grammatical dictionary

Brief Explanation

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

  • 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

  • C
  • C++
  • Python
  • SQL

Mentors:

Kostas Papadimas Diomidis Spinellis

CScout AJAX-based Interface

Brief Explanation

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

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

Related GitHub repository

https://github.com/dspinellis/cscout

Knowledge Prerequisites

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

Mentor:

Diomidis Spinellis Stamelos Ioannis 

The Transparency Program initiative - Diavgeia

Brief Explanation

Diavgeia is an application with a Mysql backend that is used in order to upload administrative decisions to an online public repository. This project participated in GSOC2017 as Diavgeia Redefined and a RDF Schema was implemented, which covers almost every possible decision type and the Notation3 (N3) syntax was adopted.

Related GitHub repositories

https://github.com/eellak/gsoc17-diavgeia

Expected Results

  1. Implementation of a query answering system which will translate natural language queries to SPARQL queries. This system will offer ordinary citizens a way to examine the legality and good administration of Diavgeia, without posing SPARQL queries by themselves.
  2. Find a way to ensure the integrity of the SPARQL endpoint. For the time being, decisions are stored both as compressed Notation3 files in the filesystem of Diavgeia and in Jena Apache’s triple store. The Stamper tool which is responsible for storing Notation3 decisions on the bitcoin blockchain, ignores the fact that these decisions are also stored on the triple store. That means that a modification/deletion of a decision from the triple store will go unnoticed. Students may have to implement a “Full Verification Procedure”. This procedure will extend the functionality of the Consistency Verifier tool, which will not only consider the computation of the Merkle Tree of Notation3 decisions, but it will also check that for each Notation3 decision, all related data is also offered through the SPARQL endpoint.
  3. Consistency Verifier tool makes requests to the chain.so explorer in order to read the Merkle Root and compare it to the computed Merkle Root of Notation3 decisions. One may assume that the administration of Diavgeia influences somehow the functionality of chain.so, and thus “foul play actions” may go unnoticed. Consistency Verifier may be extended and offer the option to read the root directly from the blockchain (e.g. using the bcoin.js library).

Knowledge Prerequisites

· PHP and/or JAVA

· Mysql

. Blockchain

Mentors:

Nikos Tsiridis,Panagiotis Kranidiotis 


Sampling and volume approximation

Brief Explanation:

Volume computation is a fundamental problem in discrete and computational geometry with many applications in statistics, biology and economics. There is a variety of implemented solutions for that problem but they scale only to low dimensions (typically less than 10). The first implementation that scales to high (i.e. few hundred) dimensions is implemented in the C++ open-source software package VolEsti (https://github.com/vissarion/volume_approximation). The package contains algorithms for volume approximation as well as uniform sampling for polytopes. The main purpose of the current project is two-fold: first provide an non-C++ interface to the functionality of VolEsti and second extend and improve VolEsti features.

The coding project could be divided in the following steps:

  1. Understand the code structure and design of VolEsti as well as the implemented algorithms.
  2. Re-evaluate the dependency from some libraries. For example VolEsti depends on CGAL for linear programming but this is inefficient for high dimensions. Therefore, a goal is to rewrite parts of code to remove CGAL dependency and use an open-source library for convex optimization.
  3. Implement new features: new sampling and volume computation algorithms, support for polytopes given by the set of vertices of the convex hull, support for spectahedra.
  4. Create an non-C++ user friently interface, e.g. in python/SciPy/jupyter.
  5. Writing tests and documentation.

The steps are generic enough to be easily adapted to student's background and interests.

Expected Results:

A lot of users such as practicioners or researchers from a variety of scientific fields raging from biogeography to economics need a high level programming or scripting environment to test volume computation or sampling algorithms.

Related GitHub repositories

https://github.com/vissarion/volume_approximation

Knowledge Prerequisites

  • Must: C++, generic programming, linear algebra,
  • Plus: optimization, computational geometry, statistics

Mentors:

Vissarion Fisikopoulos Panos Louridas Zafeirakis Zafeirakopoulos

Cryptocurrencies Wordpress plugin

Brief Explanation:

Combination of digital and physical donation channels in a single product/plugin that will be embeddable in both WordPress & plain HTML webpages. Usage of blockchain technology will enable users to donate without paying any amount of money. Charities will also be able to track users who donate via digital asset.

Expected Results

A functional WordPress plugin for Donation Box and a stand-alone module, which allows users to donate with fiat, cryptocurrencies and buy lending his computer’s computational power (hashing power).


Related GitHub repositories

https://github.com/eellak/gsoc17-donationbox

Mentors:

Spiros Kapetanakis

Netdata

Brief Explanation:

netdata is a system for distributed real-time performance and health monitoring. It provides unparalleled insights, in real-time, of everything happening on the system it runs (including applications such as web and database servers), using modern interactive web dashboards. netdata is ideal for monitoring physical servers, VMs, VPS, containers, IoT.

netdata is highly active project, with hundreds of new users joining and hundreds of new installations completed, every day. netdata is also featured as one of the top github projects for 2016 (https://octoverse.github.com/).

Key components of netdata:

1. netdata daemon, its core, written in C, an asynchronous I/O, time-series database and web server, optimized for performance.

2. web dashboards, written in Javascript, HTML, CSS

3. external plugins, written in python, node.js, bash, C

netdata is the definition of full-stack development. It includes low-level C programming following embedded development principles, web-apps development for visualizing performance metrics, devops and sysadmin automation tasks for configuring health monitoring (alarms), statistical analysis of metrics, high level development for data collection from databases and third party apps, etc.

Related GitHub repositories: https://github.com/firehol/netdata

Expected Results

These are the main development directions

1. add more data collection plugins in any computer language, for monitoring the performance of popular third party applications.

2. add more data visualizations and dashboards.

3. add more health monitoring alarms, for monitoring popular applications and operating systems.

4. port netdata to more operating systems.

5. improve the distribution of netdata by setting up and maintaining binary packages for popular distributions.

6. improve the technical documentation of netdata (setup guides, how-tos for monitoring applications or functions, etc).

7. help spreading netdata, by improving the community and social media reach of netdata.

More ideas can be found at the netdata github repo

Knowledge Prerequisites

Depending on the task in hand, different skills are required.

For example:

1. low level C programming (POSIX compliant, including pthreads)

2. python programming

3. node.js programming

4. web-app development (javascript, html, css)

5. bash scripting

6. linux system administration

Mentors:

Costa Tsaousis, Diomidis Spinellis 

University Calendar of Courses and Venues

Brief Explanation

The Aristotle University of Thessaloniki has developed an open source solution for publishing a dynamic university calendar for students and faculty (see working instance http://class.auth.gr). It allows public view of Department calendars, Venue calendars and personal views of student / faculty calendars, based on courses they have registered with, or currently assigned to teach, respectively. It provides info on courses and venues reserved for sessions and exports of personal calendar in iCal format, and also serves as a general course catalog with generalized searches on faculty and courses.


List of tasks for the project

Abstract the local db interface that draws info on courses and faculty from the student information system, in order to make it independent of the specific institution (AUTh) and more widely available for use else where

Porting of student / faculty interface code from Angular 1.5 to 6.0 https://angular.io/

Extend functionality to personal notifications for certain events (e.g. cancellation of class, rescheduling)

Support for a multilingual front-end (currently only in Greek)

Port it to Moodle as a Moodle Plugin

Related GitHub repositories

https://github.com/auth-it-center/class.auth.gr-front-end

Expected Results

To produce a solution for a university calendar system that allows easy adoption for any Higher Education institution (in Greece and abroad), integrating an existing student information system (course and faculty assignments) with scheduling of classes and venues.

Knowledge Prerequisites

Javascript

Angular

JSON

PHP, MySQL databases

GraphQL for API implementation (optional)

Mentors:

Polyxeni Malasioti, Stella Rouzi, Spyros Xanthopoulos & Dimitris Daskopoulos