Summer of Code

From Ελεύθερο Λογισμικό / Λογισμικό ανοιχτού κώδικα
Jump to: navigation, search

Contents

 UniverSIS

Brief Explanation

UniverSIS is an effort for/by HEI in Greece to develop their own Student Information System. While front-end applications are being developed, the focus is on basic functionality only. We propose the extension of the schema of the UniverSIS platform to include the new models (classrooms, reservations) and the development of the relevant interface in the front end applications (Registrar, Teachers, Students).

Expected Results

Basic functionality for making classroom reservations and course class scheduling by the Registrar. The teachers delivering the courses and the students enrolled should be able to view calendars of their scheduled classes. Advanced functionality such as cancellation of class and rescheduling could be implemented as an extra.


Related repositories

https://www.universis.gr/

Knowledge Prerequisites

Angular NodeJS themost


Mentors:

Stella Rouzi - Dimitris Pliakos


hashesDB

Brief Explanation

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

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

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


Expected Results

implementation of new tools

Related repositories

new project

Knowledge Prerequisites

Python (optional C), basic SQL

Mentors:

Alexios Zavras


An open registry for street names and numbers

Brief Explanation

The aim of this project is to develop the software for the creation of an open registry of street names and numbers for all settlements in Greece (more than 13,000 settlements, more than 700 cities). The registry will contain the official street names and their numbers along with their geolocation information. The project must develop tools that allow public administration to maintain and update the registry for any changes, and anyone interested to search and browse the registry information. The developed registry can be the backend for several applications that relate to land usage, building blocks, and land segmentation, e.g. to administrative districts or regions of responsibility. For these reasons, it is important that the registry adopts widely used conversions and standardizations for open geo-data. The adoption of the naming conversions used by Open Street Map is a step towards this direction. It is also important to allow data import and export in widely used formats such as XML and osm. The project will start with the definition of the conceptual data model that will store the data and will continue with the services that will allow data collection and data update.


Expected Results

The developed registry can be the backend for several applications that relate to land usage, building blocks, and land segmentation, e.g. to administrative districts or regions of responsibility. For these reasons, it is important that the registry adopts widely used conversions and standardizations for open geo-data. The adoption of the naming conversions used by Open Street Map is a step towards this direction. It is also important to allow data import and export in widely used formats such as XML and osm. The project will start with the definition of the conceptual data model that will store the data and will continue with the services that will allow data collection and data update.

Related repositories

Related to Open Street Map and how to upload/download data files and conversions https://wiki.openstreetmap.org/wiki/Downloading_data https://registry.opendata.aws/osm/ https://wiki.openstreetmap.org/wiki/Editing_Standards_and_Conventions Related to Street registries world-wide https://wiki.openstreetmap.org/wiki/OpenStreetMap_for_Government https://www.leeds.gov.uk/parking-roads-and-travel/street-register https://www.etalab.gouv.fr/qui-sommes-nous https://adresse.data.gouv.fr/ An open street names directory from GFOS for Greece https://github.com/eellak/Greek-Street-Names-Directory


Knowledge Prerequisites

Python , Data Mining,Perl, PHP, C, C++, Java

Mentors:

Iraklis Varlamis, Dimitris Proios


Aerial image recognition services for the agricultural domain

Brief Explanation

The aim of this project is to develop and train a model for plantation counting from aerial and satellite images


Expected Results

The software that will be developed must be able to: Setup, configure and train models for processing different plantation types, using various image formats as input. Apply pre-trained models in image batches from a specific input stream, referring to a specific plantation type and automatically count the number of trees per image. Provide a visual tool for the semi-automatic annotation of images, which will allow users to define the bounding box for one tree in an image and will automatically annotate similar trees in the image, also allowing users to correct the annotation by selecting (false negatives) and de-selecting (false positives) trees. Provide a graphical user interface for processing and curating batches of images. The code must also support LSO-25 images that also contain infrared channel information.


Related repositories

Open projects that specialize in object detection and counting from aerial and satellite images https://github.com/azavea/raster-vision https://github.com/sreeram004/Count-the-number-of-Palm-Trees https://github.com/rashivkp/coconut-tree-detection Sample Image Datasets https://github.com/mohanrajmit/Coconut-Tree-Detection/tree/master/dataset https://github.com/chrieke/awesome-satellite-imagery-datasets Related reading https://arxiv.org/ftp/arxiv/papers/1701/1701.06462.pdf https://ieeexplore.ieee.org/abstract/document/6881615


Knowledge Prerequisites

Python , Data Mining,Perl, PHP, C, C++, Java

