https://ellak.gr/wiki/api.php?action=feedcontributions&user=Mgogoulos&feedformat=atomΕλεύθερο Λογισμικό / Λογισμικό ανοιχτού κώδικα - Συνεισφορές χρήστη [el]2024-03-29T15:31:16ZΣυνεισφορές χρήστηMediaWiki 1.35.0https://ellak.gr/wiki/index.php?title=Google_Summer_of_Code_2021_proposed_ideas&diff=2018Google Summer of Code 2021 proposed ideas2021-02-09T19:59:33Z<p>Mgogoulos: new proposal (annotation tool), small corrections for the sake of consistency</p>
<hr />
<div><br />
<br />
<br />
Students interested to participate should check which of the following projects fits their interests and skills.<br />
<br />
'''Τo communicate with the mentors and ask questions about the projects, students should subscribe to this '''[https://lists.ellak.gr/gsoc-developers/listinfo.html list]''' and post relevant questions. Please follow the [https://ellak.gr/wiki/index.php?title=Proposal_Template Proposal Template]'''<br />
<br />
For practical information, students visit this '''[https://ellak.gr/wiki/index.php?title=Practical_information_for_students page]'''.<br />
<br />
----<br />
<br />
[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]<br />
<br />
== Sastix-CMS: A general purpose JAVA CMS in Spring Boot ==<br />
<br />
==== Brief Explanation ====<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
==== Expected Results ====<br />
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)<br />
<br />
==== Related repositories ====<br />
https://github.com/sastix/cms<br />
<br />
==== Knowledge Prerequisites ====<br />
java, maven, js, html, css, mysql, docker<br />
<br />
==== Mentors: ====<br />
[https://gr.linkedin.com/in/skitsas Ioannis Skitsas -] [https://gr.linkedin.com/in/pbochalis Panagiotis Bochalis]<br />
<br />
<br />
== Creation of a multi user audio first annotation tool ==<br />
<br />
==== Brief Explanation ====<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
==== Expected Results ====<br />
An analysis on existing open source tools for labeling data, pros and cons for each.<br />
<br />
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)<br />
<br />
Distinction of users (managers, annotators) with different permissions (add data, set categories or tags, set policies)<br />
<br />
More advanced functionality may include setting time schedules, setting consensus policies (majority, minimum ratio), individual annotator's scoring, filtering of results by annotator. <br />
<br />
==== Related repositories ====<br />
BAT: https://github.com/BlaiMelendezCatalan/BAT<br><br />
<br />
Label Studio: https://github.com/heartexlabs/label-studio<br><br />
<br />
==== Knowledge Prerequisites ====<br />
A modern frontend/backend combination for building modern web applications, as Django/React<br />
<br />
==== Mentors: ====<br />
[https://www.linkedin.com/in/pantelis-vikatos-1383437a/ Pantelis Vikatos], [https://github.com/mgogoulos Markos Gogoulos]<br />
<br />
<br />
== Extend deepbots to support Evolutionary Algorithms ==<br />
<br />
==== Brief Explanation ====<br />
<br />
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.<br />
-<br />
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.<br />
<br />
==== Expected Results ====<br />
The expected results are two-fold: 1) Extend deepbots to support evolutionary algorithms on Webots 2) Implement a hybrid neuroevolutionary deep reinforcement learning algorithm<br />
<br />
==== Related Repositories ====<br />
https://github.com/aidudezzz/deepbots, https://github.com/aidudezzz/deepworlds<br />
<br />
==== Knowledge Prerequisites ====<br />
Good knowledge of python, familiarity with python deep learning frameworks (such as pytroch and tensorflow). Any prior contribution to deepbots framework will be appreciated.<br />
<br />
==== Mentors: ====<br />
Manos Kirtas (https://github.com/ManosMagnus), Konstantinos Tsampazis (https://github.com/tsampazk), Nikolaos Passalis (https://github.com/passalis)<br />
<br />
== Extend deepbots to support stable-baselines and implement gym-style default Reinforcement Learning environments ==<br />
<br />
==== Brief Explanation ====<br />
<br />
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.<br />
<br />
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.<br />
<br />
==== Expected Results ====<br />
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<br />
<br />
==== Related Repositories ====<br />
https://github.com/aidudezzz/deepbots, https://github.com/aidudezzz/deepworlds<br />
<br />
==== Knowledge Prerequisites ====<br />
Good knowledge of python, familiarity with python deep learning frameworks (such as pytroch and tensorflow). Any prior contribution to deepbots framework will be appreciated.<br />
<br />
==== Mentors: ====<br />
Manos Kirtas (https://github.com/ManosMagnus), Konstantinos Tsampazis (https://github.com/tsampazk), Nikolaos Passalis (https://github.com/passalis)<br />
<br />
<br />
== Development of a NodeRED compatible domain-specific language for Home Assistant ==<br />
<br />
==== Brief Explanation ====<br />
<br />
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. <br />
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.<br />
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.<br />
<br />
<br />
==== Related Repositories ====<br />
https://github.com/home-assistant, https://github.com/node-red/node-red<br />
<br />
==== Knowledge Prerequisites ====<br />
Required: JavaScript, Python. Desired: NodeRed, Broker-based communication protocols, such as MQTT/AMQP, System Modeling / DSL knowledge<br />
<br />
==== Mentors: ====<br />
Konstantinos Panayiotou (klpanagi@issel.ee.auth.gr), Emmanouil Tsardoulias (etsardou@ece.auth.gr), Andreas Symeonidis (symeonid@ece.auth.gr)<br />
<br />
<br />
== Development of a DIY robot kit for educators ==<br />
<br />
==== Brief Explanation ====<br />
<br />
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.<br />
<br />
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.<br />
<br />
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).<br />
<br />
Detailed assembly instructions, images, and videos from the assembly process are desirable. <br />
<br />
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. <br />
<br />
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. <br />
<br />
Some sample control scripts and robot programming scenarios will also be developed.<br />
<br />
==== Expected Results ====<br />
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.<br />
<br />
The three months plan of the project must define: <br />
a) The selection of electronics parts, SBC, and motors. <br />
b) The 3D designs of the printed parts of the robot. <br />
c) The libraries and software for controlling the robot.<br />
d) The development of assembly guidelines and the creation of demo scenarios for the class.<br />
<br />
<br />
<br />
==== Related Repositories ====<br />
https://hackaday.io/project/26007-versatile-educational-2wd-robot<br />
<br />
==== Knowledge Prerequisites ====<br />
Electronics, Robotics, Programming.<br />
<br />
==== Mentors: ====<br />
[http://hariton.webpages.auth.gr/ Hariton Polatoglou], [https://www.dit.hua.gr/~varlamis/ Iraklis Varlamis], [https://github.com/tgkarounos Theodoros Karounos]<br />
<br />
<br />
== Plot ThanCad vector graphics to large plotters in Windows and Linux ==<br />
<br />
==== Brief Explanation ====<br />
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.<br />
<br />
<br />
==== Expected Results ====<br />
ThanCad will be able to plot to large plotters and let the users select a plotter through the Windows printer interface.<br />
==== Related repositories ====<br />
https://sourceforge.net/projects/thancad/<br />
<br />
==== Knowledge Prerequisites ====<br />
Python<br />
<br />
==== Mentors: ====<br />
Thanasis Stamos, Dimitra Vassilaki<br />
<br />
<br />
== PackageInfo WebApp ==<br />
<br />
==== Brief Explanation ====<br />
A web application (site) to provide read-only access to a database of information about software packages.<br />
<br />
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. <br />
==== Expected Results ====<br />
<br />
implementation of new web site/app<br />
<br />
==== Related repositories ====<br />
new project<br />
<br />
==== Knowledge Prerequisites ====<br />
<br />
front end: JavaScript (any framework)<br />
back end: Python (any framework)<br />
DB content: shell, basic SQL, optionally docker<br />
<br />
==== Mentors: ====<br />
<br />
[https://github.com/zvr Alexios Zavras]<br />
<br />
== hashesDB ==<br />
<br />
==== Brief Explanation ====<br />
Tools to create, maintain, and search a database of hashes of files.<br />
<br />
For each file, a number of distinct hashes is computed and stored into a database.<br />
Upon encountering a new file, the database can be searched to answer whether this file has been already seen.<br />
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. <br />
<br />
Pointers for further info:<br />
https://www.softwareheritage.org/<br />
https://multiformats.io/multihash/<br />
https://ssdeep-project.github.io/ssdeep/index.html<br />
<br />
<br />
==== Expected Results ====<br />
<br />
implementation of new tools<br />
<br />
==== Related repositories ====<br />
new project<br />
<br />
==== Knowledge Prerequisites ====<br />
Python (optional C), basic SQL<br />
<br />
==== Mentors: ====<br />
[https://github.com/zvr Alexios Zavras]<br />
<br />
<br />
== An open registry for street names and numbers ==<br />
<br />
==== Brief Explanation ====<br />
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.<br />
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.<br />
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.<br />
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.<br />
==== Expected Results ====<br />
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.<br />
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.<br />
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.<br />
<br />
==== Related repositories ====<br />
Related to Open Street Map and how to upload/download data files and conversions<br />
https://wiki.openstreetmap.org/wiki/Downloading_data<br />
https://registry.opendata.aws/osm/<br />
https://wiki.openstreetmap.org/wiki/Editing_Standards_and_Conventions<br />
Related to Street registries world-wide<br />
https://wiki.openstreetmap.org/wiki/OpenStreetMap_for_Government<br />
https://www.leeds.gov.uk/parking-roads-and-travel/street-register<br />
https://www.etalab.gouv.fr/qui-sommes-nous<br />
https://adresse.data.gouv.fr/<br />
An open street names directory from GFOS for Greece<br />
https://github.com/eellak/Greek-Street-Names-Directory<br />
<br />
<br />
Knowledge Prerequisites<br />
<br />
Python , Data Mining,Perl, PHP, C, C++, Java <br />
<br />
==== Mentors: ====<br />
[https://www.dit.hua.gr/~varlamis/ Iraklis Varlamis], [https://github.com/partizanos Dimitris Proios]<br />
<br />
<br />
== Aerial image recognition services for the agricultural domain==<br />
<br />
==== Brief Explanation ====<br />
The aim of this project is to develop and train a model for plantation counting from aerial and satellite images<br />
==== Expected Results ====<br />
The software that will be developed must be able to:<br />
Setup, configure and train models for processing different plantation types, using various image formats as input.<br />
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.<br />
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.<br />
Provide a graphical user interface for processing and curating batches of images.<br />
The code must also support LSO-25 images that also contain infrared channel information.<br />
==== Related repositories ====<br />
Open projects that specialize in object detection and counting from aerial and satellite images<br />
https://github.com/azavea/raster-vision<br />
https://github.com/sreeram004/Count-the-number-of-Palm-Trees<br />
https://github.com/rashivkp/coconut-tree-detection<br />
Sample Image Datasets<br />
https://github.com/mohanrajmit/Coconut-Tree-Detection/tree/master/dataset<br />
https://github.com/chrieke/awesome-satellite-imagery-datasets<br />
Related reading<br />
https://arxiv.org/ftp/arxiv/papers/1701/1701.06462.pdf<br />
https://ieeexplore.ieee.org/abstract/document/6881615<br />
==== Knowledge Prerequisites ====<br />
Python , Data Mining,Perl, PHP, C, C++, Java <br />
<br />
==== Mentors: ====<br />
[https://www.dit.hua.gr/~varlamis/ Iraklis Varlamis], [https://github.com/louridas Panos Louridas], [https://github.com/partizanos Dimitris Proios]<br />
<br />
<br />
== Development of a personal secure vault for digital items==<br />
<br />
==== Brief Explanation ====<br />
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. <br />
==== Expected Results ====<br />
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).<br />
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.<br />
==== Related repositories ====<br />
Related open projects <br />
https://github.com/mhisoft/eVault<br />
https://github.com/keeps/roda<br />
https://github.com/DSpace/DSpace<br />
https://github.com/hashicorp/vault<br />
<br />
<br />
==== Knowledge Prerequisites ====<br />
Python ,Perl, PHP, C, C++, Java <br />
<br />
==== Mentors ====<br />
[https://www.dit.hua.gr/~varlamis/ Iraklis Varlamis], [https://github.com/louridas Panos Louridas], [https://github.com/partizanos Dimitris Proios]<br />
<br />
<br />
== Preservation of flash-based Greek educational applications ==<br />
<br />
==== Brief Explanation ====<br />
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.<br />
<br />
Unfortunately, Flash is being deprecated , and those applications will no longer be runnable. The goal of this project is:<br />
<br />
* To package these applications in a cross-platform format like npm,<br />
* To allow teachers and students to select which ones they want to ins- tall,<br />
* After package installation, on "postinst", to create an index page with the available packages,<br />
* So that this page can be viewed offline with palemoon, a browser that aims to keep running flash even after 2020.<br />
<br />
==== Expected Results ====<br />
The result will be all the flash applications packaged in npm or similar format (many GB), and the packager/index generator/launcher code base.<br />
<br />
==== Related repositories ====<br />
https://gitlab.com/ts.sch.gr/sch-webapp-launcher/<br />
<br />
==== Knowledge Prerequisites ====<br />
Python, HTML, Javascript, CSS, experience with educational applications<br />
<br />
==== Mentors: ====<br />
Foteini Tsiami, [https://www.linkedin.com/in/yannissiahos/ Siahos Yiannis]<br />
<br />
<br />
== Addition of chant glyphs in Open Source chant Font ==<br />
<br />
==== Brief Explanation ====<br />
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.<br />
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.<br />
* A second step would be a proposal in Unicode to add codepoints for the new signs.<br />
<br />
'''This is not a typical programming project. '''If you have never designed fonts before, it is probably not for you.<br />
<br />
==== Expected Results ====<br />
Full support for all the neumes of Byzantine music in an Open Source font.<br />
<br />
==== Knowledge Prerequisites ====<br />
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.<br />
<br />
==== Mentors: ====<br />
Nikolaos Siklafidis: Phd Candidate in Theology at the Aristotle University of Thessaloniki, nikosikl@past.auth.gr<br><br />
Maria Alexandru: Associate professor in Byzantine music at the Aristotle University of Thessaloniki, malexand@mus.auth.gr<br />
<br />
<br />
== MediaCMS - modern, fully featured video and media CMS ==<br />
<br />
==== Brief Explanation ====<br />
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. <br />
<br />
The suggested work for GSoC 2021 includes working on any of these two directions: extend the software and provide Machine Learning powered functionality. <br />
<br />
Extend the software ideas:<br />
* software internalization<br />
* improvements to system notifications<br />
* admin dashboards<br />
* provide a command line client that utilizes the REST API<br />
* block storage support<br />
* implement remote encoding services<br />
<br />
Machine Learning powered functionality:<br />
* improve the related media algorithm, using collaborative filtering or other approaches. This can make the related media much more interesting<br />
* 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<br />
* automatic titles and descriptions based on the metadata extracted<br />
* video thumbnail extraction, that is representative of the video. <br />
<br />
==== Expected Results ====<br />
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. <br />
<br />
==== Related repositories ====<br />
https://github.com/mediacms-io/mediacms<br><br />
https://mediacms.io<br><br />
https://demo.mediacms.io<br />
<br />
==== Knowledge Prerequisites ====<br />
Python/Django for backend related work<br><br />
Javascript/React for frontend related work<br><br />
Machine Learning or Deep Learning frameworks knowledge, for the ML related suggestions<br />
<br />
==== Mentors: ====<br />
[https://github.com/mgogoulos Markos Gogoulos]<br />
<br />
[[Κατηγορία:GSOC2021]]<br />
[[Κατηγορία:GSOC]]</div>Mgogouloshttps://ellak.gr/wiki/index.php?title=Google_Summer_of_Code_2021_proposed_ideas&diff=2006Google Summer of Code 2021 proposed ideas2021-01-24T18:01:36Z<p>Mgogoulos: MediaCMS project entry</p>
<hr />
<div><br />
<br />
<br />
Students interested to participate should check which of the following projects fits their interests and skills.<br />
<br />
'''Τo communicate with the mentors and ask questions about the projects, students should subscribe to this '''[https://lists.ellak.gr/gsoc-developers/listinfo.html list]''' and post relevant questions. Please follow the [https://ellak.gr/wiki/index.php?title=Proposal_Template Proposal Template]'''<br />
<br />
For practical information, students visit this '''[https://ellak.gr/wiki/index.php?title=Practical_information_for_students page]'''.<br />
<br />
----<br />
<br />
[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]<br />
<br />
== Sastix-CMS: A general purpose JAVA CMS in Spring Boot ==<br />
<br />
==== Brief Explanation ====<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
==== Expected Results ====<br />
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)<br />
<br />
==== Related repositories ====<br />
https://github.com/sastix/cms<br />
<br />
==== Knowledge Prerequisites ====<br />
java, maven, js, html, css, mysql, docker<br />
<br />
==== Mentors: ====<br />
[https://gr.linkedin.com/in/skitsas Ioannis Skitsas -] [https://gr.linkedin.com/in/pbochalis Panagiotis Bochalis]<br />
<br />
== Plot ThanCad vector graphics to large plotters in Windows and Linux ==<br />
<br />
==== Brief Explanation ====<br />
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.<br />
<br />
<br />
==== Expected Results ====<br />
ThanCad will be able to plot to large plotters and let the users select a plotter through the Windows printer interface.<br />
==== Related repositories ====<br />
https://sourceforge.net/projects/thancad/<br />
<br />
==== Knowledge Prerequisites ====<br />
Python<br />
<br />
==== Mentors: ====<br />
Thanasis Stamos, Dimitra Vassilaki<br />
<br />
<br />
== hashesDB ==<br />
<br />
==== Brief Explanation ====<br />
Tools to create, maintain, and search a database of hashes of files.<br />
<br />
For each file, a number of distinct hashes is computed and stored into a database.<br />
Upon encountering a new file, the database can be searched to answer whether this file has been already seen.<br />
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. <br />
<br />
Pointers for further info:<br />
https://www.softwareheritage.org/<br />
https://multiformats.io/multihash/<br />
https://ssdeep-project.github.io/ssdeep/index.html<br />
<br />
<br />
Expected Results<br />
<br />
implementation of new tools<br />
<br />
==== Related repositories ====<br />
new project<br />
<br />
==== Knowledge Prerequisites ====<br />
Python (optional C), basic SQL<br />
<br />
==== Mentors: ====<br />
[https://github.com/zvr Alexios Zavras]<br />
<br />
<br />
== An open registry for street names and numbers ==<br />
<br />
==== Brief Explanation ====<br />
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.<br />
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.<br />
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.<br />
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.<br />
==== Expected Results ====<br />
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.<br />
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.<br />
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.<br />
<br />
==== Related repositories ====<br />
Related to Open Street Map and how to upload/download data files and conversions<br />
https://wiki.openstreetmap.org/wiki/Downloading_data<br />
https://registry.opendata.aws/osm/<br />
https://wiki.openstreetmap.org/wiki/Editing_Standards_and_Conventions<br />
Related to Street registries world-wide<br />
https://wiki.openstreetmap.org/wiki/OpenStreetMap_for_Government<br />
https://www.leeds.gov.uk/parking-roads-and-travel/street-register<br />
https://www.etalab.gouv.fr/qui-sommes-nous<br />
https://adresse.data.gouv.fr/<br />
An open street names directory from GFOS for Greece<br />
https://github.com/eellak/Greek-Street-Names-Directory<br />
<br />
<br />
Knowledge Prerequisites<br />
<br />
Python , Data Mining,Perl, PHP, C, C++, Java <br />
<br />
==== Mentors: ====<br />
[https://www.dit.hua.gr/~varlamis/ Iraklis Varlamis], [https://github.com/partizanos Dimitris Proios]<br />
<br />
<br />
== Aerial image recognition services for the agricultural domain==<br />
<br />
==== Brief Explanation ====<br />
The aim of this project is to develop and train a model for plantation counting from aerial and satellite images<br />
==== Expected Results ====<br />
The software that will be developed must be able to:<br />
Setup, configure and train models for processing different plantation types, using various image formats as input.<br />
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.<br />
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.<br />
Provide a graphical user interface for processing and curating batches of images.<br />
The code must also support LSO-25 images that also contain infrared channel information.<br />
==== Related repositories ====<br />
Open projects that specialize in object detection and counting from aerial and satellite images<br />
https://github.com/azavea/raster-vision<br />
https://github.com/sreeram004/Count-the-number-of-Palm-Trees<br />
https://github.com/rashivkp/coconut-tree-detection<br />
Sample Image Datasets<br />
https://github.com/mohanrajmit/Coconut-Tree-Detection/tree/master/dataset<br />
https://github.com/chrieke/awesome-satellite-imagery-datasets<br />
Related reading<br />
https://arxiv.org/ftp/arxiv/papers/1701/1701.06462.pdf<br />
https://ieeexplore.ieee.org/abstract/document/6881615<br />
==== Knowledge Prerequisites ====<br />
Python , Data Mining,Perl, PHP, C, C++, Java <br />
<br />
==== Mentors: ====<br />
[https://www.dit.hua.gr/~varlamis/ Iraklis Varlamis], [https://github.com/louridas Panos Louridas], [https://github.com/partizanos Dimitris Proios]<br />
<br />
<br />
== Development of a personal secure vault for digital items==<br />
<br />
==== Brief Explanation ====<br />
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. <br />
==== Expected Results ====<br />
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).<br />
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.<br />
==== Related repositories ====<br />
Related open projects <br />
https://github.com/mhisoft/eVault<br />
https://github.com/keeps/roda<br />
https://github.com/DSpace/DSpace<br />
https://github.com/hashicorp/vault<br />
<br />
<br />
==== Knowledge Prerequisites ====<br />
Python ,Perl, PHP, C, C++, Java <br />
<br />
==== Mentors ====<br />
[https://www.dit.hua.gr/~varlamis/ Iraklis Varlamis], [https://github.com/louridas Panos Louridas], [https://github.com/partizanos Dimitris Proios]<br />
<br />
<br />
== Preservation of flash-based Greek educational applications ==<br />
<br />
==== Brief Explanation ====<br />
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.<br />
<br />
Unfortunately, Flash is being deprecated , and those applications will no longer be runnable. The goal of this project is:<br />
<br />
- To package these applications in a cross-platform format like npm,<br />
<br />
- To allow teachers and students to select which ones they want to install,<br />
<br />
- After package installation, on "postinst", to create an index page with the available packages,<br />
<br />
- So that this page can be viewed offline with palemoon, a browser that aims to keep running flash even after 2020.<br />
<br />
==== Expected Results ====<br />
The result will be all the flash applications packaged in npm or similar format (many GB), and the packager/index generator/launcher code base.<br />
<br />
==== Related repositories ====<br />
https://gitlab.com/ts.sch.gr/sch-webapp-launcher/<br />
<br />
==== Knowledge Prerequisites ====<br />
Python, HTML, Javascript, CSS, experience with educational applications<br />
<br />
==== Mentors: ====<br />
Foteini Tsiami, [https://www.linkedin.com/in/yannissiahos/ Siahos Yiannis]<br />
<br />
<br />
<br />
== Addition of Greek glyphs in Open Source Fonts ==<br />
<br />
==== Brief Explanation ====<br />
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.<br />
<br />
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).<br />
<br />
'''This is not a typical programming project. '''If you have never designed fonts before, it is probably not for you.<br />
<br />
==== Expected Results ====<br />
Full support for Greek text in a number of Open Source fonts.<br />
<br />
==== Knowledge Prerequisites ====<br />
Type design, font technologies. Please note that this is a special project, where coding, in the traditional sense, will not be enough.<br />
<br />
==== Mentors: ====<br />
[https://github.com/zvr Alexios Zavras], [https://github.com/irenevl Irene Vlachou] [https://github.com/thynem Εmilios Τheofanous]<br />
<br />
<br />
==clio — Software Components and IP Management System ==<br />
<br />
==== Brief Explanation ====<br />
clio is a web-based system to manage data on software components and their relations.<br />
It started out as a GSoC 2018 project.<br />
For the 2019 GSoC, the main goals would be:<br />
- improvement of the UI<br />
- integration of SDPX data<br />
- extension to covering of file info (time permitting)<br />
<br />
==== Expected Results ====<br />
<br />
improvements to clio<br />
<br />
==== Related repositories ====<br />
<br />
code at https://github.com/eellak/clio<br />
demo at https://clio.ellak.gr/<br />
<br />
==== Knowledge Prerequisites ====<br />
<br />
Python, web front-end<br />
<br />
==== Mentors: ====<br />
<br />
[https://github.com/zvr Alexios Zavras]<br />
<br />
<br />
<br />
== MediaCMS - modern, fully featured video and media CMS ==<br />
<br />
==== Brief Explanation ====<br />
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. <br />
<br />
The suggested work for GSoC 2021 includes working on any of these two directions: extend the software and provide Machine Learning powered functionality. <br />
<br />
Extend the software ideas:<br />
* software internalization<br />
* improvements to system notifications<br />
* admin dashboards<br />
* provide a command line client that utilizes the REST API<br />
* block storage support<br />
* implement remote encoding services<br />
<br />
Machine Learning powered functionality:<br />
* improve the related media algorithm, using collaborative filtering or other approaches. This can make the related media much more interesting<br />
* 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<br />
* automatic titles and descriptions based on the metadata extracted<br />
* video thumbnail extraction, that is representative of the video. <br />
<br />
==== Expected Results ====<br />
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. <br />
<br />
==== Related repositories ====<br />
https://github.com/mediacms-io/mediacms<br><br />
https://mediacms.io<br><br />
https://demo.mediacms.io<br />
<br />
==== Knowledge Prerequisites ====<br />
Python/Django for backend related work<br><br />
Javascript/React for frontend related work<br><br />
Machine Learning or Deep Learning frameworks knowledge, for the ML related suggestions<br />
<br />
==== Mentors: ====<br />
[https://github.com/mgogoulos Markos Gogoulos]<br />
<br />
[[Κατηγορία:GSOC2021]]<br />
[[Κατηγορία:GSOC]]</div>Mgogouloshttps://ellak.gr/wiki/index.php?title=Google_Summer_of_Code_2019_proposed_ideas&diff=1527Google Summer of Code 2019 proposed ideas2019-01-30T17:42:43Z<p>Mgogoulos: small changes in styling</p>
<hr />
<div>'''GFOSS project proposals for GSOC 2019'''<br />
<br />
Students interested to participate should check which of the following projects fits their interests and skills. For practical information for students [https://ellak.gr/wiki/index.php?title=Practical_information_for_students visit this '''page''']. For additional information, please subscribe to this '''[https://lists.ellak.gr/gsoc-developers/listinfo.html lis]t''' and post your questions. The full list archives are available '''here'''.<br />
<br />
[https://ellak.gr/wiki/index.php?title=Google_Summer_of_Code_2017_Accepted_projects The GSOC Projects implemented in 2017] <br />
<br />
[https://ellak.gr/wiki/index.php?title=Google_Summer_of_Code_2018_Accepted_projects The GSOC Projects implemented in 2018]<br />
<br />
== Upgrade UMLGraph with JAva's new doclet API ==<br />
<br />
==== Brief Explanation ====<br />
UMLGraph allows the declarative specification and drawing of UML class and sequence diagrams. One specifies a class diagram using the Java syntax complemented by javadoc tags. Running the UmlGraph doclet on the specification will generate a Graphviz diagram specification that can be automatically processed to create Postscript, PNG, SVG, JPEG, fig, or Framemaker drawings. The objective of the proposed project is to upgrade the UMLGraph code so that it uses the jdk.javadoc.doclet Doclet API rather than the currently used older package com.sun.javadoc. This new API provides an environment which, in conjunction with the Language Model API and Compiler Tree API, allows clients to inspect the source-level structures of programs and libraries, including API comments embedded in the source. Details on the mapping of old types to new types can be found in the Migration Guide https://docs.oracle.com/javase/9/docs/api/jdk/javadoc/doclet/package-summary.html#migration. In addition the project will also add support for Java features such as Lambdas and Generics, unit tests, and update the corresponding integration tests.<br />
<br />
==== Expected Results ====<br />
It is expected that the project will deliver a well-tested version of UMLGraph built around the new jdk.javadoc.doclet Doclet API with support for Java features such as Lambdas and Generics.<br />
<br />
==== Related Repositories ====<br />
https://github.com/dspinellis/UMLGraph<br />
<br />
==== Knowledge Prerequisites ====<br />
Java, UML<br />
<br />
==== Mentors: ====<br />
[https://github.com/dspinellis Diomidis Spinellis]<br />
<br />
== 3gm ==<br />
<br />
==== Brief Explanation ====<br />
Government Gazette text mining, cross-linking, and codification Project (or 3gm for short) uses Natural Language Processing Methods and Practices on Greek Legislation. It is primarily aimed at providing with the most recent versions of each law, i.e. an automated codex via NLP methods and practices.<br />
<br />
The scope of this GSoC project aims to expand the capabilities of the existing project by implementing NLP extensions (NER, Dep Parser etc.) described here: https://github.com/eellak/gsoc2018-3gm/issues in order to asses codification procedures. <br />
<br />
==== Expected Results ====<br />
The aim of this GSoC project is to extend 3gm's current capabilities by incorporating more features like the development of a customized language model for dependency parsing, NER Extraction, etc. in order to furtherly asses codification procedures<br />
<br />
==== Related Repositories ====<br />
https://github.com/eellak/gsoc2018-3gm/tree/master/3gm and http://3gm.ellak.gr/<br />
<br />
==== Knowledge Prerequisites ====<br />
Experience in Machine Learning, Knowledge of Python, Basic DevOps and Web Development Skills<br />
<br />
==== Mentors: ====<br />
[https://github.com/dspinellis Diomidis Spinellis] [[Marios Papachristou]]<br />
<br />
== Development of a DIY robot kit for educators ==<br />
<br />
==== Brief Explanation ====<br />
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.<br />
<br />
The kit that will be developed and opened must comprise 3D-designs for all the necessary parts of a modular robot that can be printed and assembled following the assemble guidelines. The target audience of the project can be educators (e.g. high school ICT teachers), with minimum expertise in robotics, electronics, and programming. So the print and assembly guidelines must be detailed and simple. In addition, the project must have a modular structure that allows educators to guide their students to the step-by-step development of the robot and to the implementation of simple navigation or sensing scenaria, that require basic programming skills.<br />
<br />
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).<br />
<br />
Detailed assembly instructions, images and videos from the assembly process are desirable. <br />
<br />
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. <br />
<br />
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. <br />
<br />
Some sample control scripts and robot programming scenarios will also be developed.<br />
<br />
==== Expected Results ====<br />
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.<br />
<br />
==== Related Repositories ====<br />
https://hackaday.io/project/26007-versatile-educational-2wd-robot<br />
<br />
==== Knowledge Prerequisites ====<br />
Electronics, Robotics, Programming.<br />
<br />
==== Mentors: ====<br />
Iraklis Varlamis, Theodoros Karounos<br />
<br />
== Addition of Greek glyphs in Open Source Fonts ==<br />
<br />
==== Brief Explanation ====<br />
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.<br />
<br />
The aim of this project is to imporve this situation and add the missing glyphs in the correct Unicode codepoints. The exact set of fonts to be completed will be determined in discussions between the student and the mentor(s).<br />
<br />
'''This is not a typical programming project. '''If you have never designed fonts before, it is probably not for you.<br />
<br />
==== Expected Results ====<br />
Full support for Greek text in a number of Open Source fonts.<br />
<br />
==== Knowledge Prerequisites ====<br />
Type design, font technologies. Please note that this is a special project, where coding, in the traditional sense, will not be enough.<br />
<br />
==== Mentors: [https://github.com/zvr Alexios Zavras], [https://github.com/irenevl Irene Vlachou] [https://github.com/thynem Εmilios Τheofanous] ====<br />
<br />
== Development of a Thesis Management System (TMS) ==<br />
<br />
==== Brief Explanation ====<br />
The lifecycle of the final project Thesis takes a large amount of administrative work from the initiation phase of project assignment till the last stage of publishing the Thesis to the University's library catalog. The main entities in this lifecycle are students, teachers, externals (e.g. companies or academics that cooperates with the university) and of course the Thesis subject.<br />
<br />
The cycle begins with professors announcing subjects, which can be their own subjects or subjects that have been suggested by externals or even the students who have contacted professors beforhand. <br />
<br />
It continuous with students applying for subjects, from the list of available subjects and professors doing the final assignment.<br />
<br />
When a student did not manage to get a subject for which he/she applied, the system raises a flag to the student advisor, who contacts the student and professors in order to find a subject.<br />
<br />
Thesis subjects must fall under one or more topics, from a list that the department sets and the topic information along with the title, a description and a list of references is stored with each subject.<br />
<br />
When the profesor finally decides on the student(s) that will carry out a project, he/she has to propose two more professors from the department or externals that will co-supervise the project.<br />
<br />
When all the assignments have been fixed by the administrator of the TMS, they can be exported in a document which can be published on the department web site.<br />
<br />
When the student completes the thesis he/she submits a draft to the TMS and automatically notifies the supervisor to provide feedback. This is repeated until the supervisor agrees that this is the thesis to be shared with the other two co-supervisors.<br />
<br />
In the final step the supervisors comment on the thesis and the final document is submitted to the system.<br />
<br />
The TMS must provide reports on the undergoing and completed thesis, must alert on delayed thesis and provide related statistics.<br />
<br />
==== Expected Results ====<br />
In the three months of the project it is expected to have the whole functionality required to support the TMS lifecycle.<br />
<br />
==== Related Repositories ====<br />
https://github.com/redhatcz/Thesis-management-system <br />
<br />
==== Knowledge Prerequisites ====<br />
Programming Skills<br />
<br />
==== Mentors: ====<br />
Iraklis Varlamis, Theodoros Karounos<br />
<br />
== makeblock support in Greek ==<br />
<br />
=== Brief Explanation ===<br />
Mblock, https://ide.makeblock.com/, is one of the best tools for Programming Software Designed for STEAM Education, supporting the Arduino (among other hardware).<br />
<br />
We want to support the Greek Language on mblock version 5 for all platforms it is available, as this will enable Greek children to use it on their native language.<br />
<br />
==== Expected Results ====<br />
The addition of the Greek Language on mblock version 5<br />
<br />
==== Related Repositories ====<br />
http://www.mblock.cc/<br />
<br />
==== Knowledge Prerequisites ====<br />
programming in general<br />
<br />
==== Mentors: ====<br />
Sarantos Kapidakis<br />
<br />
== Round-trip integration between GitHub/GitLab issues and git-issue ==<br />
<br />
==== Brief Explanation ====<br />
Git-issue is a minimalist decentralized issue management system based on Git. It has the following advantages over other systems.<br />
<br />
No backend, no dependencies: You can install and use git issue with a single shell script. There's no need for a server or a database back-end, and the corresponding problems and requirements for their administration.<br />
<br />
Decentralized asynchronous management: Anyone can add, comment, and edit issues without requiring online access to a centralized server. There's no need for online connectivity; you can pull and push issues when you're online.<br />
<br />
Transparent text file format: Issues are stored as simple text files, which you can view, edit, share, and backup with any tool you like. There's no risk of loosing access to your issues because a server has failed.<br />
<br />
Git-based: Issues are changed and shared through Git. This provides git issue with a robust, efficient, portable, and widely available infrastructure. It allows you to reuse your Git credentials and infrastructure, allows the efficient merging of work, and also provides a solid audit trail regarding any changes. You can even use Git and command-line tools directly to make sophisticated changes to your issue database.<br />
<br />
Git-issue can currently import issues using the GitHub API. The project's objective is to extend this functionality with a way to synchronize between GitHub/GitLab issues and the issues kept under git-issue.<br />
<br />
==== Expected Results ====<br />
Git-issue extended for exporting its issues to GitHub/GitLab<br />
<br />
==== Related Repositories ====<br />
https://github.com/dspinellis/git-issue<br />
<br />
==== Knowledge Prerequisites ====<br />
Unix shell scripting<br />
<br />
==== Mentors: ====<br />
[https://github.com/dspinellis Diomidis Spinellis]<br />
<br />
== <br> Epoptes ==<br />
<br />
==== Brief Explanation: ====<br />
Epoptes (Επόπτης - a Greek word for overseer) is an open source computer lab management and monitoring tool. It allows for screen broadcasting <br />
and monitoring, remote command execution, message sending, imposing restrictions like screen locking or sound muting the clients and much more! It can be installed in Ubuntu, Debian and openSUSE based labs that may contain any combination of the following: LTSP servers, thin and fat clients, non LTSP servers, standalone workstations, NX or XDMCP clients etc. <br />
<br />
==== Related GitHub repositories ====<br />
https://www.github.com/Epoptes/epoptes<br />
<br />
==== Expected Results ====<br />
* Use a VNC library instead of relying on external programs like x11vnc and xvnc4viewer.<br />
* Investigate screen sharing on Wayland.<br />
* Reimplement the Epoptes network benchmark tool with python libraries, e.g. twisted.<br />
VNC library Epoptes supports broadcasting the teacher screen and assisting the students by taking control of their screens remotely. To do that, it's using external programs like x11vnc, xvnc4viewer, tightvnc, tigervnc, ssvnc. Most of these programs have maintenance issues and some of them have already been removed from distributions.<br />
On the other hand, there are some VNC libraries available in most distributions. They should be evaluated, and if some of them plans to eventually support Wayland, Epoptes should be rewritten to use that library instead of the external VNC programs.<br />
<br />
Screen sharing on Wayland<br />
Some developers are trying to implement screen sharing on Wayland using modern technologies like WebRC/PipeWire. The current status should be evaluated, and if it appears to be mature, code could be added in Epoptes to support that.<br />
Network benchmark tool<br />
<br />
The current implementation of Epoptes network benchmark tool is externally calling iperf v2, which is rather unstable. Its backend should be rewritten using native python libraries, for example twisted.<br />
Application/evaluation tasks<br />
Students that apply for a GSoC project should implement the following tasks for their initial evaluation: Implement a network benchmark tool in python, that measures the upload/download speed between only two computers in the local network.<br />
<nowiki> </nowiki> Try out and document the software and steps involved for sharing the screen (or a window, whichever is easier) between two users under Wayland, in any distribution. <br />
<br />
==== Knowledge Prerequisites ====<br />
Python<br />
<br />
GTK<br />
<br />
==== Mentors: ====<br />
<br />
== Symplegma ==<br />
<br />
==== Brief Explanation ====<br />
"Symplegma" stands for the combination of appropriate libraries for numerical computing with specialization to computational mechanics and orientation to educational and research purposes. Existing libraries, like "Apache Common Maths" for standard mathematics and statistics components, "FuturEye" a Java based Finite Element Method (FEM) Toolkit, "SymJava" for fast symbolic-numeric computation, among others, are combined with the in-house "Climax" library. "Climax" is a Java implementation of computational mechanics methods, e.g., the Boundary Element Method ("jbem" package) and the Finite Element Method ("jfem" package).<br />
<br />
A simple IDE for manipulation of the above mentioned libraries, and possible extensions, has been developed in Java while it takes advantage of Apache Groovy, a powerful, optionally typed and dynamic language. That platform, under the acronym SDE, standing for Symplegma Development Environment.<br />
<br />
Both educational and research activities are to be considered.<br />
<br />
==== Expected Results ====<br />
<br />
Toolbox development oriented to specific courses of higher education, Graphical User Environment update, extension of ploting capabilities.<br />
<br />
=== Related repositories ===<br />
http://symplegma.org/<br />
https://github.com/symplegma<br />
<br />
==== Knowledge Prerequisites ====<br />
numerical methods, computational mechanics, java, groovy<br />
<br />
==== Mentors: George Manolis (gdm@civil.auth.gr), Christos Panagiotopoulos (pchr76@gmail.com) ====<br />
<br />
<br />
==clio — Software Components and IP Management System ==<br />
<br />
==== Brief Explanation ====<br />
clio is a web-based system to manage data on software components and their relations.<br />
It started out as a GSoC 2018 project.<br />
For the 2019 GSoC, the main goals would be:<br />
- improvement of the UI<br />
- integration of SDPX data<br />
- extension to covering of file info (time permitting)<br />
<br />
==== Expected Results ====<br />
<br />
improvements to clio<br />
<br />
=== Related repositories ===<br />
code at https://github.com/eellak/clio<br />
demo at https://clio.ellak.gr/<br />
<br />
==== Knowledge Prerequisites ====<br />
Python, web front-end<br />
<br />
==== Mentors: [https://github.com/zvr Alexios Zavras], ====<br />
<br />
<br />
==Replacement of LTSP ==<br />
<br />
==== Brief Explanation ====<br />
LTSP (Linux Terminal Service Project) allows diskless workstations to be netbooted from a single server image, with centralized authentication and home directories. But the project shows its age; the initial thin-client focused design is no longer suitable for the netbooted fat client/wayland era, and it contains a lot of stale source code. This GSoC project is about designing and implementing a modern replacement of LTSP.<br />
<br />
==== Expected Results ====<br />
<br />
A modern replacement of LTSP should be implemented, as outlined in http://wiki.ltsp.org/wiki/Dev:GSoC. It should be ready for inclusion in Debian/Ubuntu, for LTSP users to be able to slowly migrate to it.<br />
<br />
=== Related repositories ===<br />
http://www.ltsp.org/<br />
http://wiki.ltsp.org/wiki/Dev:GSoC<br />
<br />
=== <br> Knowledge Prerequisites ===<br />
Netbooting internals, shell, python, git, debian packaging<br />
<br />
==== Mentors: Yannis Siahos , Foteini Tsiami - Unofficial mentor, Debian & LTSP developer: Vagrant Cascadian ====<br />
<br />
== Port Qt Quick Controls Calendar widget to Qt Quick Controls 2 module ==<br />
<br />
==== Brief Explanation ====<br />
Qt is an open source cross platform framework facilitating GUI applications development, for mobile, desktop and embedded devices. Nowadays it is widely used in applications from a variety of industries like automotive or medical. Although the framework is written in C++, it brings with it a meta-language (or modelling language), QML which’s purpose is to be used for creating the visual parts of the application easily and fast, thanks to its flexibility and clarity. To accelerate UI development, QML provides the Qt Quick Controls module with ready made widget types, each supported by a C++ class, like Button or Switch, ready to be styled and modified at our project needs. The module is currently on version 2.4 but there is no support for Calendar in the latest version, to be more specific, the Calendar was lastly provided in version 1.4 of the Qt Quick Controls module that was released with the Qt 5.3 version.<br />
<br />
==== Expected Results ====<br />
The Qt Calendar widget is updated, modified accordingly and ported into Qt 5.12 and Qt Quick Controls 2 current version. Ideally it will be upstreamed to Qt, contributing this way to the Qt ecosystem.<br />
<br />
=== Related repositories ===<br />
https://github.com/extenly/qtqc2_calendar<br />
<br />
=== Knowledge Prerequisites ===<br />
<nowiki>*</nowiki> Qt, QML * C++, JavaScript<br />
<br />
==== Mentors: Alexandra Betouni alexandra.betouni@extenly.com ====<br />
<br />
== Development of a Tool for Extracting Quantitative Text Profiles ==<br />
<br />
==== Brief Explanation ====<br />
Quantitative text analysis is the basis of nearly every computational approach to text management and processing. All advanced Natural<br />
Language Processing (NLP) tasks including information retrieval, sentiment analysis, computational stylistics etc. involve the quantification of texts across a huge number of linguistic features and transform text into vectors. In many programming languages, e.g. R, Python, Java etc., there are numerous open source scripts, tools, packages and libraries that can transform texts to vectors of word frequencies, character and word<br />
n-gram frequencies, stylometric features etc. However, each of these tools covers only a restricted subset of the possible linguistic features.<br />
<br />
Moreover, the available tools are written in different languages and require considerable efforts to be combined so that the user can extract a unified file of results. Due to the fragmentary nature of the programing environments and the highly technical skills that are<br />
required to operate the tools and combine their results, they can’t be used by large communities of scientists with humanities and sociopolitical background. <br />
<br />
For the above<br />
reasons, we envisage the development of a user-friendly Graphical User Interface (GUI) based tool that shall provide integrated access<br />
to existing open NLP software. The new tool shall support the<br />
quantitative analysis of multilingual texts and produce quantitativetext profiles that can be used as input for further analysis,<br />
visualization, machine learning and other advanced computational<br />
processing. Such a tool does not exist to date and it will boost<br />
research in all scientific areas that require computational processing of large amounts of text.<br />
<br />
==== Expected Results ====<br />
The outcome of this project would be an open-source software with the following specifications:<br />
* User-friendly GUI that can guide intuitively its users to select the features they want to count in their text collections.<br />
* Large set of linguistic features that include at least:<br />
<br />
** Most frequent words of the texts analyzed<br />
** User-specified word lists<br />
** Word and Character n-grams of arbitrary length<br />
** Different stylometric features such as vocabulary diversity indices, readability indices, quantitative linguistic indices. <br />
* UTF-8 support<br />
* Corpus management features using text metadata<br />
<br />
=== Related repositories ===<br />
https://github.com/gmikros/Author_Multilevel_Ngram_Profiles<br />
<br />
https://github.com/quanteda/quanteda<br />
<br />
https://github.com/unDocUMeantIt/koRpus<br />
<br />
https://miroslavkubat.webnode.cz/software/<br />
<br />
https://github.com/bnosac/udpipe<br />
<br />
https://github.com/explosion/spaCy<br />
<br />
=== Knowledge Prerequisites ===<br />
Good knowledge of the languages R, Java, Python and skills for GUI<br />
interfaces development. Good understanding of NLP concepts and tools.<br />
<br />
==== Mentors: ====<br />
* <span lang="de-DE">[https://github.com/gmikros George Mikros] </span> <br />
* [https://github.com/fitsilisf Fotis Fitsilis]<br />
<br />
<nowiki> </nowiki> * [https://github.com/sleventis Sotiris Leventis] <br />
<br />
[https://github.com/mfitsilis Michael Fitsilis ] <br />
<br />
== <span lang="en-US">OpenProject Work-Package #1 to support modeling of the PM<sup>2 </sup>methodology for project management</span> ==<br />
<br />
==== <span lang="en-US">Brief Explanation:</span> ====<br />
<span lang="en-US">PM²<br />
is a Project Management Methodology developed by the European<br />
Commission. PM² is built on Project Management best practices and is<br />
supported by the following four (4) pillars: </span><br />
<br />
# <span lang="en-US">a project governance model(Roles & Responsibilities) </span> <br />
# <span lang="en-US">a project lifecycle (Project Phases) </span> <br />
# <span lang="en-US">a set of processes (Project Management activities) </span> <br />
# <span lang="en-US">a set of project artifacts (templates and guidelines). </span> <br />
<br />
<span lang="en-US">For<br />
a full support of PM² Project Management Methodology by OpenProject,<br />
new modules should be developed on OpenProject that will allow<br />
modeling of the abovementioned four pillars of PM².</span><br />
<br />
==== <span lang="en-US">Expected Results:</span> ====<br />
<span lang="en-US">Support<br />
for the process of PM² itself in OpenProject: That is, development<br />
of Open Project plug-ins which should add support for defining and<br />
handling the roles, responsibilities, phases and activities (in terms<br />
of PM² governance, life-cycle and processes pillars) for every new<br />
project. </span><br />
<br />
<span lang="en-US">The<br />
work of this Work-Package includes:</span><br />
* <span lang="en-US">the analysis of PM2 requirements </span> <br />
* <span lang="en-US">the setup of OpenProject development environment (Development VM)</span><br />
* <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> <br />
<br />
** <span lang="en-US">Support the PM² Governance Model (Roles, Responsibilities) </span> <br />
** <span lang="en-US">Support the PM² Phases </span> <br />
** <span lang="en-US">Support the PM² Artifacts per Phase</span><br />
** <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> <br />
* <span lang="en-US">The development of tests for all the requirements (e.g. initiate PM² project, initiate phases, add artifacts, generate reports).</span><br />
<br />
==== <span lang="en-US">'''Related GitHub repositories'''</span> ====<br />
<span lang="en-US">https://github.com/opf/openproject<br />
</span><br />
<br />
==== <span lang="en-US">https://ec.europa.eu/isa2/solutions/open-pm2_en\ </span> ====<br />
<br />
==== '''Knowledge Prerequisites''' ====<br />
* <span lang="en-US">R</span>uby<br />
<br />
* <span lang="en-US">Ruby on Rails</span><br />
<br />
* <span lang="en-US">Postgres </span><br />
<br />
* <span lang="en-US">Problem Analysis & Modeling </span><br />
<br />
==== Mentors ====<br />
<br />
== <span lang="en-US">OpenProject Work-Package #2 to support functionality of the PM<sup>2 </sup>methodology for project management</span> ==<br />
<br />
==== <span lang="en-US">Brief Explanation:</span> ====<br />
<span lang="en-US">This<br />
work-package is based on and extends OpenProject Work-Package #1<br />
(Support modeling of the PM2 methodology for project management) by<br />
adding visual elements that will support for PM²project artifacts<br />
through templates, wizards, tools and guidelines.</span><br />
<br />
<span lang="en-US">'''Expected<br />
Results:'''</span><br />
<br />
<span lang="en-US">Integrate<br />
the outputs of Work-Package #1 in OpenProject UI. For this, developed<br />
plug-ins from Work_Package #1 will be extended and new plug-ins will<br />
be developed in order to provide a rich User interface for the user.<br />
The plug-ins should follow the Open Project plug-in guidelines and be<br />
consistent with the OpenProject API<br />
(http://docs.openproject.org/apiv3-doc/)<br />
.</span><br />
<br />
<span lang="en-US">The<br />
developed functionality should: </span><br />
<br />
* <span lang="en-US">Provide wizards allowing the PM² user to:</span><br />
<br />
** <span lang="en-US">create and initiate PM² based project Templates</span><br />
** <span lang="en-US">Initiate Project phases </span> <br />
** <span lang="en-US">add PM² artifacts per phase</span><br />
** <span lang="en-US">create reporting templates with visual content like Gantt and Pert charts </span> <br />
** <span lang="en-US">add PM² artifacts with textual content like Risk Logs.</span> <br />
* <span lang="en-US">Support all PM<sup>2 </sup>plans and logs such as Change Log, Communications, Issue, Project ,Quality , Requirements, Risk </span> <br />
* <span lang="en-US">Provide tools such as</span><br />
<br />
** <span lang="en-US">3-point estimation with triangular and/or beta distribution</span><br />
** <span lang="en-US">Critical Path Method (CPM)</span><br />
** <span lang="en-US">Monte-Carlo analysis/technique</span><br />
** <span lang="en-US">Network Diagram (FS, SS, FF)</span><br />
** <span lang="en-US">Work Breakdown Structure (WBS)</span> <br />
* <span lang="en-US">Support Agile Specific Artifacts and Tools, e.g. Iterations, Kanboards etc.</span><br />
* <span lang="en-US">Support visual representation of PM² using standards like BPMN, STRATML, RDF etc</span><br />
* <span lang="en-US">Allow connection with external systems (e.g. Open ID, Media-Wiki)</span><br />
* <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><br />
<br />
==== <span lang="en-US">'''Related GitHub repositories'''</span> ====<br />
<span lang="en-US">https://github.com/opf/openproject<br />
</span><br />
<br />
<span lang="en-US">https://ec.europa.eu/isa2/solutions/open-pm2_en</span><br />
<br />
==== '''Knowledge Prerequisites''' ====<br />
*Ruby<br />
<br />
* Ruby on Rails<br />
<br />
* Angular<br />
<br />
* <span lang="en-US">ES6</span><br />
<nowiki>*</nowiki> <br />
<br />
<span lang="en-US">statistical modeling methods for PM (Monte carlo , CPM etc)</span><br />
<br />
==== Mentors ====<br />
<br />
==Real time Django monitoring and profiling ==<br />
<br />
==== Brief Explanation ====<br />
Modern Django web applications expose a plethora of URLs and API endpoints that are consumed by a number of clients (web browsers, API clients, Django management commands) under different authorization and authentication credentials. It is not always feasible or easy to replicate the action that resulted in a system crash, a 500 error or a heavily delayed response but it is necessary to trace such incidents to facilitate debuggind and fixing of errors. There's also the obvious fact of monitoring the application availability and uptime and get alerted in case of mulfunctions. While there are great tools as Django Debug Toolbar and Silk that provide insights and application profiling for debugging issues, there's a lack of an open source solution that unifies real time monitoring and application profiling for both the application and database layers. This need is usually covered by either inhouse solutions, or by expensive proprietary Software as a Service solutions for those that can afford it.<br />
<br />
As part of this project we suggest that a unified solution is developed, either as an extension to an existing open source tool (as Django silk) or by leveraging tools as ElasticSearch/Kibana. The system should be able to monitor and log all sort of requests, along with error stacktraces and related information and present on a web dashboard with grouping capabilities (eg similar endpoints) and statistics about slow requests. Given the fact that the tool should run in production, there are some architectural notes to take care, for example perform database saves not in real time but rather offloaded by a system as Celery, or sent to a separate database (eg ElasticSearch). <br />
<br />
This is an opportunity to provide a really beneficial tool for the Django community.<br />
<br />
==== Expected Results ====<br />
<br />
An overview of similar solutions (mainly open source but also commercial offerings).<br />
A web dashboard exposing information about mulfunctions and providing real time monitoring for Django applications.<br />
<br />
=== Related repositories ===<br />
https://github.com/django/django<br />
https://github.com/jazzband/django-debug-toolbar<br />
https://github.com/jazzband/django-silk<br />
<br />
==== Knowledge Prerequisites ====<br />
Django, Celery, Django-debug-toolbar, optionally ElasticSearch/Kibana, Postgresql<br />
<br />
==== Mentors: [https://github.com/mgogoulos Markos Gogoulos], [https://github.com/mpetyx Michael Petychakis], [https://twitter.com/siaterliskonsta Kostas Siaterlis] ====<br />
<br />
[[Κατηγορία:GSOC2019]]</div>Mgogouloshttps://ellak.gr/wiki/index.php?title=Google_Summer_of_Code_2019_proposed_ideas&diff=1526Google Summer of Code 2019 proposed ideas2019-01-30T17:37:41Z<p>Mgogoulos: Django monitoring+profiling proposal added</p>
<hr />
<div>'''GFOSS project proposals for GSOC 2019'''<br />
<br />
Students interested to participate should check which of the following projects fits their interests and skills. For practical information for students [https://ellak.gr/wiki/index.php?title=Practical_information_for_students visit this '''page''']. For additional information, please subscribe to this '''[https://lists.ellak.gr/gsoc-developers/listinfo.html lis]t''' and post your questions. The full list archives are available '''here'''.<br />
<br />
[https://ellak.gr/wiki/index.php?title=Google_Summer_of_Code_2017_Accepted_projects The GSOC Projects implemented in 2017] <br />
<br />
[https://ellak.gr/wiki/index.php?title=Google_Summer_of_Code_2018_Accepted_projects The GSOC Projects implemented in 2018]<br />
<br />
== Upgrade UMLGraph with JAva's new doclet API ==<br />
<br />
==== Brief Explanation ====<br />
UMLGraph allows the declarative specification and drawing of UML class and sequence diagrams. One specifies a class diagram using the Java syntax complemented by javadoc tags. Running the UmlGraph doclet on the specification will generate a Graphviz diagram specification that can be automatically processed to create Postscript, PNG, SVG, JPEG, fig, or Framemaker drawings. The objective of the proposed project is to upgrade the UMLGraph code so that it uses the jdk.javadoc.doclet Doclet API rather than the currently used older package com.sun.javadoc. This new API provides an environment which, in conjunction with the Language Model API and Compiler Tree API, allows clients to inspect the source-level structures of programs and libraries, including API comments embedded in the source. Details on the mapping of old types to new types can be found in the Migration Guide https://docs.oracle.com/javase/9/docs/api/jdk/javadoc/doclet/package-summary.html#migration. In addition the project will also add support for Java features such as Lambdas and Generics, unit tests, and update the corresponding integration tests.<br />
<br />
==== Expected Results ====<br />
It is expected that the project will deliver a well-tested version of UMLGraph built around the new jdk.javadoc.doclet Doclet API with support for Java features such as Lambdas and Generics.<br />
<br />
==== Related Repositories ====<br />
https://github.com/dspinellis/UMLGraph<br />
<br />
==== Knowledge Prerequisites ====<br />
Java, UML<br />
<br />
==== Mentors: ====<br />
[https://github.com/dspinellis Diomidis Spinellis]<br />
<br />
== 3gm ==<br />
<br />
==== Brief Explanation ====<br />
Government Gazette text mining, cross-linking, and codification Project (or 3gm for short) uses Natural Language Processing Methods and Practices on Greek Legislation. It is primarily aimed at providing with the most recent versions of each law, i.e. an automated codex via NLP methods and practices.<br />
<br />
The scope of this GSoC project aims to expand the capabilities of the existing project by implementing NLP extensions (NER, Dep Parser etc.) described here: https://github.com/eellak/gsoc2018-3gm/issues in order to asses codification procedures. <br />
<br />
==== Expected Results ====<br />
The aim of this GSoC project is to extend 3gm's current capabilities by incorporating more features like the development of a customized language model for dependency parsing, NER Extraction, etc. in order to furtherly asses codification procedures<br />
<br />
==== Related Repositories ====<br />
https://github.com/eellak/gsoc2018-3gm/tree/master/3gm and http://3gm.ellak.gr/<br />
<br />
==== Knowledge Prerequisites ====<br />
Experience in Machine Learning, Knowledge of Python, Basic DevOps and Web Development Skills<br />
<br />
==== Mentors: ====<br />
[https://github.com/dspinellis Diomidis Spinellis] [[Marios Papachristou]]<br />
<br />
== Development of a DIY robot kit for educators ==<br />
<br />
==== Brief Explanation ====<br />
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.<br />
<br />
The kit that will be developed and opened must comprise 3D-designs for all the necessary parts of a modular robot that can be printed and assembled following the assemble guidelines. The target audience of the project can be educators (e.g. high school ICT teachers), with minimum expertise in robotics, electronics, and programming. So the print and assembly guidelines must be detailed and simple. In addition, the project must have a modular structure that allows educators to guide their students to the step-by-step development of the robot and to the implementation of simple navigation or sensing scenaria, that require basic programming skills.<br />
<br />
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).<br />
<br />
Detailed assembly instructions, images and videos from the assembly process are desirable. <br />
<br />
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. <br />
<br />
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. <br />
<br />
Some sample control scripts and robot programming scenarios will also be developed.<br />
<br />
==== Expected Results ====<br />
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.<br />
<br />
==== Related Repositories ====<br />
https://hackaday.io/project/26007-versatile-educational-2wd-robot<br />
<br />
==== Knowledge Prerequisites ====<br />
Electronics, Robotics, Programming.<br />
<br />
==== Mentors: ====<br />
Iraklis Varlamis, Theodoros Karounos<br />
<br />
== Addition of Greek glyphs in Open Source Fonts ==<br />
<br />
==== Brief Explanation ====<br />
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.<br />
<br />
The aim of this project is to imporve this situation and add the missing glyphs in the correct Unicode codepoints. The exact set of fonts to be completed will be determined in discussions between the student and the mentor(s).<br />
<br />
'''This is not a typical programming project. '''If you have never designed fonts before, it is probably not for you.<br />
<br />
==== Expected Results ====<br />
Full support for Greek text in a number of Open Source fonts.<br />
<br />
==== Knowledge Prerequisites ====<br />
Type design, font technologies. Please note that this is a special project, where coding, in the traditional sense, will not be enough.<br />
<br />
==== Mentors: [https://github.com/zvr Alexios Zavras], [https://github.com/irenevl Irene Vlachou] [https://github.com/thynem Εmilios Τheofanous] ====<br />
<br />
== Development of a Thesis Management System (TMS) ==<br />
<br />
==== Brief Explanation ====<br />
The lifecycle of the final project Thesis takes a large amount of administrative work from the initiation phase of project assignment till the last stage of publishing the Thesis to the University's library catalog. The main entities in this lifecycle are students, teachers, externals (e.g. companies or academics that cooperates with the university) and of course the Thesis subject.<br />
<br />
The cycle begins with professors announcing subjects, which can be their own subjects or subjects that have been suggested by externals or even the students who have contacted professors beforhand. <br />
<br />
It continuous with students applying for subjects, from the list of available subjects and professors doing the final assignment.<br />
<br />
When a student did not manage to get a subject for which he/she applied, the system raises a flag to the student advisor, who contacts the student and professors in order to find a subject.<br />
<br />
Thesis subjects must fall under one or more topics, from a list that the department sets and the topic information along with the title, a description and a list of references is stored with each subject.<br />
<br />
When the profesor finally decides on the student(s) that will carry out a project, he/she has to propose two more professors from the department or externals that will co-supervise the project.<br />
<br />
When all the assignments have been fixed by the administrator of the TMS, they can be exported in a document which can be published on the department web site.<br />
<br />
When the student completes the thesis he/she submits a draft to the TMS and automatically notifies the supervisor to provide feedback. This is repeated until the supervisor agrees that this is the thesis to be shared with the other two co-supervisors.<br />
<br />
In the final step the supervisors comment on the thesis and the final document is submitted to the system.<br />
<br />
The TMS must provide reports on the undergoing and completed thesis, must alert on delayed thesis and provide related statistics.<br />
<br />
==== Expected Results ====<br />
In the three months of the project it is expected to have the whole functionality required to support the TMS lifecycle.<br />
<br />
==== Related Repositories ====<br />
https://github.com/redhatcz/Thesis-management-system <br />
<br />
==== Knowledge Prerequisites ====<br />
Programming Skills<br />
<br />
==== Mentors: ====<br />
Iraklis Varlamis, Theodoros Karounos<br />
<br />
== makeblock support in Greek ==<br />
<br />
=== Brief Explanation ===<br />
Mblock, https://ide.makeblock.com/, is one of the best tools for Programming Software Designed for STEAM Education, supporting the Arduino (among other hardware).<br />
<br />
We want to support the Greek Language on mblock version 5 for all platforms it is available, as this will enable Greek children to use it on their native language.<br />
<br />
==== Expected Results ====<br />
The addition of the Greek Language on mblock version 5<br />
<br />
==== Related Repositories ====<br />
http://www.mblock.cc/<br />
<br />
==== Knowledge Prerequisites ====<br />
programming in general<br />
<br />
==== Mentors: ====<br />
Sarantos Kapidakis<br />
<br />
== Round-trip integration between GitHub/GitLab issues and git-issue ==<br />
<br />
==== Brief Explanation ====<br />
Git-issue is a minimalist decentralized issue management system based on Git. It has the following advantages over other systems.<br />
<br />
No backend, no dependencies: You can install and use git issue with a single shell script. There's no need for a server or a database back-end, and the corresponding problems and requirements for their administration.<br />
<br />
Decentralized asynchronous management: Anyone can add, comment, and edit issues without requiring online access to a centralized server. There's no need for online connectivity; you can pull and push issues when you're online.<br />
<br />
Transparent text file format: Issues are stored as simple text files, which you can view, edit, share, and backup with any tool you like. There's no risk of loosing access to your issues because a server has failed.<br />
<br />
Git-based: Issues are changed and shared through Git. This provides git issue with a robust, efficient, portable, and widely available infrastructure. It allows you to reuse your Git credentials and infrastructure, allows the efficient merging of work, and also provides a solid audit trail regarding any changes. You can even use Git and command-line tools directly to make sophisticated changes to your issue database.<br />
<br />
Git-issue can currently import issues using the GitHub API. The project's objective is to extend this functionality with a way to synchronize between GitHub/GitLab issues and the issues kept under git-issue.<br />
<br />
==== Expected Results ====<br />
Git-issue extended for exporting its issues to GitHub/GitLab<br />
<br />
==== Related Repositories ====<br />
https://github.com/dspinellis/git-issue<br />
<br />
==== Knowledge Prerequisites ====<br />
Unix shell scripting<br />
<br />
==== Mentors: ====<br />
[https://github.com/dspinellis Diomidis Spinellis]<br />
<br />
== <br> Epoptes ==<br />
<br />
==== Brief Explanation: ====<br />
Epoptes (Επόπτης - a Greek word for overseer) is an open source computer lab management and monitoring tool. It allows for screen broadcasting <br />
and monitoring, remote command execution, message sending, imposing restrictions like screen locking or sound muting the clients and much more! It can be installed in Ubuntu, Debian and openSUSE based labs that may contain any combination of the following: LTSP servers, thin and fat clients, non LTSP servers, standalone workstations, NX or XDMCP clients etc. <br />
<br />
==== Related GitHub repositories ====<br />
https://www.github.com/Epoptes/epoptes<br />
<br />
==== Expected Results ====<br />
* Use a VNC library instead of relying on external programs like x11vnc and xvnc4viewer.<br />
* Investigate screen sharing on Wayland.<br />
* Reimplement the Epoptes network benchmark tool with python libraries, e.g. twisted.<br />
VNC library Epoptes supports broadcasting the teacher screen and assisting the students by taking control of their screens remotely. To do that, it's using external programs like x11vnc, xvnc4viewer, tightvnc, tigervnc, ssvnc. Most of these programs have maintenance issues and some of them have already been removed from distributions.<br />
On the other hand, there are some VNC libraries available in most distributions. They should be evaluated, and if some of them plans to eventually support Wayland, Epoptes should be rewritten to use that library instead of the external VNC programs.<br />
<br />
Screen sharing on Wayland<br />
Some developers are trying to implement screen sharing on Wayland using modern technologies like WebRC/PipeWire. The current status should be evaluated, and if it appears to be mature, code could be added in Epoptes to support that.<br />
Network benchmark tool<br />
<br />
The current implementation of Epoptes network benchmark tool is externally calling iperf v2, which is rather unstable. Its backend should be rewritten using native python libraries, for example twisted.<br />
Application/evaluation tasks<br />
Students that apply for a GSoC project should implement the following tasks for their initial evaluation: Implement a network benchmark tool in python, that measures the upload/download speed between only two computers in the local network.<br />
<nowiki> </nowiki> Try out and document the software and steps involved for sharing the screen (or a window, whichever is easier) between two users under Wayland, in any distribution. <br />
<br />
==== Knowledge Prerequisites ====<br />
Python<br />
<br />
GTK<br />
<br />
==== Mentors: ====<br />
<br />
== Symplegma ==<br />
<br />
==== Brief Explanation ====<br />
"Symplegma" stands for the combination of appropriate libraries for numerical computing with specialization to computational mechanics and orientation to educational and research purposes. Existing libraries, like "Apache Common Maths" for standard mathematics and statistics components, "FuturEye" a Java based Finite Element Method (FEM) Toolkit, "SymJava" for fast symbolic-numeric computation, among others, are combined with the in-house "Climax" library. "Climax" is a Java implementation of computational mechanics methods, e.g., the Boundary Element Method ("jbem" package) and the Finite Element Method ("jfem" package).<br />
<br />
A simple IDE for manipulation of the above mentioned libraries, and possible extensions, has been developed in Java while it takes advantage of Apache Groovy, a powerful, optionally typed and dynamic language. That platform, under the acronym SDE, standing for Symplegma Development Environment.<br />
<br />
Both educational and research activities are to be considered.<br />
<br />
==== Expected Results ====<br />
<br />
Toolbox development oriented to specific courses of higher education, Graphical User Environment update, extension of ploting capabilities.<br />
<br />
=== Related repositories ===<br />
http://symplegma.org/<br />
https://github.com/symplegma<br />
<br />
==== Knowledge Prerequisites ====<br />
numerical methods, computational mechanics, java, groovy<br />
<br />
==== Mentors: George Manolis (gdm@civil.auth.gr), Christos Panagiotopoulos (pchr76@gmail.com) ====<br />
<br />
<br />
==clio — Software Components and IP Management System ==<br />
<br />
==== Brief Explanation ====<br />
clio is a web-based system to manage data on software components and their relations.<br />
It started out as a GSoC 2018 project.<br />
For the 2019 GSoC, the main goals would be:<br />
- improvement of the UI<br />
- integration of SDPX data<br />
- extension to covering of file info (time permitting)<br />
<br />
==== Expected Results ====<br />
<br />
improvements to clio<br />
<br />
=== Related repositories ===<br />
code at https://github.com/eellak/clio<br />
demo at https://clio.ellak.gr/<br />
<br />
==== Knowledge Prerequisites ====<br />
Python, web front-end<br />
<br />
==== Mentors: [https://github.com/zvr Alexios Zavras], ====<br />
<br />
<br />
==Replacement of LTSP ==<br />
<br />
==== Brief Explanation ====<br />
LTSP (Linux Terminal Service Project) allows diskless workstations to be netbooted from a single server image, with centralized authentication and home directories. But the project shows its age; the initial thin-client focused design is no longer suitable for the netbooted fat client/wayland era, and it contains a lot of stale source code. This GSoC project is about designing and implementing a modern replacement of LTSP.<br />
<br />
==== Expected Results ====<br />
<br />
A modern replacement of LTSP should be implemented, as outlined in http://wiki.ltsp.org/wiki/Dev:GSoC. It should be ready for inclusion in Debian/Ubuntu, for LTSP users to be able to slowly migrate to it.<br />
<br />
=== Related repositories ===<br />
http://www.ltsp.org/<br />
http://wiki.ltsp.org/wiki/Dev:GSoC<br />
<br />
=== <br> Knowledge Prerequisites ===<br />
Netbooting internals, shell, python, git, debian packaging<br />
<br />
==== Mentors: Yannis Siahos , Foteini Tsiami - Unofficial mentor, Debian & LTSP developer: Vagrant Cascadian ====<br />
<br />
== Port Qt Quick Controls Calendar widget to Qt Quick Controls 2 module ==<br />
<br />
==== Brief Explanation ====<br />
Qt is an open source cross platform framework facilitating GUI applications development, for mobile, desktop and embedded devices. Nowadays it is widely used in applications from a variety of industries like automotive or medical. Although the framework is written in C++, it brings with it a meta-language (or modelling language), QML which’s purpose is to be used for creating the visual parts of the application easily and fast, thanks to its flexibility and clarity. To accelerate UI development, QML provides the Qt Quick Controls module with ready made widget types, each supported by a C++ class, like Button or Switch, ready to be styled and modified at our project needs. The module is currently on version 2.4 but there is no support for Calendar in the latest version, to be more specific, the Calendar was lastly provided in version 1.4 of the Qt Quick Controls module that was released with the Qt 5.3 version.<br />
<br />
==== Expected Results ====<br />
The Qt Calendar widget is updated, modified accordingly and ported into Qt 5.12 and Qt Quick Controls 2 current version. Ideally it will be upstreamed to Qt, contributing this way to the Qt ecosystem.<br />
<br />
=== Related repositories ===<br />
https://github.com/extenly/qtqc2_calendar<br />
<br />
=== Knowledge Prerequisites ===<br />
<nowiki>*</nowiki> Qt, QML * C++, JavaScript<br />
<br />
==== Mentors: Alexandra Betouni alexandra.betouni@extenly.com ====<br />
<br />
== Development of a Tool for Extracting Quantitative Text Profiles ==<br />
<br />
==== Brief Explanation ====<br />
Quantitative text analysis is the basis of nearly every computational approach to text management and processing. All advanced Natural<br />
Language Processing (NLP) tasks including information retrieval, sentiment analysis, computational stylistics etc. involve the quantification of texts across a huge number of linguistic features and transform text into vectors. In many programming languages, e.g. R, Python, Java etc., there are numerous open source scripts, tools, packages and libraries that can transform texts to vectors of word frequencies, character and word<br />
n-gram frequencies, stylometric features etc. However, each of these tools covers only a restricted subset of the possible linguistic features.<br />
<br />
Moreover, the available tools are written in different languages and require considerable efforts to be combined so that the user can extract a unified file of results. Due to the fragmentary nature of the programing environments and the highly technical skills that are<br />
required to operate the tools and combine their results, they can’t be used by large communities of scientists with humanities and sociopolitical background. <br />
<br />
For the above<br />
reasons, we envisage the development of a user-friendly Graphical User Interface (GUI) based tool that shall provide integrated access<br />
to existing open NLP software. The new tool shall support the<br />
quantitative analysis of multilingual texts and produce quantitativetext profiles that can be used as input for further analysis,<br />
visualization, machine learning and other advanced computational<br />
processing. Such a tool does not exist to date and it will boost<br />
research in all scientific areas that require computational processing of large amounts of text.<br />
<br />
==== Expected Results ====<br />
The outcome of this project would be an open-source software with the following specifications:<br />
* User-friendly GUI that can guide intuitively its users to select the features they want to count in their text collections.<br />
* Large set of linguistic features that include at least:<br />
<br />
** Most frequent words of the texts analyzed<br />
** User-specified word lists<br />
** Word and Character n-grams of arbitrary length<br />
** Different stylometric features such as vocabulary diversity indices, readability indices, quantitative linguistic indices. <br />
* UTF-8 support<br />
* Corpus management features using text metadata<br />
<br />
=== Related repositories ===<br />
https://github.com/gmikros/Author_Multilevel_Ngram_Profiles<br />
<br />
https://github.com/quanteda/quanteda<br />
<br />
https://github.com/unDocUMeantIt/koRpus<br />
<br />
https://miroslavkubat.webnode.cz/software/<br />
<br />
https://github.com/bnosac/udpipe<br />
<br />
https://github.com/explosion/spaCy<br />
<br />
=== Knowledge Prerequisites ===<br />
Good knowledge of the languages R, Java, Python and skills for GUI<br />
interfaces development. Good understanding of NLP concepts and tools.<br />
<br />
==== Mentors: ====<br />
* <span lang="de-DE">[https://github.com/gmikros George Mikros] </span> <br />
* [https://github.com/fitsilisf Fotis Fitsilis]<br />
<br />
<nowiki> </nowiki> * [https://github.com/sleventis Sotiris Leventis] <br />
<br />
[https://github.com/mfitsilis Michael Fitsilis ] <br />
<br />
== <span lang="en-US">OpenProject Work-Package #1 to support modeling of the PM<sup>2 </sup>methodology for project management</span> ==<br />
<br />
==== <span lang="en-US">Brief Explanation:</span> ====<br />
<span lang="en-US">PM²<br />
is a Project Management Methodology developed by the European<br />
Commission. PM² is built on Project Management best practices and is<br />
supported by the following four (4) pillars: </span><br />
<br />
# <span lang="en-US">a project governance model(Roles & Responsibilities) </span> <br />
# <span lang="en-US">a project lifecycle (Project Phases) </span> <br />
# <span lang="en-US">a set of processes (Project Management activities) </span> <br />
# <span lang="en-US">a set of project artifacts (templates and guidelines). </span> <br />
<br />
<span lang="en-US">For<br />
a full support of PM² Project Management Methodology by OpenProject,<br />
new modules should be developed on OpenProject that will allow<br />
modeling of the abovementioned four pillars of PM².</span><br />
<br />
==== <span lang="en-US">Expected Results:</span> ====<br />
<span lang="en-US">Support<br />
for the process of PM² itself in OpenProject: That is, development<br />
of Open Project plug-ins which should add support for defining and<br />
handling the roles, responsibilities, phases and activities (in terms<br />
of PM² governance, life-cycle and processes pillars) for every new<br />
project. </span><br />
<br />
<span lang="en-US">The<br />
work of this Work-Package includes:</span><br />
* <span lang="en-US">the analysis of PM2 requirements </span> <br />
* <span lang="en-US">the setup of OpenProject development environment (Development VM)</span><br />
* <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> <br />
<br />
** <span lang="en-US">Support the PM² Governance Model (Roles, Responsibilities) </span> <br />
** <span lang="en-US">Support the PM² Phases </span> <br />
** <span lang="en-US">Support the PM² Artifacts per Phase</span><br />
** <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> <br />
* <span lang="en-US">The development of tests for all the requirements (e.g. initiate PM² project, initiate phases, add artifacts, generate reports).</span><br />
<br />
==== <span lang="en-US">'''Related GitHub repositories'''</span> ====<br />
<span lang="en-US">https://github.com/opf/openproject<br />
</span><br />
<br />
==== <span lang="en-US">https://ec.europa.eu/isa2/solutions/open-pm2_en\ </span> ====<br />
<br />
==== '''Knowledge Prerequisites''' ====<br />
* <span lang="en-US">R</span>uby<br />
<br />
* <span lang="en-US">Ruby on Rails</span><br />
<br />
* <span lang="en-US">Postgres </span><br />
<br />
* <span lang="en-US">Problem Analysis & Modeling </span><br />
<br />
==== Mentors ====<br />
<br />
== <span lang="en-US">OpenProject Work-Package #2 to support functionality of the PM<sup>2 </sup>methodology for project management</span> ==<br />
<br />
==== <span lang="en-US">Brief Explanation:</span> ====<br />
<span lang="en-US">This<br />
work-package is based on and extends OpenProject Work-Package #1<br />
(Support modeling of the PM2 methodology for project management) by<br />
adding visual elements that will support for PM²project artifacts<br />
through templates, wizards, tools and guidelines.</span><br />
<br />
<span lang="en-US">'''Expected<br />
Results:'''</span><br />
<br />
<span lang="en-US">Integrate<br />
the outputs of Work-Package #1 in OpenProject UI. For this, developed<br />
plug-ins from Work_Package #1 will be extended and new plug-ins will<br />
be developed in order to provide a rich User interface for the user.<br />
The plug-ins should follow the Open Project plug-in guidelines and be<br />
consistent with the OpenProject API<br />
(http://docs.openproject.org/apiv3-doc/)<br />
.</span><br />
<br />
<span lang="en-US">The<br />
developed functionality should: </span><br />
<br />
* <span lang="en-US">Provide wizards allowing the PM² user to:</span><br />
<br />
** <span lang="en-US">create and initiate PM² based project Templates</span><br />
** <span lang="en-US">Initiate Project phases </span> <br />
** <span lang="en-US">add PM² artifacts per phase</span><br />
** <span lang="en-US">create reporting templates with visual content like Gantt and Pert charts </span> <br />
** <span lang="en-US">add PM² artifacts with textual content like Risk Logs.</span> <br />
* <span lang="en-US">Support all PM<sup>2 </sup>plans and logs such as Change Log, Communications, Issue, Project ,Quality , Requirements, Risk </span> <br />
* <span lang="en-US">Provide tools such as</span><br />
<br />
** <span lang="en-US">3-point estimation with triangular and/or beta distribution</span><br />
** <span lang="en-US">Critical Path Method (CPM)</span><br />
** <span lang="en-US">Monte-Carlo analysis/technique</span><br />
** <span lang="en-US">Network Diagram (FS, SS, FF)</span><br />
** <span lang="en-US">Work Breakdown Structure (WBS)</span> <br />
* <span lang="en-US">Support Agile Specific Artifacts and Tools, e.g. Iterations, Kanboards etc.</span><br />
* <span lang="en-US">Support visual representation of PM² using standards like BPMN, STRATML, RDF etc</span><br />
* <span lang="en-US">Allow connection with external systems (e.g. Open ID, Media-Wiki)</span><br />
* <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><br />
<br />
==== <span lang="en-US">'''Related GitHub repositories'''</span> ====<br />
<span lang="en-US">https://github.com/opf/openproject<br />
</span><br />
<br />
<span lang="en-US">https://ec.europa.eu/isa2/solutions/open-pm2_en</span><br />
<br />
==== '''Knowledge Prerequisites''' ====<br />
*Ruby<br />
<br />
* Ruby on Rails<br />
<br />
* Angular<br />
<br />
* <span lang="en-US">ES6</span><br />
<nowiki>*</nowiki> <br />
<br />
<span lang="en-US">statistical modeling methods for PM (Monte carlo , CPM etc)</span><br />
<br />
==== Mentors ====<br />
<br />
==Real time Django monitoring and profiling ==<br />
<br />
==== Brief Explanation ====<br />
Modern Django web applications expose a plethora of URLs and API endpoints that are consumed by a number of clients (web browsers, API clients, Django management commands) under different authorization and authentication credentials. It is not always feasible or easy to replicate the action that resulted in a system crash, a 500 error or a heavily delayed response but it is necessary to trace such incidents to facilitate debuggind and fixing of errors. There's also the obvious fact of monitoring the application availability and uptime and get alerted in case of mulfunctions. While there are great tools as Django Debug Toolbar and Silk that provide insights and application profiling for debugging issues, there's a lack of an open source solution that unifies real time monitoring and application profiling for both the application and database layers. This need is usually covered by either inhouse solutions, or by expensive proprietary Software as a Service solutions for those that can afford it.<br />
<br />
As part of this project we suggest that a unified solution is developed, either as an extension to an existing open source tool (as Django silk) or by leveraging tools as ElasticSearch/Kibana. The system should be able to monitor and log all sort of requests, along with error stacktraces and related information and present on a web dashboard with grouping capabilities (eg similar endpoints) and statistics about slow requests. Given the fact that the tool should run in production, there are some architectural notes to take care, for example perform database saves not in real time but rather offloaded by a system as Celery, or sent to a separate database (eg ElasticSearch). <br />
<br />
This is an opportunity to provide a really beneficial tool for the Django community.<br />
<br />
==== Expected Results ====<br />
<br />
An overview of similar solutions (mainly open source but also commercial offerings).<br />
A web dashboard exposing information about mulfunctions and providing real time monitoring for Django applications.<br />
<br />
=== Related repositories ===<br />
https://github.com/django/django<br />
https://github.com/jazzband/django-debug-toolbar<br />
https://github.com/jazzband/django-silk<br />
<br />
=== Knowledge Prerequisites ===<br />
Django, Celery, Django-debug-toolbar, optionally ElasticSearch/Kibana, Postgresql<br />
<br />
=== Mentors: [https://github.com/mgogoulos Markos Gogoulos], [https://github.com/mpetyx Michael Petychakis], [https://twitter.com/siaterliskonsta Kostas Siaterlis] ===<br />
<br />
[[Κατηγορία:GSOC2019]]</div>Mgogoulos