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

From Ελεύθερο Λογισμικό / Λογισμικό ανοιχτού κώδικα
Jump to navigation Jump to search
 
(19 intermediate revisions by 5 users not shown)
Line 12: Line 12:
 
[https://ellak.gr/wiki/index.php?title=Google_Summer_of_Code_2017_Accepted_projects GSOC Projects implemented in 2017]  [https://ellak.gr/wiki/index.php?title=Google_Summer_of_Code_2018_Accepted_projects GSOC Projects implemented in 2018] [https://ellak.gr/wiki/index.php?title=Google_Summer_of_Code_2019_Accepted_projects GSOC Projects implemented in 2019]
 
[https://ellak.gr/wiki/index.php?title=Google_Summer_of_Code_2017_Accepted_projects GSOC Projects implemented in 2017]  [https://ellak.gr/wiki/index.php?title=Google_Summer_of_Code_2018_Accepted_projects GSOC Projects implemented in 2018] [https://ellak.gr/wiki/index.php?title=Google_Summer_of_Code_2019_Accepted_projects GSOC Projects implemented in 2019]
  
 
+
== Sastix-CMS: A general purpose JAVA CMS in Spring Boot ==
== UniverSIS ==
 
  
 
==== Brief Explanation ====
 
==== Brief Explanation ====
UniverSIS is an effort for/by HEI in Greece to develop their own Student Information System. While front-end applications are being developed, the focus is on basic functionality only. We propose the extension of the schema of the UniverSIS platform to include the new models (classrooms, reservations) and the development of the relevant interface in the front end applications (Registrar, Teachers, Students).
+
Sastix CMS is a Spring Boot application having several content management features. It exposes specific REST APIs to store, cache and lock content (resources). A resource can be a simple html file, an image, a video or any other file. Under common/api package you can find the API interfaces used in the project. It is a good place to start looking. Since a client-server architecture is used, these APIs have two kind of implementations: A client service and server service.
  
==== Expected Results ====
+
The client can be used/imported as a separated library/dependency in any project and will provide all the rest calls needed towards the underlying server for managing and retrieving the content through spcific locking and caching mechanisms. The relative code is under “client” project .The server side service implements the same interfaces and can have additional implementations needed for the core CMS platform. The relative code is under “server” project.
Basic functionality for making classroom reservations and course class scheduling by the Registrar. The teachers delivering the courses and the students enrolled should be able to view calendars of their scheduled classes. Advanced functionality such as cancellation of class and rescheduling could be implemented as an extra.  
 
  
 +
In order to be able to run locally the Sastix CMS server you should have at least jdk 1.8 installed and a MySQL instance running. Sastix CMS is using ORM and you can find the relative configuration under application.properties. You should define a schema in your database in order to be able to run the platform successfully. The properties file is your guide to do that.
  
==== Related  repositories ====
+
==== Expected Results ====
https://www.universis.gr/
+
Implement a Frontend environment for Administrators and Content Creators/Consumers to easily use, manage and monitor this application through simple and secure flows. Angular or React or Thymeleaf can be used. An admin should be able to manage any kind of resources and monitor the usage of the application (eg net/disk io, memory/cpu usage, disk allocation). A creator should be able to create update and delete resources. A consumer should have access to the published content and be able to effectively use it (eg see a video with chunked transfer encoding support). It will also be essential to extend the already implemented code, integrate new features and support the new Frontend service. Scalability is important too; how it can be deployed in a clustered mode using docker or kubernetes so it can support more than 1000 concurrent users (eg. offering a video streaming service and we have 1000 users at the same time watching videos by consuming URIs from the CMS)
 
 
==== Knowledge Prerequisites ====
 
Angular
 
NodeJS
 
themost
 
 
 
 
 
==== Mentors: ====
 
[https://www.linkedin.com/in/differentreality/ Stella Rouzi] - [https://gr.linkedin.com/in/dimitris-pliakos-847b2291 Dimitris Pliakos]
 
 
 
 
 
== hashesDB ==
 
 
 
==== Brief Explanation ====
 
Tools to create, maintain, and search a database of hashes of files.
 
 
 
For each file, a number of distinct hashes is computed and stored into a database.
 
Upon encountering a new file, the database can be searched to answer whether this file has been already seen.
 
Given a huge archive of files (e.g. 6.5B files on Software Heritage), this would produce a simple method of quickly checking the provenance of files that were copied from elsewhere. Fuzzy hashes like ssdeep can extend the functionality to discover similar but not identical files.
 
 
 
Pointers for further info:
 
https://www.softwareheritage.org/
 
https://multiformats.io/multihash/
 
https://ssdeep-project.github.io/ssdeep/index.html
 
 
 
 
 
Expected Results
 
 
 
implementation of new tools
 
  
 
==== Related  repositories ====
 
==== Related  repositories ====
new project
+
https://github.com/sastix/cms
  
 
==== Knowledge Prerequisites ====
 
==== Knowledge Prerequisites ====
Python (optional C), basic SQL
+
java, maven, js, html, css, mysql, docker
  
 
==== Mentors: ====
 
==== Mentors: ====
[https://github.com/zvr Alexios Zavras]
+
[https://gr.linkedin.com/in/skitsas Ioannis Skitsas -] [https://gr.linkedin.com/in/pbochalis Panagiotis Bochalis]
  
  
== An open registry for street names and numbers ==
+
== Creation of a multi user audio first annotation tool ==
  
 
==== Brief Explanation ====
 
==== Brief Explanation ====
The aim of this project is to develop the software for the creation of an open registry of street names and numbers for all settlements in Greece (more than 13,000 settlements, more than 700 cities). The registry will contain the official street names and their numbers along with their geolocation information. The project must develop tools that allow public administration to maintain and update the registry for any changes, and anyone interested to search and browse the registry information.
+
The annotation tools exist to empower anyone, even those without a data science or engineering background, to build the next generation of powerful, useful and impactful Artificial Intelligence applications by providing tooling and standards for the creation, collaboration, labeling and formatting of datasets.
The developed registry can be the backend for several applications that relate to land usage, building blocks, and land segmentation, e.g. to administrative districts or regions of responsibility. For these reasons, it is important that the registry adopts widely used conversions and standardizations for open geo-data.
 
The adoption of the naming conversions used by Open Street Map is a step towards this direction. It is also important to allow data import and export in widely used formats such as XML and osm.
 
The project will start with the definition of the conceptual data model that will store the data and will continue with the services that will allow data collection and data update.
 
  
 +
While there is a variety of open source tools available for labelling datasets for different types, including text, images and audio, most of them lack the multi user workflows that enable more than one annotators to work on the process at the same time, and also produce more accurate results by providing consensus strategies and options to handle conflicts amongst the different annotator's data.
  
 +
This proposal aims to fix these problems, aiming at the creation of a modern and intuitive system that will enable multi user annotation for audio primarily, and other metadata types as well. The system should support User accounts, User Queues, Queues management and actions as assign data on the fly. Options for consensus and conflict management, and output to multiple formats.
  
 
==== Expected Results ====
 
==== Expected Results ====
The developed registry can be the backend for several applications that relate to land usage, building blocks, and land segmentation, e.g. to administrative districts or regions of responsibility. For these reasons, it is important that the registry adopts widely used conversions and standardizations for open geo-data.
+
An analysis on existing open source tools for labeling data, pros and cons for each.
The adoption of the naming conversions used by Open Street Map is a step towards this direction. It is also important to allow data import and export in widely used formats such as XML and osm.
 
The project will start with the definition of the conceptual data model that will store the data and will continue with the services that will allow data collection and data update.
 
 
 
==== Related  repositories ====
 
Related to Open Street Map and how to upload/download data files and conversions
 
https://wiki.openstreetmap.org/wiki/Downloading_data
 
https://registry.opendata.aws/osm/
 
https://wiki.openstreetmap.org/wiki/Editing_Standards_and_Conventions
 
Related to Street registries world-wide
 
https://wiki.openstreetmap.org/wiki/OpenStreetMap_for_Government
 
https://www.leeds.gov.uk/parking-roads-and-travel/street-register
 
https://www.etalab.gouv.fr/qui-sommes-nous
 
https://adresse.data.gouv.fr/
 
An open street names directory from GFOS for Greece
 
https://github.com/eellak/Greek-Street-Names-Directory
 
 
 
 
 
==== Knowledge Prerequisites ====
 
Python , Data Mining,Perl, PHP, C, C++, Java
 
  
==== Mentors: ====
+
Design and implementation of a system that will enable setting annotations on audio types primarily and output results in multiple formats. This should allow the drawing of regions over the audio waveform containing events (eg as BAT, on related repositories)
[https://www.dit.hua.gr/~varlamis/ Iraklis Varlamis], [https://github.com/partizanos Dimitris Proios]
 
  
 +
Distinction of users (managers, annotators) with different permissions (add data, set categories or tags, set policies)
  
 
+
More advanced functionality may include setting time schedules, setting consensus policies (majority, minimum ratio), individual annotator's scoring, filtering of results by annotator.  
== Aerial image recognition services for the agricultural domain==
 
 
 
==== Brief Explanation ====
 
The aim of this project is to develop and train a model for plantation counting from aerial and satellite images
 
 
 
 
 
==== Expected Results ====
 
The software that will be developed must be able to:
 
Setup, configure and train models for processing different plantation types, using various image formats as input.
 
Apply pre-trained models in image batches from a specific input stream, referring to a specific plantation type and automatically count the number of trees per image.
 
Provide a visual tool for the semi-automatic annotation of images, which will allow users to define the bounding box for one tree in an image and will automatically annotate similar trees in the image, also allowing users to correct the annotation by selecting (false negatives) and de-selecting (false positives) trees.
 
Provide a graphical user interface for processing and curating batches of images.
 
The code must also support LSO-25 images that also contain infrared channel information.
 
 
 
  
 
==== Related  repositories ====
 
==== Related  repositories ====
Open projects that specialize in object detection and counting from aerial and satellite images
+
BAT: https://github.com/BlaiMelendezCatalan/BAT<br>
https://github.com/azavea/raster-vision
 
https://github.com/sreeram004/Count-the-number-of-Palm-Trees
 
https://github.com/rashivkp/coconut-tree-detection
 
Sample Image Datasets
 
https://github.com/mohanrajmit/Coconut-Tree-Detection/tree/master/dataset
 
https://github.com/chrieke/awesome-satellite-imagery-datasets
 
Related reading
 
https://arxiv.org/ftp/arxiv/papers/1701/1701.06462.pdf
 
https://ieeexplore.ieee.org/abstract/document/6881615
 
 
 
  
 +
Label Studio: https://github.com/heartexlabs/label-studio<br>
  
 
==== Knowledge Prerequisites ====
 
==== Knowledge Prerequisites ====
Python , Data Mining,Perl, PHP, C, C++, Java
+
A modern frontend/backend combination for building modern web applications, as Django/React
  
 
==== Mentors: ====
 
==== Mentors: ====
[https://www.dit.hua.gr/~varlamis/ Iraklis Varlamis], [https://github.com/louridas Panos Louridas], [https://github.com/partizanos Dimitris Proios]
+
[https://www.linkedin.com/in/pantelis-vikatos-1383437a/ Pantelis Vikatos], [https://github.com/mgogoulos Markos Gogoulos]
  
  
== Development of a personal secure vault for digital items==
+
== Extend deepbots to support Evolutionary Algorithms ==
  
 
==== Brief Explanation ====
 
==== Brief Explanation ====
This project aims in developing a secure infrastructure where users can deposit personal information and/or documents. They can also receive information of personal interest to them (e.g. documents, certificates, and personal information) from their interaction with organizations.
 
  
 +
Over the recent years evolutionary algorithms have achieved impressive results on various tasks such as artificial locomotion and autonomous robot navigation. Additionally, neuroevolution is a promising alternative approach to gradient descent optimization, such as Deep Reinforcement Learning, being applied to optimize deep neural networks. Deepbots is a simple framework which is used as "middleware" between the free and open-source Cyberbotics' Webots (https://cyberbotics.com/) robot simulator and Reinforcement Learning algorithms. Deepbots is a framework which follows the OpenAI gym (https://gym.openai.com/) interface logic in order to achieve an established way of implementing DRL for robotics’ and other scenarios. In this way researchers and students can easily test and benchmark their algorithms on either predefined or novel scenarios. Deepbots can be used as an educational framework for DRL in high-end robotics scenarios while aiming to establish a testbed for researchers. Thus far, deepbots is accompanied by common research scenarios (such as cartpole, mountain car and an obstacle avoidance example) and well established DRL algorithms (such as DDPG (https://arxiv.org/abs/1509.02971) and PPO (https://arxiv.org/abs/1707.06347)). Therefore, deepbots can be easily extended to support and enable the use of neuroevolutionary algorithms, since Webots is a suitable platform to create delicate tasks and apply such algorithms to solve them, while providing a unified tool for benchmarking and educational purposes. The ultimate goal of deepbots is to provide testbed scenarios for robotics that are easily accessible for researchers in order to demonstrate and promote Machine Intelligence capabilities.
 +
-
 +
Deepbots was first presented (https://link.springer.com/chapter/10.1007/978-3-030-49186-4_6) at the international conference on Artificial Intelligence Applications and Innovations (AIAI) conference in June 2020. Additionally, it was presented at FOSSCOMM 2020. According to pepy.tech (https://pepy.tech/project/deepbots) it has more than 5k downloads last year while it has extensively been used as an education tool. Furthermore, deepbots has been used by OpenDR researchers (https://opendr.eu/) in the development of a modular, open and non-proprietary toolkit for core robotic functionalities by harnessing deep learning to provide advanced perception and cognition capabilities. Finally, mentors are constantly into an open discussion with webots developers to improve certain functionalities of the Webots open-source robotic simulator. Manos Kirtas has participated twice in previous GSoCs as a student.
  
 
==== Expected Results ====
 
==== Expected Results ====
It is important for the project to support the periodical updates of the information in the vault, by accessing predefined online services. For this purpose, the software running in the vault will use access credentials and all other information necessary to access an online service and apply for more information (e.g. submit an application for a certificate that expires every two months).
+
The expected results are two-fold: 1) Extend deepbots to support evolutionary algorithms on Webots 2) Implement a hybrid neuroevolutionary deep reinforcement learning algorithm
If the information or document that comes as an output from the remote service is automatically available, then it will be stored in the vault or updated in the vault, along with its future update information. If the information will be made available at a later time, the vault must be able to receive notifications that will trigger an information update that will request the output again when it is ready. This will fully implement a pull-only strategy from the vault side, which will only access remote services and APIs when necessary, or when triggered.
 
 
 
 
 
==== Related  repositories ====
 
Related open projects
 
https://github.com/mhisoft/eVault
 
https://github.com/keeps/roda
 
https://github.com/DSpace/DSpace
 
https://github.com/hashicorp/vault
 
  
 +
==== Related Repositories ====
 +
https://github.com/aidudezzz/deepbots, https://github.com/aidudezzz/deepworlds
  
 
==== Knowledge Prerequisites ====
 
==== Knowledge Prerequisites ====
Python ,Perl, PHP, C, C++, Java 
+
Good knowledge of python, familiarity with python deep learning frameworks (such as pytroch and tensorflow). Any prior contribution to deepbots framework will be appreciated.
  
==== Mentors ====
+
==== Mentors====
[https://www.dit.hua.gr/~varlamis/ Iraklis Varlamis], [https://github.com/louridas Panos Louridas], [https://github.com/partizanos Dimitris Proios]
+
Manos Kirtas (https://github.com/ManosMagnus), Konstantinos Tsampazis (https://github.com/tsampazk), Nikolaos Passalis (https://github.com/passalis)
  
== Enabling multi-user application creation and sharing for the NodeRed tool using cloud infrastructure ==
+
== Extend deepbots to support stable-baselines and implement gym-style default Reinforcement Learning environments ==
  
 
==== Brief Explanation ====
 
==== Brief Explanation ====
NodeRed is one of the most powerful open-source graphical programming tools for the Internet of Things; wiring together hardware devices, APIs and online services is easy, without requiring deep knowledge of computer programming. Furthermore, its community is quite active and has provided over 2400 packages with several functionalities. Unfortunately, NodeRed has some major drawbacks as well, namely: 1) it is not multi-user, thus the NodeRed server does not support sessions etc. and 2) it does not have an easy and seamless way to share packages among its instances, which now is performed by manually exporting and importing flows.
 
 
==== Expected Results ====
 
In this project we aspire to tackle these two drawbacks, by deploying NodeRed to the cloud. Specifically, a cloud deployment infrastructure will be used (probably Kubernetes), via which NodeRed servers will be deployed in containers. Furthermore, a front-end to the system will be created, via which each user will be able to create an account and login, deploy his/her own NodeRed instance and create applications in their personalized view. A NodeRed flow “store” will be created, allowing users to easily share their flows or use flows of others. Finally, the store will be populated with several flows that NodeRed repositories provide.
 
 
==== Related  repositories ====
 
https://github.com/node-red
 
 
==== Knowledge Prerequisites ====
 
Prerequisites are: a) good knowledge of Python, b) some experience with Unix/Linux systems and, c) ideally, some knowledge on DEVOPS process. Apart from these, knowledge of Web concepts (ports, proxies, reverse proxies, http, websockets), or cloud tools like Kubernetes is definitely a plus..
 
  
==== Mentors: ====
+
Deep Reinforcement Learning (DRL) is increasingly used to train robots to perform complex and delicate tasks, while the development of simulators contributes to the acceleration of research on DRL for robotics. Deepbots is a simple framework which is used as "middleware" between the free and open-source Cyberbotics' Webots (https://cyberbotics.com/) robot simulator and Reinforcement Learning algorithms. Deepbots is a framework which follows the OpenAI gym (https://gym.openai.com/) interface logic in order to achieve an established way of implementing DRL for robotics’ and other scenarios. In this way researchers and students can easily test and benchmark their algorithms on either predefined or novel scenarios. Deepbots can be used as an educational framework for DRL in high-end robotics scenarios while aiming to establish a testbed for researchers. Thus far, deepbots is accompanied by common research scenarios (such as cartpole, mountain car and an obstacle avoidance example) and well established DRL algorithms (such as DDPG (https://arxiv.org/abs/1509.02971) and PPO (https://arxiv.org/abs/1707.06347)). The ultimate goal of deepbots is to provide testbed scenarios for robotics that are easily accessible for researchers in order to demonstrate and promote Machine Intelligence capabilities. Deepbots strives to be a plug-and-play solution that supports a wide range of DRL agents, similarly to gym, harnessing the power of Webots. Stable-baselines is an established repository including DRL algorithm implementations providing a massive potential for benchmarking using deepbots.
[https://gr.linkedin.com/in/konstantinos-panayiotou-b8111675 Konstantinos Panayotou] , [http://users.auth.gr/etsardou/ Manos Tsardoulias], [http://users.auth.gr/etsardou/ Andreas Symeonidis]
 
  
== HyperFlow: A workflow management tool for digital transformation in Legal Tech ==
+
Deepbots was first presented at the international conference on Artificial Intelligence Applications and Innovations (AIAI) conference in June 2020 (https://link.springer.com/chapter/10.1007/978-3-030-49186-4_6). Additionally, it was presented at FOSSCOMM 2020. According to pepy.tech (https://pepy.tech/project/deepbots) it has more than 5k downloads last year while it has extensively been used as an education tool. Furthermore, deepbots has been used by OpenDR researchers (https://opendr.eu/) in the development of a modular, open and non-proprietary toolkit for core robotic functionalities by harnessing deep learning to provide advanced perception and cognition capabilities. Finally, mentors are constantly into an open discussion with webots developers to improve certain functionalities of the Webots open-source robotic simulator. Manos Kirtas has participated twice in previous GSoCs as a student.
 
 
==== Brief Explanation ====
 
At the core of any digital transformation activity is the digitization of the underlying workflows and business processes. Although there are several professional tools available, a transparent and open-source (and thus configurable) tool for managing complex organizational workflows is yet to be developed. The proposed tool leads to the development of an integrated SW platform upon which automated or semi-automated processes can be built and managed.
 
  
 
==== Expected Results ====
 
==== Expected Results ====
By the end of GSoC 2020, the student is expected to have developed: Basic platform functionality for the mentioned case study; Enabling of aggregation of different data formats and modules; Connectors to existing and future open source scripts, e.g. for data scraping and text processing State management implementation to facilitate workflow management and configuration
+
The expected results are three-fold: 1) Integrate stable-baselines into deepbots 2) Create default environments without RL agents, similar to gym 3) Create easy-to-use setup tools for robotic environments
  
==== Related repositories ====
+
==== Related Repositories ====
https://github.com/hocrt
+
https://github.com/aidudezzz/deepbots, https://github.com/aidudezzz/deepworlds
  
 
==== Knowledge Prerequisites ====
 
==== Knowledge Prerequisites ====
The student is expected to have basic knowledge of the pertinent technology stack that includes NodeJS, TypeScript, ReactJS & MongoDB. Knowledge of Python shall be an advantage. An initial understanding of parliamentary processes is considered an asset but not required.  
+
Good knowledge of python, familiarity with python deep learning frameworks (such as pytroch and tensorflow). Any prior contribution to deepbots framework will be appreciated.
 +
 
 +
==== Mentors:  ====
 +
Manos Kirtas (https://github.com/ManosMagnus), Konstantinos Tsampazis (https://github.com/tsampazk), Nikolaos Passalis (https://github.com/passalis)
  
==== Mentors: ====
 
[https://github.com/gmikros George Mikros] [https://github.com/fitsilisf Fotis Fitsilis] [https://github.com/sleventis Sotiris Leventis]  [https://github.com/mfitsilis Michael Fitsilis ]
 
  
== Implementation of an advanced tool for linguistic analysis ==
+
== Development of a NodeRED compatible domain-specific language for Home Assistant ==
  
 
==== Brief Explanation ====
 
==== Brief Explanation ====
Having Xtralingua, the end-product of GSOC 2019, as a starting point, the proposed project takes its development into the next level by increasing its modularity and introducing an end-to-end workflow that includes one of the most important aspects of modern text mining, i.e. data visualization.
 
 
Xtralingua uses text as input and calculates a great number of linguistic features as output. With the proposed new GSOC 2020 project it shall get a modular architecture, the UI will be separated from the API layer, while also being able to support additional features.
 
  
The core of the project shall be the development of an integrated data visualization tool with a defined output of a number of standard visualizations necessary for text analysis, e.g. word cloud, word frequency plots, topic modeling bubbles, sentiment evolution graph, etc.  
+
Home automation has become a standard for most houses and is a research and market trend with expected high growth. Among other smart home management solutions, Home Assistant (https://www.home-assistant.io/) is an open-source framework that clearly stands out. Home Assistant enables the integration of several commercial as well as custom-developed smart devices.
 +
Although Home Automation and other similar frameworks include tools for creating simple automation rules, they lack flexibility, i.e. more complex automation rules and flows are hard to create. Thus, advanced programming skills are needed if more sophisticated scenarios are envisaged.
 +
In this context we propose the development of a domain specific language (DSL) for home-assistant automation (HA-auto); HA-auto will enable citizen developers to easily create flows that manage complex everyday scenarios. To do so, HA-auto will provide integration to the NodeRed low-code platform (https://nodered.org/), this way making home automation flow programming even easier.
  
The added value of this tool to the linguistic community is invaluable since most of the existing tools are black boxes with little to none parametrization possibilities. The end-to-end characteristic shall give full control to non-developers while also enabling tool expansion and transformation with ease based on the proposed modular architecture.
 
  
==== Expected Results ====
+
==== Related Repositories ====
By the end of GSOC 2020, software development is expected to have produced: End-to-end text processing and visualization tool; Modular architecture enabling streamlined development and extension processes; Implementation of defined connectors for add-ons; Use of popular web technology stack to encourage community participation and use
+
https://github.com/home-assistant, https://github.com/node-red/node-red
 
 
==== Related  repositories ====
 
https://hellenicOCRteam.gr
 
  
 
==== Knowledge Prerequisites ====
 
==== Knowledge Prerequisites ====
On the technical level, we encourage interested students with basic knowledge of web technologies to apply (react, node). The interested developers will learn best practices in micro-services architecture and they will acquire experience in the use of state-of-the-art development tools and technology stack.
+
Required: JavaScript, Python. Desired: NodeRed, Broker-based communication protocols, such as MQTT/AMQP, System Modeling / DSL knowledge
  
==== Mentors: ====
+
==== Mentors: ====
[https://github.com/gmikros George Mikros] [https://github.com/fitsilisf Fotis Fitsilis] [https://github.com/sleventis Sotiris Leventis]  [https://github.com/mfitsilis Michael Fitsilis ] 
+
Konstantinos Panayiotou (klpanagi@issel.ee.auth.gr), Emmanouil Tsardoulias (etsardou@ece.auth.gr), Andreas Symeonidis (symeonid@ece.auth.gr)
  
== Sastix-CMS: A general purpose JAVA CMS in Spring Boot ==
 
  
==== Brief Explanation ====
+
==Font Quality Improvement Project for Greek glyphs in Open Source Fonts==
Sastix CMS is a Spring Boot application having several content management features. It exposes specific REST APIs to store, cache and lock content (resources). A resource can be a simple html file, an image, a video or any other file. Under common/api package you can find the API interfaces used in the project. It is a good place to start looking. Since a client-server architecture is used, these APIs have two kind of implementations: A client service and server service.
+
====Brief Explanation====
 
+
Many of the Open Source fonts (e.g., available at <nowiki>https://fonts.google.com</nowiki>), include glyphs for Greek language support. Some of these fonts are of poor quality and would benefit from a quality check and design improvements. This QA could vary from a simple character set report and design quality to the font's meta-data, metrics, OT features etc.
The client can be used/imported as a separated library/dependency in any project and will provide all the rest calls needed towards the underlying server for managing and retrieving the content through spcific locking and caching mechanisms. The relative code is under “client” project .The server side service implements the same interfaces and can have additional implementations needed for the core CMS platform. The relative code is under “server” project.
 
  
In order to be able to run locally the Sastix CMS server you should have at least jdk 1.8 installed and a MySQL instance running. Sastix CMS is using ORM and you can find the relative configuration under application.properties. You should define a schema in your database in order to be able to run the platform successfully. The properties file is your guide to do that.
+
The aim of this project is to improve the quality of these fonts and automate the process of QA specifically to the Greek character set. This automation could be incorporated into the FontBakery tool. The exact set of fonts to be completed will be determined in discussions between the student and the mentor(s).
  
 
==== Expected Results ====
 
==== Expected Results ====
Implement a Frontend environment for Administrators and Content Creators/Consumers to easily use, manage and monitor this application through simple and secure flows. Angular or React or Thymeleaf can be used. An admin should be able to manage any kind of resources and monitor the usage of the application (eg net/disk io, memory/cpu usage, disk allocation). A creator should be able to create update and delete resources. A consumer should have access to the published content and be able to effectively use it (eg see a video with chunked transfer encoding support). It will also be essential to extend the already implemented code, integrate new features and support the new Frontend service. Scalability is important too; how it can be deployed in a clustered mode using docker or kubernetes so it can support more than 1000 concurrent users (eg. offering a video streaming service and we have 1000 users at the same time watching videos by consuming URIs from the CMS)
+
Reports on the quality of a number of Open Source fonts containing Greek characters.
 +
====Knowledge Prerequisites====
 +
Python (for FontBakery test framework) or other environment, font technologies, type design. Please note that this is a special project, where coding skills, in the traditional sense, might not be enough.
 +
====Mentors:====
 +
[https://github.com/zvr Alexios Zavras], [https://github.com/irenevl Irene Vlachou] [https://github.com/thynem Εmilios Τheofanous]
  
==== Related  repositories ====
 
https://github.com/sastix/cms
 
  
==== Knowledge Prerequisites ====
 
java, maven, js, html, css, mysql, docker
 
  
==== Mentors: ====
+
== Development of a DIY robot kit for educators ==
[https://gr.linkedin.com/in/skitsas Ioannis Skitsas -] [https://gr.linkedin.com/in/pbochalis Panagiotis Bochalis]
 
  
 +
==== Brief Explanation ====
  
== Preservation of flash-based Greek educational applications ==
+
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.
  
==== Brief Explanation ====
+
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.
Many Greek educational applications were developed in the past using the Flash technology. Some of them can be operated online in http://ts.sch.gr/software. Many Greek schools use and need them.
 
  
Unfortunately, Flash is being deprecated at the end of 2020, and those applications will no longer be runnable. The goal of this project is:
+
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).
  
- To package these applications in a cross-platform format like npm,
+
Detailed assembly instructions, images, and videos from the assembly process are desirable.
  
- To allow teachers and students to select which ones they want to install,
+
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.
  
- After package installation, on "postinst", to create an index page with the available packages,
+
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.
  
- So that this page can be viewed offline with palemoon, a browser that aims to keep running flash even after 2020.
+
Some sample control scripts and robot programming scenarios will also be developed.
  
 
==== Expected Results ====
 
==== Expected Results ====
The result will be all the flash applications packaged in npm or similar format (many GB), and the packager/index generator/launcher code base.
+
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 ====
+
The three months plan of the project must define:
https://gitlab.com/ts.sch.gr/sch-webapp-launcher/
+
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.
  
==== Knowledge Prerequisites ====
 
Python, HTML, Javascript, CSS, experience with educational applications
 
  
==== Mentors: ====
 
Foteini Tsiami, [https://www.linkedin.com/in/yannissiahos/ Siahos Yiannis] 
 
  
== fsshrink ==
+
==== Related Repositories ====
 +
https://hackaday.io/project/26007-versatile-educational-2wd-robot
  
==== Brief Explanation ====
+
==== Knowledge Prerequisites ====
On some (e.g. bootable) partitions we may want to preserve not only their files, but also the exact filesystem layout. We can use backup utilities (partclone, ntfsutils, etc) to create a backup of the useful blocks in the filesystem, but most utilities require a restore partition at least as long as the backup partition, even if the filesystem is mostly empty.
+
Electronics, Robotics, Programming.
  
Therefore, we need a tool to shrink the image of the filesystem that will be required during the restore.
+
==== Mentors:  ====
 +
[http://hariton.webpages.auth.gr/ Hariton Polatoglou], [https://www.dit.hua.gr/~varlamis/ Iraklis Varlamis], [https://github.com/tgkarounos Theodoros Karounos]
  
Tools like ntfsresize (https://github.com/nats/ntfsprogs) can be used to resize the ntfs filesystem. But there are an overkill: their main effort is to preserve the filesystem in case of interruption, and they are too slow, making many write operations.
 
  
And still, they require a full size restore partition to initially restore the filesystem, which may be difficult when we restore to smaller media (SD cards on Raspberry Pi, USD sticks, small SSDs, etc).
+
== Plot ThanCad vector graphics to large plotters in Windows and Linux ==
  
We will create fat32shrink and ntfsskrink, two simpler tools to shrink the file system (to almost its minimal size) at the time it is copied/backed up (or otherwise when restored), without modifying the source filesystem (or image).
+
==== Brief Explanation ====
 +
ThanCad is a free 2 dimensional CAD which is command compatible with AutoCad. It is interoperable with AutoCad through standard dxf files. ThanCad runs in Windows and Linux, and has been experimentally ported to macOS-X. ThanCad has been used as teaching tool in National Technical University of Athens. Although ThanCad can plot to desktop printers, it lacks the capability to plot to large size (A1, A0) plotter devices, for example through the HPGL/2 gtraphics language.
  
Optionally, all/system files may stay in their original blocks.
 
  
 
==== Expected Results ====
 
==== Expected Results ====
Utilities to create shrinked ntfs/fat32 filesystems during the backup operation
+
ThanCad will be able to plot to large plotters and let the users select a plotter through the Windows printer interface.
 
 
 
==== Related  repositories ====
 
==== Related  repositories ====
http://sarantos .no-ip.org/projects/fsshrink
+
https://sourceforge.net/projects/thancad/
  
 
==== Knowledge Prerequisites ====
 
==== Knowledge Prerequisites ====
C/C++
+
Python
  
 
==== Mentors: ====
 
==== Mentors: ====
[https://users.ionio.gr/~sarantos/en.html Sarantos Kapidakis]
+
Thanasis Stamos, Dimitra Vassilaki
 +
 
  
== 3Dlibrary ==
+
== PackageInfo WebApp ==
  
 
==== Brief Explanation ====
 
==== Brief Explanation ====
Creating small STEM projects requires the use of common parts: gears, axes, boxes, wheels, bases, etc.
+
A web application (site) to provide read-only access to a database of information about software packages.
  
These parts can be 3D-printed, if the right part design is available.
+
For packages provided in popular Linux distributions like Debian, Ubuntu, etc., a number of characteristics is being collected (e.g., name, version, size) and stored into a database. The project would be to create a web interface to query the information in the database, in a read-only way. Users should be able to specify/search based on distribution, package name, version, etc. to drill down to a specific package and get information for it.  
 +
==== Expected Results ====
  
This project will create a library of 3D (parametric) robotic parts, that any user can search.
+
implementation of new web site/app
 
 
Then, the user will provide the configurable parameters of the part (e.g. the diameter, width and number of teeth in a gear) and the library will return a 3D object that can be printed directly.
 
 
 
The library will include basic parts, but will also accept user contributed designs (and ways to input the parameters of the new parts).
 
 
 
==== Expected Results ====
 
A library with parametric 3D objects that can be used as parts in STEM
 
  
 
==== Related  repositories ====
 
==== Related  repositories ====
http://sarantos. no-ip.org/projects/3Dlibrary
+
new project
  
 
==== Knowledge Prerequisites ====
 
==== Knowledge Prerequisites ====
Web form and 3D object design is a plus
+
 
 +
front end: JavaScript (any framework)
 +
back end: Python (any framework)
 +
DB content: shell, basic SQL, optionally docker
  
 
==== Mentors: ====
 
==== Mentors: ====
[https://users.ionio.gr/~sarantos/en.html Sarantos Kapidakis], Chrysovalantis Sfyrakis
 
  
== esp32service ==
+
[https://github.com/zvr Alexios Zavras]
 +
 
 +
== hashesDB ==
  
 
==== Brief Explanation ====
 
==== Brief Explanation ====
ESP32 is a series of low-cost, low-power system on a chip microcontrollers . It includes wifi and can be used into many automations and STEM projects.
+
Tools to create, maintain, and search a database of hashes of files.
  
In order to ease its use in many application, we want to create and download to the esp32 a program that will respond to web commands through its wifi.
+
For each file, a number of distinct hashes is computed and stored into a database.
 +
Upon encountering a new file, the database can be searched to answer whether this file has been already seen.
 +
Given a huge archive of files (e.g. 6.5B files on Software Heritage), this would produce a simple method of quickly checking the provenance of files that were copied from elsewhere. Fuzzy hashes like ssdeep can extend the functionality to discover similar but not identical files.  
  
An initial version is already provided.
+
Pointers for further info:
 +
https://www.softwareheritage.org/
 +
https://multiformats.io/multihash/
 +
https://ssdeep-project.github.io/ssdeep/index.html
  
Additionally, a scratchX plugin, that calls this server by using http requests, is also provided.
 
  
We want to create a more complete one, to handle a greater variety of inputs and outputs (sensors, sonar, motors, etc).
+
==== Expected Results ====
  
==== Expected Results ====
+
implementation of new tools
A esp32 program that can be downloaded on the esp32 and make it respond to http requests for pin I/O.
 
  
 
==== Related  repositories ====
 
==== Related  repositories ====
http://sarantos. no-ip.org/projects/esp32service
+
new project
  
 
==== Knowledge Prerequisites ====
 
==== Knowledge Prerequisites ====
C/C++
+
Python (optional C), basic SQL
  
 
==== Mentors: ====
 
==== Mentors: ====
[https://users.ionio.gr/~sarantos/en.html Sarantos Kapidakis],, Chrysovalantis Sfyrakis
+
[https://github.com/zvr Alexios Zavras]
  
== scratch2pdf ==
 
  
==== Brief Explanation ====
 
Scratch, from MIT, is a popular block programming language, used in primary and secondary education. It is often used in STEM projects, where the programmers should explain their code.
 
 
Scratch does not include a tool to print the code, so that it can be studied or presented. Such a (local or web) tool will be created here.
 
 
The tool will not just display the code, in pdf layout, but will also create links among the uses of each variable or each message (as demonstrated in
 
  
https://www.slideshare.net/WROHellas/wro-78409746), making easy to follow the code.
+
== sch-webapps: aggregator for web-based educational material ==
 
 
==== Expected Results ====
 
A tool will be created that will convert the scratch code to a pdf file.
 
 
 
==== Related  repositories ====
 
 
 
http://sarantos. no-ip.org/projects/speech-kbd
 
 
 
==== Knowledge Prerequisites ====
 
Coding experience
 
 
 
==== Mentors: ====
 
[https://users.ionio.gr/~sarantos/en.html Sarantos Kapidakis],
 
 
 
== New Pairing-Friendly Curves Support for bplib  ==
 
  
 
==== Brief Explanation ====
 
==== Brief Explanation ====
bplib (https://bplib.readthedocs.io/en/latest/) and petlib (https://petlib.readthedocs.io/en/latest/) are two libraries, developed by George Danezis (http://www0.cs.ucl.ac.uk/staff/G.Danezis/) that allow developers easy, high-level experimentation with cryptographic concepts using Python.
+
[https://photodentro.edu.gr Photodentro] is the official repository of K12 educational material for Greece. It contains more than 15,000 learning objects or applications which are implemented in HTML, Adobe Flash, Java or other technologies, and it's used by thousands of students and teachers. Unfortunately, it has the following limitations:
  
However, modern cryptographic techniques are most effective when they use specific elliptic curves that are not supported by bplib / petlib (they use the elliptic curves provided by OpenSSL).
+
* Flash based applications (2,760) are [http://photodentro.edu.gr/lor/faq no longer viewable] since Adobe deprecated Flash at the end of 2020.
 +
* Applications can't be operated offline, for example when Internet connectivity is an issue.
 +
* There's no way for users to create their own collections, which would ease navigation.
 +
* Finally, teachers should be able to expose their offline collections on the school LAN so that students would use them via any browser.
  
This project will carry out the necessary work so that bplib / petlib use recently developed, efficient elliptic curves, for example BLS12- 381.
+
A new <code>sch-webapps</code> application should be developed that would address these four limitations, hugely benefiting K12 education and possibly many others.
  
 
==== Expected Results ====
 
==== Expected Results ====
Add support for recent, efficient elliptic curves, like BLS12- 381, to bplib / petlib
+
 
 +
* Documentation for installing <code>sch-webapps</code> in Windows and Debian or Ubuntu Linux along with its dependencies: the [https://nodejs.org nodejs environment] and the [https://www.palemoon.org/ Palemoon browser] for viewing Flash applications.
 +
* sch-webapps should start a web server at http://localhost:7100 on demand.
 +
* LAN users would connect there and be able to browse the local collection of web applications, similar to https://ts.sch.gr/software.
 +
* The local user (e.g. the teachers) would in addition see an administration page, from where they'd be able to add or remove applications.
 +
* Creating a local collection should be as easy as pasting a list of URLs like "http://photodentro.edu.gr/lor/r/8521/10760". sch-webapps should then automatically locate and download application.zip and metadata.xml, decompress and parse them, and generate a main index page with all the locally installed applications.
 +
- The main index.html should be viewable even via the file:/// protocol, without a web service.
  
 
==== Related  repositories ====
 
==== Related  repositories ====
https://github.com/gdanezis/bplib
 
  
https://github.com/gdanezis/petlib
+
<code>sch-webapps</code> will completely replace [https://gitlab.com/ts.sch.gr/sch-webapp-launcher sch-webapp-launcher] and all the 40+ Debian packages of web based applications under https://gitlab.com/ts.sch.gr.
  
 
==== Knowledge Prerequisites ====
 
==== Knowledge Prerequisites ====
Very good knowledge of Python, C/C++, applied cryptography. Knowledge of Rust is a plus.
 
  
==== Mentors: ====
+
Javascript, HTML, CSS, nodejs, git, experience with educational applications.
[https://github.com/louridas Panos Louridas]
 
  
== Moodle ADaptable VIsualization for CommunitiEs  ==
+
==== Application tasks ====
  
==== Brief Explanation ====
+
* Download a few web applications from http://photodentro.edu.gr/lor and decompress them in the same folder to manually create a "collection".
Makes the forum communication more effective by using ADVICE, a visualization learning analytics tool. Through ADVICE, the users are able to label every message posted on the forum. 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 forum is transformed from a simple means of communication into a tool of learning and community building.
+
* Then design an example index web page for that collection, similar to https://ts.sch.gr/software.
 +
* Finally, upload the result to a github/gitlab pages repository and share it with the mentors.
  
==== Expected Results ====
+
==== Mentors ====
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.
+
[https://gitlab.com/users/fottsia Foteini Tsiami], [https://www.linkedin.com/in/yannissiahos/ Siahos Yiannis]
  
==== Related  repositories ====
+
== Addition of chant glyphs in Open Source chant Font ==
http://inspire.aspete.gr/inspireus/index.jsp
 
  
==== Knowledge Prerequisites ====
+
==== Brief Explanation ====
PHP, C++, visualization
+
Nowadays we have fonts to write Byzantine music (e.g. available at https://github.com/t-bullock/KA-Arvanitis), but we don’t have yet a font with all glyphs for all the chant notes which belong to the various periods of the evolution of Byzantine music.
 +
The aim of this project is to improve this situation and add the missing glyphs which we take mainly from manuscripts of the 9th-19th centuries.* Up to date, in Unicode we have only 246 signs. The exact number of new glyphs to be completed will be determined in discussions between the student and the mentors. This is not a typical programming project, but a complex task, requiring skills both in font technologies, paleography of Byzantine music and design. It’ s important that today we have about 200 years since the first printed chant book and 30 years since the development of the first chant font. For the project we will take as a point of departure the font of Gregorios Stathis.
 +
* A second step would be a proposal in Unicode to add codepoints for the new signs.
  
==== Mentors: ====
+
'''This is not a typical programming project. '''If you have never designed fonts before, it is probably not for you.
[http://education.aspete.gr/index.php/en/personnel/acc/programmes/213-papanikolaou-kyparisia.html Kyparisia Papanikolaou], Maria Tzelepi
 
 
 
 
 
 
 
== Adding dwg support to ThanCad ==
 
 
 
==== Brief Explanation ====
 
ThanCad is open source CAD (Computer Aided Design) software written in Python. It is used for educational purposes in NTUA as it provides special purpose technical tools for surveying engineers (photogrammetry, DEM, DTM, projections) and civil engineers (highway profile and design). It currently provides interoperability with other CADs via the dxf file format. However ThanCad lacks dwg file format support which is widely used for interoperability (or even as main drawing format).
 
The aim of this proposal is to add dwg support to ThanCad using the opensource libdxfrw  library (https://sourceforge.net/projects/libdxfrw/) which is written in C. The library can be ported to Python almost automatically using the opensource SWIG tool (http://www.swig.org/).
 
  
 
==== Expected Results ====
 
==== Expected Results ====
ThanCad will be able to completely save a ThanCad drawing to a dwg file. It will be able to read all the supported entities from a dwg file (lines, polylines, circles, arcs, ellipses, points, 3dfaces, single line texts, linear dimensions, images). ThanCad will be easier  to use by the students. Finally more users will be attracted to use ThanCad, an open source CAD, as their main CAD system.
+
Full support for all the neumes of Byzantine music in an Open Source font.
 
 
==== Related  repositories ====
 
https://sourceforge.net/projects/thancad/
 
  
 
==== Knowledge Prerequisites ====
 
==== Knowledge Prerequisites ====
Very good knowledge of Python and C programming languages. Prior experience with SWIG is wellcome.
+
Font technologies, Paleography of Byzantine music, Type design. Please note that this is a special project, where coding, in the traditional sense, will not be enough.
  
 
==== Mentors: ====
 
==== Mentors: ====
[http://www.civil.ntua.gr/staff/49/ Athanasios Stamos] , [http://dvasilaki.users.uth.gr/ Dimitra Vassilaki]
+
Nikolaos Siklafidis: Phd Candidate in Theology at the Aristotle University of Thessaloniki, nikosikl@past.auth.gr<br>
 +
Maria Alexandru: Associate professor in Byzantine music at the Aristotle University of Thessaloniki, malexand@mus.auth.gr
  
  
 
+
== MediaCMS - modern, fully featured video and media CMS ==
== Addition of Greek glyphs in Open Source Fonts ==
 
  
 
==== Brief Explanation ====
 
==== 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.
+
MediaCMS is a content management system developed to meet the needs of modern web platforms for viewing and sharing media. It is built with Django (backend) and React (frontend) and features a REST API. It includes a responsive design with two themes, advanced categorization options (tags, categories, playlists), full text search, an enhanced video player, subtitles, plus streaming through HLS.  
  
The aim of this project is to improve 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).
+
The suggested work for GSoC 2021 includes working on any of these two directions: extend the software and provide Machine Learning powered functionality.  
  
'''This is not a typical programming project. '''If you have never designed fonts before, it is probably not for you.
+
Extend the software ideas:
 +
* software internalization
 +
* improvements to system notifications
 +
* admin dashboards
 +
* provide a command line client that utilizes the REST API
 +
* block storage support
 +
* implement remote encoding services
  
==== Expected Results ====
+
Machine Learning powered functionality:
Full support for Greek text in a number of Open Source fonts.
+
* improve the related media algorithm, using collaborative filtering or other approaches. This can make the related media much more interesting
 
+
* provide auto-tagging for media, based on existing but also new tags. New tags could be linked with user provided images. This will allow for efficient auto-tagging for large numbers of images and videos
==== Knowledge Prerequisites ====
+
* automatic titles and descriptions based on the metadata extracted
Type design, font technologies. Please note that this is a special project, where coding, in the traditional sense, will not be enough.
+
* video thumbnail extraction, that is representative of the video.
 
 
==== Mentors: ====
 
[https://github.com/zvr Alexios Zavras], [https://github.com/irenevl Irene Vlachou] [https://github.com/thynem Εmilios Τheofanous]
 
 
 
 
 
==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 ====
 
==== Expected Results ====
 
+
All functionality created as part of this work will be integrated to the software through multiple Pull Requests. This work can have a massive impact over the software adoption.
improvements to clio
 
  
 
==== Related  repositories ====
 
==== Related  repositories ====
 
+
https://github.com/mediacms-io/mediacms<br>
code at https://github.com/eellak/clio
+
https://mediacms.io<br>
demo at https://clio.ellak.gr/
+
https://demo.mediacms.io
  
 
==== Knowledge Prerequisites ====
 
==== Knowledge Prerequisites ====
 
+
Python/Django for backend related work<br>
Python, web front-end
+
Javascript/React for frontend related work<br>
 +
Machine Learning or Deep Learning frameworks knowledge, for the ML related suggestions
  
 
==== Mentors: ====
 
==== Mentors: ====
 
+
[https://github.com/mgogoulos Markos Gogoulos]
[https://github.com/zvr Alexios Zavras]
 
 
 
== <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]
 
 
 
 
 
== eIDAS SAML functionality to keycloak ==
 
 
 
===== Brief Explanation =====
 
[https://www.keycloak.org/ Keycloak] is an open source Identity and Access Management solution aimed at modern applications and services. It makes it easy to secure applications and services with little to no code.
 
 
 
===== Expected Results =====
 
 
 
We would like to add eIDAS eIDAS SAML functionality to  keycloak. Keycloak is one of the open source IAM currently available. A comparison of open-source SSO implementations is available [https://gist.github.com/bmaupin/6878fae9abcb63ef43f8ac9b9de8fafd here], a recent video comparison between keycloak and WS02 was present in recent [https://www.youtube.com/watch?v=hnjBiGsEDoU IDM2018] and an opinionated comparison in [https://stackoverflow.com/questions/46184787/gluu-vs-keycloack-vs-wso2-identity-management stackoverflow]. 
 
 
 
[https://ec.europa.eu/cefdigital/wiki/display/CEFDIGITAL/2016/12/16/eIDAS+Technical+Specifications+v.+1.1 eIDAS(electronic IDentification, Authentication and trust Services)] is an EU regulation on electronic identification and trust services for electronic transactions in the internal market.  A cross border connection within the member states of EU uses an [https://ec.europa.eu/cefdigital/wiki/display/CEFDIGITAL/How+does+it+work+-+eIDAS+solution eIDAS network] that consists of a series of eIDAS-nodes implemented at the member state level.
 
 
 
An eIDAS-node consists of an eIDAS connector and an eIDAS proxy service or eIDAS middleware service. An eIDAS node can request a cross border authentication through the eIDAS connector and provide a cross border authentication through the eIDAS service (an eIDAS service can operate either in an eIDAS proxy service or eIDAS middleware service). As a matter of fact eIDAS implements a specific [https://ec.europa.eu/cefdigital/wiki/display/CEFDIGITAL/eIDAS+Profile dialect]  (i.e. Profile) of SAML. Following is an example eIDAS network with proxy to proxy connection between two member states(MS).
 
 
 
 
 
What happens here is as follows:
 
-The user (citizen) of MS A requests access to a service provider in MS B.
 
-The service provider in MS B sends the request to its own connector.
 
-On receipt of the request, the connector asks the user for the country of origin (TLS protocol).
 
-When the user selects the country of origin, the SAML request is forwarded by the connector to the eIDAS-node proxy service of the user's member state.
 
- The eIDAS-node proxy service sends the SAML request to the identity provider for authentication, and a user authenticates using the electronic identity.Once authenticated, this identity is returned to the eIDAS-node proxy service.
 
-The eIDAS-node proxy service sends a SAML assertion to the requesting connector, which forwards the response to the service provider.
 
-Τhe service provider grants access to the user.
 
 
 
A similar functionality has been added to [https://docs.wso2.com/display/IS570/Electronic+Identification%2C+Authentication+and+Trust+Services+Regulation WSO2].We believe the Apache Keycloack presents a lower barrier to enter, technologically speaking due to its easier admin dashboard procedures. Furthermore keycloak brings enough community to actively support its open software base.
 
 
 
===== Related GitHub repositories =====
 
 
 
https://github.com/keycloak/keycloak
 
 
 
https://readthedocs.org/projects/python-keycloak/
 
 
 
https://github.com/topics/eidas-framework
 
 
 
===== Knowledge Prerequisites =====
 
 
 
* PYTHON
 
* JAVA
 
 
 
===== Mentors =====
 
[https://www.linkedin.com/in/antonis-stasis-59a03539/?originalSubdomain=gr Stasis Antonis], [https://github.com/kranidiotis Panagiotis Kranidiotis] [https://github.com/dkalog Dimitris Kalogeras], 
 
  
 
[[Κατηγορία:GSOC2021]]
 
[[Κατηγορία:GSOC2021]]
 +
[[Κατηγορία:GSOC]]

Latest revision as of 09:27, 17 March 2021


Students interested to participate should check which of the following projects fits their interests and skills.

Τo communicate with the mentors and ask questions about the projects, students should subscribe to this list and post relevant questions. Please follow the Proposal Template

For practical information, students visit this page.


GSOC Projects implemented in 2017 GSOC Projects implemented in 2018 GSOC Projects implemented in 2019

Sastix-CMS: A general purpose JAVA CMS in Spring Boot[edit | edit source]

Brief Explanation[edit | edit source]

Sastix CMS is a Spring Boot application having several content management features. It exposes specific REST APIs to store, cache and lock content (resources). A resource can be a simple html file, an image, a video or any other file. Under common/api package you can find the API interfaces used in the project. It is a good place to start looking. Since a client-server architecture is used, these APIs have two kind of implementations: A client service and server service.

The client can be used/imported as a separated library/dependency in any project and will provide all the rest calls needed towards the underlying server for managing and retrieving the content through spcific locking and caching mechanisms. The relative code is under “client” project .The server side service implements the same interfaces and can have additional implementations needed for the core CMS platform. The relative code is under “server” project.

In order to be able to run locally the Sastix CMS server you should have at least jdk 1.8 installed and a MySQL instance running. Sastix CMS is using ORM and you can find the relative configuration under application.properties. You should define a schema in your database in order to be able to run the platform successfully. The properties file is your guide to do that.

Expected Results[edit | edit source]

Implement a Frontend environment for Administrators and Content Creators/Consumers to easily use, manage and monitor this application through simple and secure flows. Angular or React or Thymeleaf can be used. An admin should be able to manage any kind of resources and monitor the usage of the application (eg net/disk io, memory/cpu usage, disk allocation). A creator should be able to create update and delete resources. A consumer should have access to the published content and be able to effectively use it (eg see a video with chunked transfer encoding support). It will also be essential to extend the already implemented code, integrate new features and support the new Frontend service. Scalability is important too; how it can be deployed in a clustered mode using docker or kubernetes so it can support more than 1000 concurrent users (eg. offering a video streaming service and we have 1000 users at the same time watching videos by consuming URIs from the CMS)

Related repositories[edit | edit source]

https://github.com/sastix/cms

Knowledge Prerequisites[edit | edit source]

java, maven, js, html, css, mysql, docker

Mentors:[edit | edit source]

Ioannis Skitsas - Panagiotis Bochalis


Creation of a multi user audio first annotation tool[edit | edit source]

Brief Explanation[edit | edit source]

The annotation tools exist to empower anyone, even those without a data science or engineering background, to build the next generation of powerful, useful and impactful Artificial Intelligence applications by providing tooling and standards for the creation, collaboration, labeling and formatting of datasets.

While there is a variety of open source tools available for labelling datasets for different types, including text, images and audio, most of them lack the multi user workflows that enable more than one annotators to work on the process at the same time, and also produce more accurate results by providing consensus strategies and options to handle conflicts amongst the different annotator's data.

This proposal aims to fix these problems, aiming at the creation of a modern and intuitive system that will enable multi user annotation for audio primarily, and other metadata types as well. The system should support User accounts, User Queues, Queues management and actions as assign data on the fly. Options for consensus and conflict management, and output to multiple formats.

Expected Results[edit | edit source]

An analysis on existing open source tools for labeling data, pros and cons for each.

Design and implementation of a system that will enable setting annotations on audio types primarily and output results in multiple formats. This should allow the drawing of regions over the audio waveform containing events (eg as BAT, on related repositories)

Distinction of users (managers, annotators) with different permissions (add data, set categories or tags, set policies)

More advanced functionality may include setting time schedules, setting consensus policies (majority, minimum ratio), individual annotator's scoring, filtering of results by annotator.

Related repositories[edit | edit source]

BAT: https://github.com/BlaiMelendezCatalan/BAT

Label Studio: https://github.com/heartexlabs/label-studio

Knowledge Prerequisites[edit | edit source]

A modern frontend/backend combination for building modern web applications, as Django/React

Mentors:[edit | edit source]

Pantelis Vikatos, Markos Gogoulos


Extend deepbots to support Evolutionary Algorithms[edit | edit source]

Brief Explanation[edit | edit source]

Over the recent years evolutionary algorithms have achieved impressive results on various tasks such as artificial locomotion and autonomous robot navigation. Additionally, neuroevolution is a promising alternative approach to gradient descent optimization, such as Deep Reinforcement Learning, being applied to optimize deep neural networks. Deepbots is a simple framework which is used as "middleware" between the free and open-source Cyberbotics' Webots (https://cyberbotics.com/) robot simulator and Reinforcement Learning algorithms. Deepbots is a framework which follows the OpenAI gym (https://gym.openai.com/) interface logic in order to achieve an established way of implementing DRL for robotics’ and other scenarios. In this way researchers and students can easily test and benchmark their algorithms on either predefined or novel scenarios. Deepbots can be used as an educational framework for DRL in high-end robotics scenarios while aiming to establish a testbed for researchers. Thus far, deepbots is accompanied by common research scenarios (such as cartpole, mountain car and an obstacle avoidance example) and well established DRL algorithms (such as DDPG (https://arxiv.org/abs/1509.02971) and PPO (https://arxiv.org/abs/1707.06347)). Therefore, deepbots can be easily extended to support and enable the use of neuroevolutionary algorithms, since Webots is a suitable platform to create delicate tasks and apply such algorithms to solve them, while providing a unified tool for benchmarking and educational purposes. The ultimate goal of deepbots is to provide testbed scenarios for robotics that are easily accessible for researchers in order to demonstrate and promote Machine Intelligence capabilities. - Deepbots was first presented (https://link.springer.com/chapter/10.1007/978-3-030-49186-4_6) at the international conference on Artificial Intelligence Applications and Innovations (AIAI) conference in June 2020. Additionally, it was presented at FOSSCOMM 2020. According to pepy.tech (https://pepy.tech/project/deepbots) it has more than 5k downloads last year while it has extensively been used as an education tool. Furthermore, deepbots has been used by OpenDR researchers (https://opendr.eu/) in the development of a modular, open and non-proprietary toolkit for core robotic functionalities by harnessing deep learning to provide advanced perception and cognition capabilities. Finally, mentors are constantly into an open discussion with webots developers to improve certain functionalities of the Webots open-source robotic simulator. Manos Kirtas has participated twice in previous GSoCs as a student.

Expected Results[edit | edit source]

The expected results are two-fold: 1) Extend deepbots to support evolutionary algorithms on Webots 2) Implement a hybrid neuroevolutionary deep reinforcement learning algorithm

Related Repositories[edit | edit source]

https://github.com/aidudezzz/deepbots, https://github.com/aidudezzz/deepworlds

Knowledge Prerequisites[edit | edit source]

Good knowledge of python, familiarity with python deep learning frameworks (such as pytroch and tensorflow). Any prior contribution to deepbots framework will be appreciated.

Mentors:[edit | edit source]

Manos Kirtas (https://github.com/ManosMagnus), Konstantinos Tsampazis (https://github.com/tsampazk), Nikolaos Passalis (https://github.com/passalis)

Extend deepbots to support stable-baselines and implement gym-style default Reinforcement Learning environments[edit | edit source]

Brief Explanation[edit | edit source]

Deep Reinforcement Learning (DRL) is increasingly used to train robots to perform complex and delicate tasks, while the development of simulators contributes to the acceleration of research on DRL for robotics. Deepbots is a simple framework which is used as "middleware" between the free and open-source Cyberbotics' Webots (https://cyberbotics.com/) robot simulator and Reinforcement Learning algorithms. Deepbots is a framework which follows the OpenAI gym (https://gym.openai.com/) interface logic in order to achieve an established way of implementing DRL for robotics’ and other scenarios. In this way researchers and students can easily test and benchmark their algorithms on either predefined or novel scenarios. Deepbots can be used as an educational framework for DRL in high-end robotics scenarios while aiming to establish a testbed for researchers. Thus far, deepbots is accompanied by common research scenarios (such as cartpole, mountain car and an obstacle avoidance example) and well established DRL algorithms (such as DDPG (https://arxiv.org/abs/1509.02971) and PPO (https://arxiv.org/abs/1707.06347)). The ultimate goal of deepbots is to provide testbed scenarios for robotics that are easily accessible for researchers in order to demonstrate and promote Machine Intelligence capabilities. Deepbots strives to be a plug-and-play solution that supports a wide range of DRL agents, similarly to gym, harnessing the power of Webots. Stable-baselines is an established repository including DRL algorithm implementations providing a massive potential for benchmarking using deepbots.

Deepbots was first presented at the international conference on Artificial Intelligence Applications and Innovations (AIAI) conference in June 2020 (https://link.springer.com/chapter/10.1007/978-3-030-49186-4_6). Additionally, it was presented at FOSSCOMM 2020. According to pepy.tech (https://pepy.tech/project/deepbots) it has more than 5k downloads last year while it has extensively been used as an education tool. Furthermore, deepbots has been used by OpenDR researchers (https://opendr.eu/) in the development of a modular, open and non-proprietary toolkit for core robotic functionalities by harnessing deep learning to provide advanced perception and cognition capabilities. Finally, mentors are constantly into an open discussion with webots developers to improve certain functionalities of the Webots open-source robotic simulator. Manos Kirtas has participated twice in previous GSoCs as a student.

Expected Results[edit | edit source]

The expected results are three-fold: 1) Integrate stable-baselines into deepbots 2) Create default environments without RL agents, similar to gym 3) Create easy-to-use setup tools for robotic environments

Related Repositories[edit | edit source]

https://github.com/aidudezzz/deepbots, https://github.com/aidudezzz/deepworlds

Knowledge Prerequisites[edit | edit source]

Good knowledge of python, familiarity with python deep learning frameworks (such as pytroch and tensorflow). Any prior contribution to deepbots framework will be appreciated.

Mentors:[edit | edit source]

Manos Kirtas (https://github.com/ManosMagnus), Konstantinos Tsampazis (https://github.com/tsampazk), Nikolaos Passalis (https://github.com/passalis)


Development of a NodeRED compatible domain-specific language for Home Assistant[edit | edit source]

Brief Explanation[edit | edit source]

Home automation has become a standard for most houses and is a research and market trend with expected high growth. Among other smart home management solutions, Home Assistant (https://www.home-assistant.io/) is an open-source framework that clearly stands out. Home Assistant enables the integration of several commercial as well as custom-developed smart devices. Although Home Automation and other similar frameworks include tools for creating simple automation rules, they lack flexibility, i.e. more complex automation rules and flows are hard to create. Thus, advanced programming skills are needed if more sophisticated scenarios are envisaged. In this context we propose the development of a domain specific language (DSL) for home-assistant automation (HA-auto); HA-auto will enable citizen developers to easily create flows that manage complex everyday scenarios. To do so, HA-auto will provide integration to the NodeRed low-code platform (https://nodered.org/), this way making home automation flow programming even easier.


Related Repositories[edit | edit source]

https://github.com/home-assistant, https://github.com/node-red/node-red

Knowledge Prerequisites[edit | edit source]

Required: JavaScript, Python. Desired: NodeRed, Broker-based communication protocols, such as MQTT/AMQP, System Modeling / DSL knowledge

Mentors:[edit | edit source]

Konstantinos Panayiotou (klpanagi@issel.ee.auth.gr), Emmanouil Tsardoulias (etsardou@ece.auth.gr), Andreas Symeonidis (symeonid@ece.auth.gr)


Font Quality Improvement Project for Greek glyphs in Open Source Fonts[edit | edit source]

Brief Explanation[edit | edit source]

Many of the Open Source fonts (e.g., available at https://fonts.google.com), include glyphs for Greek language support. Some of these fonts are of poor quality and would benefit from a quality check and design improvements. This QA could vary from a simple character set report and design quality to the font's meta-data, metrics, OT features etc.

The aim of this project is to improve the quality of these fonts and automate the process of QA specifically to the Greek character set. This automation could be incorporated into the FontBakery tool. The exact set of fonts to be completed will be determined in discussions between the student and the mentor(s).

Expected Results[edit | edit source]

Reports on the quality of a number of Open Source fonts containing Greek characters.

Knowledge Prerequisites[edit | edit source]

Python (for FontBakery test framework) or other environment, font technologies, type design. Please note that this is a special project, where coding skills, in the traditional sense, might not be enough.

Mentors:[edit | edit source]

Alexios Zavras, Irene Vlachou Εmilios Τheofanous


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]

Hariton Polatoglou, Iraklis Varlamis, Theodoros Karounos


Plot ThanCad vector graphics to large plotters in Windows and Linux[edit | edit source]

Brief Explanation[edit | edit source]

ThanCad is a free 2 dimensional CAD which is command compatible with AutoCad. It is interoperable with AutoCad through standard dxf files. ThanCad runs in Windows and Linux, and has been experimentally ported to macOS-X. ThanCad has been used as teaching tool in National Technical University of Athens. Although ThanCad can plot to desktop printers, it lacks the capability to plot to large size (A1, A0) plotter devices, for example through the HPGL/2 gtraphics language.


Expected Results[edit | edit source]

ThanCad will be able to plot to large plotters and let the users select a plotter through the Windows printer interface.

Related repositories[edit | edit source]

https://sourceforge.net/projects/thancad/

Knowledge Prerequisites[edit | edit source]

Python

Mentors:[edit | edit source]

Thanasis Stamos, Dimitra Vassilaki


PackageInfo WebApp[edit | edit source]

Brief Explanation[edit | edit source]

A web application (site) to provide read-only access to a database of information about software packages.

For packages provided in popular Linux distributions like Debian, Ubuntu, etc., a number of characteristics is being collected (e.g., name, version, size) and stored into a database. The project would be to create a web interface to query the information in the database, in a read-only way. Users should be able to specify/search based on distribution, package name, version, etc. to drill down to a specific package and get information for it.

Expected Results[edit | edit source]

implementation of new web site/app

Related repositories[edit | edit source]

new project

Knowledge Prerequisites[edit | edit source]

front end: JavaScript (any framework) back end: Python (any framework) DB content: shell, basic SQL, optionally docker

Mentors:[edit | edit source]

Alexios Zavras

hashesDB[edit | edit source]

Brief Explanation[edit | edit source]

Tools to create, maintain, and search a database of hashes of files.

For each file, a number of distinct hashes is computed and stored into a database. Upon encountering a new file, the database can be searched to answer whether this file has been already seen. Given a huge archive of files (e.g. 6.5B files on Software Heritage), this would produce a simple method of quickly checking the provenance of files that were copied from elsewhere. Fuzzy hashes like ssdeep can extend the functionality to discover similar but not identical files.

Pointers for further info: https://www.softwareheritage.org/ https://multiformats.io/multihash/ https://ssdeep-project.github.io/ssdeep/index.html


Expected Results[edit | edit source]

implementation of new tools

Related repositories[edit | edit source]

new project

Knowledge Prerequisites[edit | edit source]

Python (optional C), basic SQL

Mentors:[edit | edit source]

Alexios Zavras


sch-webapps: aggregator for web-based educational material[edit | edit source]

Brief Explanation[edit | edit source]

Photodentro is the official repository of K12 educational material for Greece. It contains more than 15,000 learning objects or applications which are implemented in HTML, Adobe Flash, Java or other technologies, and it's used by thousands of students and teachers. Unfortunately, it has the following limitations:

  • Flash based applications (2,760) are no longer viewable since Adobe deprecated Flash at the end of 2020.
  • Applications can't be operated offline, for example when Internet connectivity is an issue.
  • There's no way for users to create their own collections, which would ease navigation.
  • Finally, teachers should be able to expose their offline collections on the school LAN so that students would use them via any browser.

A new sch-webapps application should be developed that would address these four limitations, hugely benefiting K12 education and possibly many others.

Expected Results[edit | edit source]

  • Documentation for installing sch-webapps in Windows and Debian or Ubuntu Linux along with its dependencies: the nodejs environment and the Palemoon browser for viewing Flash applications.
  • sch-webapps should start a web server at http://localhost:7100 on demand.
  • LAN users would connect there and be able to browse the local collection of web applications, similar to https://ts.sch.gr/software.
  • The local user (e.g. the teachers) would in addition see an administration page, from where they'd be able to add or remove applications.
  • Creating a local collection should be as easy as pasting a list of URLs like "http://photodentro.edu.gr/lor/r/8521/10760". sch-webapps should then automatically locate and download application.zip and metadata.xml, decompress and parse them, and generate a main index page with all the locally installed applications.

- The main index.html should be viewable even via the file:/// protocol, without a web service.

Related repositories[edit | edit source]

sch-webapps will completely replace sch-webapp-launcher and all the 40+ Debian packages of web based applications under https://gitlab.com/ts.sch.gr.

Knowledge Prerequisites[edit | edit source]

Javascript, HTML, CSS, nodejs, git, experience with educational applications.

Application tasks[edit | edit source]

  • Download a few web applications from http://photodentro.edu.gr/lor and decompress them in the same folder to manually create a "collection".
  • Then design an example index web page for that collection, similar to https://ts.sch.gr/software.
  • Finally, upload the result to a github/gitlab pages repository and share it with the mentors.

Mentors[edit | edit source]

Foteini Tsiami, Siahos Yiannis

Addition of chant glyphs in Open Source chant Font[edit | edit source]

Brief Explanation[edit | edit source]

Nowadays we have fonts to write Byzantine music (e.g. available at https://github.com/t-bullock/KA-Arvanitis), but we don’t have yet a font with all glyphs for all the chant notes which belong to the various periods of the evolution of Byzantine music. The aim of this project is to improve this situation and add the missing glyphs which we take mainly from manuscripts of the 9th-19th centuries.* Up to date, in Unicode we have only 246 signs. The exact number of new glyphs to be completed will be determined in discussions between the student and the mentors. This is not a typical programming project, but a complex task, requiring skills both in font technologies, paleography of Byzantine music and design. It’ s important that today we have about 200 years since the first printed chant book and 30 years since the development of the first chant font. For the project we will take as a point of departure the font of Gregorios Stathis.

  • A second step would be a proposal in Unicode to add codepoints for the new signs.

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

Expected Results[edit | edit source]

Full support for all the neumes of Byzantine music in an Open Source font.

Knowledge Prerequisites[edit | edit source]

Font technologies, Paleography of Byzantine music, Type design. Please note that this is a special project, where coding, in the traditional sense, will not be enough.

Mentors:[edit | edit source]

Nikolaos Siklafidis: Phd Candidate in Theology at the Aristotle University of Thessaloniki, nikosikl@past.auth.gr
Maria Alexandru: Associate professor in Byzantine music at the Aristotle University of Thessaloniki, malexand@mus.auth.gr


MediaCMS - modern, fully featured video and media CMS[edit | edit source]

Brief Explanation[edit | edit source]

MediaCMS is a content management system developed to meet the needs of modern web platforms for viewing and sharing media. It is built with Django (backend) and React (frontend) and features a REST API. It includes a responsive design with two themes, advanced categorization options (tags, categories, playlists), full text search, an enhanced video player, subtitles, plus streaming through HLS.

The suggested work for GSoC 2021 includes working on any of these two directions: extend the software and provide Machine Learning powered functionality.

Extend the software ideas:

  • software internalization
  • improvements to system notifications
  • admin dashboards
  • provide a command line client that utilizes the REST API
  • block storage support
  • implement remote encoding services

Machine Learning powered functionality:

  • improve the related media algorithm, using collaborative filtering or other approaches. This can make the related media much more interesting
  • provide auto-tagging for media, based on existing but also new tags. New tags could be linked with user provided images. This will allow for efficient auto-tagging for large numbers of images and videos
  • automatic titles and descriptions based on the metadata extracted
  • video thumbnail extraction, that is representative of the video.

Expected Results[edit | edit source]

All functionality created as part of this work will be integrated to the software through multiple Pull Requests. This work can have a massive impact over the software adoption.

Related repositories[edit | edit source]

https://github.com/mediacms-io/mediacms
https://mediacms.io
https://demo.mediacms.io

Knowledge Prerequisites[edit | edit source]

Python/Django for backend related work
Javascript/React for frontend related work
Machine Learning or Deep Learning frameworks knowledge, for the ML related suggestions

Mentors:[edit | edit source]

Markos Gogoulos