Mentors:

Iraklis Varlamis, Panos Louridas, Dimitris Proios


Development of a personal secure vault for digital items

Brief Explanation

This project aims in developing a secure infrastructure where users can deposit personal information and/or documents. They can also receive information of personal interest to them (e.g. documents, certificates, and personal information) from their interaction with organizations.


Expected Results

It is important for the project to support the periodical updates of the information in the vault, by accessing predefined online services. For this purpose, the software running in the vault will use access credentials and all other information necessary to access an online service and apply for more information (e.g. submit an application for a certificate that expires every two months). If the information or document that comes as an output from the remote service is automatically available, then it will be stored in the vault or updated in the vault, along with its future update information. If the information will be made available at a later time, the vault must be able to receive notifications that will trigger an information update that will request the output again when it is ready. This will fully implement a pull-only strategy from the vault side, which will only access remote services and APIs when necessary, or when triggered.


Related repositories

Related open projects https://github.com/mhisoft/eVault https://github.com/keeps/roda https://github.com/DSpace/DSpace https://github.com/hashicorp/vault


Knowledge Prerequisites

Python ,Perl, PHP, C, C++, Java

Mentors

Iraklis Varlamis, Panos Louridas, Dimitris Proios

Enabling multi-user application creation and sharing for the NodeRed tool using cloud infrastructure

Brief Explanation

NodeRed is one of the most powerful open-source graphical programming tools for the Internet of Things; wiring together hardware devices, APIs and online services is easy, without requiring deep knowledge of computer programming. Furthermore, its community is quite active and has provided over 2400 packages with several functionalities. Unfortunately, NodeRed has some major drawbacks as well, namely: 1) it is not multi-user, thus the NodeRed server does not support sessions etc. and 2) it does not have an easy and seamless way to share packages among its instances, which now is performed by manually exporting and importing flows.

Expected Results

In this project we aspire to tackle these two drawbacks, by deploying NodeRed to the cloud. Specifically, a cloud deployment infrastructure will be used (probably Kubernetes), via which NodeRed servers will be deployed in containers. Furthermore, a front-end to the system will be created, via which each user will be able to create an account and login, deploy his/her own NodeRed instance and create applications in their personalized view. A NodeRed flow “store” will be created, allowing users to easily share their flows or use flows of others. Finally, the store will be populated with several flows that NodeRed repositories provide.

Related repositories

https://github.com/node-red

Knowledge Prerequisites

Prerequisites are: a) good knowledge of Python, b) some experience with Unix/Linux systems and, c) ideally, some knowledge on DEVOPS process. Apart from these, knowledge of Web concepts (ports, proxies, reverse proxies, http, websockets), or cloud tools like Kubernetes is definitely a plus..

Mentors:

Konstantinos Panayotou , Manos Tsardoulias, Andreas Symeonidis

HyperFlow: A workflow management tool for digital transformation in Legal Tech

Brief Explanation

At the core of any digital transformation activity is the digitization of the underlying workflows and business processes. Although there are several professional tools available, a transparent and open-source (and thus configurable) tool for managing complex organizational workflows is yet to be developed. The proposed tool leads to the development of an integrated SW platform upon which automated or semi-automated processes can be built and managed.

Expected Results

By the end of GSoC 2020, the student is expected to have developed: Basic platform functionality for the mentioned case study; Enabling of aggregation of different data formats and modules; Connectors to existing and future open source scripts, e.g. for data scraping and text processing State management implementation to facilitate workflow management and configuration

Related  repositories

https://github.com/hocrt

Knowledge Prerequisites

The student is expected to have basic knowledge of the pertinent technology stack that includes NodeJS, TypeScript, ReactJS & MongoDB. Knowledge of Python shall be an advantage. An initial understanding of parliamentary processes is considered an asset but not required.

Mentors:

George Mikros Fotis Fitsilis Sotiris Leventis Michael Fitsilis 

Implementation of an advanced tool for linguistic analysis

Brief Explanation

Having Xtralingua, the end-product of GSOC 2019, as a starting point, the proposed project takes its development into the next level by increasing its modularity and introducing an end-to-end workflow that includes one of the most important aspects of modern text mining, i.e. data visualization.

Xtralingua uses text as input and calculates a great number of linguistic features as output. With the proposed new GSOC 2020 project it shall get a modular architecture, the UI will be separated from the API layer, while also being able to support additional features. 

The core of the project shall be the development of an integrated data visualization tool with a defined output of a number of standard visualizations necessary for text analysis, e.g. word cloud, word frequency plots, topic modeling bubbles, sentiment evolution graph, etc. 

The added value of this tool to the linguistic community is invaluable since most of the existing tools are black boxes with little to none parametrization possibilities. The end-to-end characteristic shall give full control to non-developers while also enabling tool expansion and transformation with ease based on the proposed modular architecture.

Expected Results

By the end of GSOC 2020, software development is expected to have produced: End-to-end text processing and visualization tool; Modular architecture enabling streamlined development and extension processes; Implementation of defined connectors for add-ons; Use of popular web technology stack to encourage community participation and use

Related  repositories

https://hellenicOCRteam.gr

Knowledge Prerequisites

On the technical level, we encourage interested students with basic knowledge of web technologies to apply (react, node). The interested developers will learn best practices in micro-services architecture and they will acquire experience in the use of state-of-the-art development tools and technology stack.

Mentors:

George Mikros Fotis Fitsilis Sotiris Leventis Michael Fitsilis 

Sastix-CMS: A general purpose JAVA CMS in Spring Boot

Brief Explanation

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

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

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

Expected Results

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

Related  repositories

https://github.com/sastix/cms

Knowledge Prerequisites

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

Mentors:

Ioannis Skitsas - Panagiotis Bochalis


Preservation of flash-based Greek educational applications

Brief Explanation

Many Greek educational applications were developed in the past using the Flash technology. Some of them can be operated online in http://ts.sch.gr/software. Many Greek schools use and need them.

Unfortunately, Flash is being deprecated at the end of 2020, and those applications will no longer be runnable. The goal of this project is:

 - To package these applications in a cross-platform format like npm,

 - To allow teachers and students to select which ones they want to install,

 - After package installation, on "postinst", to create an index page with the available packages,

 - So that this page can be viewed offline with palemoon, a browser that aims to keep running flash even after 2020.

Expected Results

The result will be all the flash applications packaged in npm or similar format (many GB), and the packager/index generator/launcher code base.

Related  repositories

https://gitlab.com/ts.sch.gr/sch-webapp-launcher/

Knowledge Prerequisites

Python, HTML, Javascript, CSS, experience with educational applications

Mentors:

Foteini Tsiami, Siahos Yiannis

fsshrink

Brief Explanation

On some (e.g. bootable) partitions we may want to preserve not only their files, but also the exact filesystem layout. We can use backup utilities (partclone, ntfsutils, etc) to create a backup of the useful blocks in the filesystem, but most utilities require a restore partition at least as long as the backup partition, even if the filesystem is mostly empty.

Therefore, we need a tool to shrink the image of the filesystem that will be required during the restore.

Tools like ntfsresize (https://github.com/nats/ntfsprogs) can be used to resize the ntfs filesystem. But there are an overkill: their main effort is to preserve the filesystem in case of interruption, and they are too slow, making many write operations.

And still, they require a full size restore partition to initially restore the filesystem, which may be difficult when we restore to smaller media (SD cards on Raspberry Pi, USD sticks, small SSDs, etc).

We will create fat32shrink and ntfsskrink, two simpler tools to shrink the file system (to almost its minimal size) at the time it is copied/backed up (or otherwise when restored), without modifying the source filesystem (or image).

Optionally, all/system files may stay in their original blocks.

Expected Results

Utilities to create shrinked ntfs/fat32 filesystems during the backup operation

Related  repositories

http://sarantos .no-ip.org/projects/fsshrink

Knowledge Prerequisites

C/C++

Mentors:

Sarantos Kapidakis

3Dlibrary

Brief Explanation

Creating small STEM projects requires the use of common parts: gears, axes, boxes, wheels, bases, etc.

These parts can be 3D-printed, if the right part design is available.

This project will create a library of 3D (parametric) robotic parts, that any user can search.

Then, the user will provide the configurable parameters of the part (e.g. the diameter, width and number of teeth in a gear) and the library will return a 3D object that can be printed directly.

The library will include basic parts, but will also accept user contributed designs (and ways to input the parameters of the new parts).

Expected Results

A library with parametric 3D objects that can be used as parts in STEM

Related  repositories

http://sarantos. no-ip.org/projects/3Dlibrary

Knowledge Prerequisites

Web form and 3D object design is a plus

Mentors:

Sarantos Kapidakis, Chrysovalantis Sfyrakis

esp32service

Brief Explanation

ESP32 is a series of low-cost, low-power system on a chip microcontrollers . It includes wifi and can be used into many automations and STEM projects.

In order to ease its use in many application, we want to create and download to the esp32 a program that will respond to web commands through its wifi.

An initial version is already provided.

Additionally, a scratchX plugin, that calls this server by using http requests, is also provided.

We want to create a more complete one, to handle a greater variety of inputs and outputs (sensors, sonar, motors, etc).

Expected Results

A esp32 program that can be downloaded on the esp32 and make it respond to http requests for pin I/O.

Related  repositories

http://sarantos. no-ip.org/projects/esp32service

Knowledge Prerequisites

C/C++

Mentors:

Sarantos Kapidakis,, Chrysovalantis Sfyrakis

scratch2pdf

Brief Explanation

Scratch, from MIT, is a popular block programming language, used in primary and secondary education. It is often used in STEM projects, where the programmers should explain their code.

Scratch does not include a tool to print the code, so that it can be studied or presented. Such a (local or web) tool will be created here.

The tool will not just display the code, in pdf layout, but will also create links among the uses of each variable or each message (as demonstrated in

https://www.slideshare.net/WROHellas/wro-78409746), making easy to follow the code.

Expected Results

A tool will be created that will convert the scratch code to a pdf file.

Related  repositories

http://sarantos. no-ip.org/projects/speech-kbd

Knowledge Prerequisites

Coding experience

Mentors:

Sarantos Kapidakis,

New Pairing-Friendly Curves Support for bplib

Brief Explanation

bplib (https://bplib.readthedocs.io/en/latest/) and petlib (https://petlib.readthedocs.io/en/latest/) are two libraries, developed by George Danezis (http://www0.cs.ucl.ac.uk/staff/G.Danezis/) that allow developers easy, high-level experimentation with cryptographic concepts using Python.

However, modern cryptographic techniques are most effective when they use specific elliptic curves that are not supported by bplib / petlib (they use the elliptic curves provided by OpenSSL).

This project will carry out the necessary work so that bplib / petlib use recently developed, efficient elliptic curves, for example BLS12- 381.

Expected Results

Add support for recent, efficient elliptic curves, like BLS12- 381, to bplib / petlib

Related  repositories

https://github.com/gdanezis/bplib

https://github.com/gdanezis/petlib

Knowledge Prerequisites

Very good knowledge of Python, C/C++, applied cryptography. Knowledge of Rust is a plus.

Mentors:

Panos Louridas

Moodle ADaptable VIsualization for CommunitiEs

Brief Explanation

Makes the forum communication more effective by using ADVICE, a visualization learning analytics tool. Through ADVICE, the users are able to label every message posted on the forum. At the same time, ADVICE provides to the learners and instructors, adaptable visualizations that reflect the development of the discussion as well as qualitative data about the user’s/learner’s contribution to the discussion. This way, the forum is transformed from a simple means of communication into a tool of learning and community building.

Expected Results

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

Related  repositories

http://inspire.aspete.gr/inspireus/index.jsp

Knowledge Prerequisites

PHP, C++, visualization

Mentors:

Kyparisia Papanikolaou, Maria Tzelepi


Adding dwg support to ThanCad

Brief Explanation

ThanCad is open source CAD (Computer Aided Design) software written in Python. It is used for educational purposes in NTUA as it provides special purpose technical tools for surveying engineers (photogrammetry, DEM, DTM, projections) and civil engineers (highway profile and design). It currently provides interoperability with other CADs via the dxf file format. However ThanCad lacks dwg file format support which is widely used for interoperability (or even as main drawing format). The aim of this proposal is to add dwg support to ThanCad using the opensource libdxfrw library (https://sourceforge.net/projects/libdxfrw/) which is written in C. The library can be ported to Python almost automatically using the opensource SWIG tool (http://www.swig.org/).

Expected Results

ThanCad will be able to completely save a ThanCad drawing to a dwg file. It will be able to read all the supported entities from a dwg file (lines, polylines, circles, arcs, ellipses, points, 3dfaces, single line texts, linear dimensions, images). ThanCad will be easier to use by the students. Finally more users will be attracted to use ThanCad, an open source CAD, as their main CAD system.

Related  repositories

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

Knowledge Prerequisites

Very good knowledge of Python and C programming languages. Prior experience with SWIG is wellcome.

Mentors:

Athanasios Stamos , Dimitra Vassilaki


Addition of Greek glyphs in Open Source Fonts

Brief Explanation

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

The aim of this project is to 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).

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

Expected Results

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

Knowledge Prerequisites

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

Mentors:

Alexios ZavrasIrene Vlachou Εmilios Τheofanous


clio — Software Components and IP Management System

Brief Explanation

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

Expected Results

improvements to clio

Related  repositories

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

Knowledge Prerequisites

Python, web front-end

Mentors:

Alexios Zavras

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

Brief Explanation:

PM² is a Project Management Methodology developed by the European Commission. PM² is built on Project Management best practices and is supported by the following four (4) pillars:

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

For a full support of PM² Project Management Methodology by OpenProject, new modules should be developed on OpenProject that will allow modeling of the abovementioned four pillars of PM².

Expected Results:

Support for the process of PM² itself in OpenProject: That is, development of Open Project plug-ins which should add support for defining and handling the roles, responsibilities, phases and activities (in terms of PM² governance, life-cycle and processes pillars) for every new project.

The work of this Work-Package includes: * the analysis of PM2 requirements * the setup of OpenProject development environment (Development VM) * the modeling of PM2 requirements in OpenProject environment via the development of one or more plug-ins. The plug-ins should follow the Open Project plug-in guidelines and be consistent with the OpenProject API (http://docs.openproject.org/apiv3-doc/). The plug-ins should add the required models, logic and DB tables in order to:

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

Related GitHub repositories

https://github.com/opf/openproject

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

Knowledge Prerequisites

* Ruby

* Ruby on Rails

* Postgres

* Problem Analysis & Modeling 

Mentors

Theodoros Karounos, George Blanas, Nicos Kourounakis

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

Brief Explanation:

This work-package is based on and extends OpenProject Work-Package #1 (Support modeling of the PM2 methodology for project management) by adding visual elements that will support for PM²project artifacts through templates, wizards, tools and guidelines.

Expected Results:

Integrate the outputs of Work-Package #1 in OpenProject UI. For this, developed plug-ins from Work_Package #1 will be extended and new plug-ins will be developed in order to provide a rich User interface for the user. The plug-ins should follow the Open Project plug-in guidelines and be consistent with the OpenProject API (http://docs.openproject.org/apiv3-doc/) .

The developed functionality should:

* Provide wizards allowing the PM² user to:

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

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

Related GitHub repositories

https://github.com/opf/openproject

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

Knowledge Prerequisites

*Ruby

* Ruby on Rails

* Angular

* ES6 *

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

Mentors

Theodoros Karounos, George Blanas, Nicos Kourounakis


eIDAS SAML functionality to keycloak

Brief Explanation

Keycloak is an open source Identity and Access Management solution aimed at modern applications and services. It makes it easy to secure applications and services with little to no code.

Expected Results

We would like to add eIDAS eIDAS SAML functionality to keycloak. Keycloak is one of the open source IAM currently available. A comparison of open-source SSO implementations is available here, a recent video comparison between keycloak and WS02 was present in recent IDM2018 and an opinionated comparison in stackoverflow.

eIDAS(electronic IDentification, Authentication and trust Services) is an EU regulation on electronic identification and trust services for electronic transactions in the internal market. A cross border connection within the member states of EU uses an eIDAS network that consists of a series of eIDAS-nodes implemented at the member state level.

An eIDAS-node consists of an eIDAS connector and an eIDAS proxy service or eIDAS middleware service. An eIDAS node can request a cross border authentication through the eIDAS connector and provide a cross border authentication through the eIDAS service (an eIDAS service can operate either in an eIDAS proxy service or eIDAS middleware service). As a matter of fact eIDAS implements a specific dialect (i.e. Profile) of SAML. Following is an example eIDAS network with proxy to proxy connection between two member states(MS).


What happens here is as follows: -The user (citizen) of MS A requests access to a service provider in MS B. -The service provider in MS B sends the request to its own connector. -On receipt of the request, the connector asks the user for the country of origin (TLS protocol). -When the user selects the country of origin, the SAML request is forwarded by the connector to the eIDAS-node proxy service of the user's member state. - The eIDAS-node proxy service sends the SAML request to the identity provider for authentication, and a user authenticates using the electronic identity.Once authenticated, this identity is returned to the eIDAS-node proxy service. -The eIDAS-node proxy service sends a SAML assertion to the requesting connector, which forwards the response to the service provider. -Τhe service provider grants access to the user.

A similar functionality has been added to WSO2.We believe the Apache Keycloack presents a lower barrier to enter, technologically speaking due to its easier admin dashboard procedures. Furthermore keycloak brings enough community to actively support its open software base.

Related GitHub repositories

https://github.com/keycloak/keycloak

https://readthedocs.org/projects/python-keycloak/

https://github.com/topics/eidas-framework

Knowledge Prerequisites
  • PYTHON
  • JAVA
Mentors

Stasis Antonis, Panagiotis Kranidiotis Dimitris Kalogeras,