GSOC2018 Projects: Διαφορά μεταξύ των αναθεωρήσεων

Από Ελεύθερο Λογισμικό / Λογισμικό ανοιχτού κώδικα
Μετάβαση στην πλοήγηση Πήδηση στην αναζήτηση
(Νέα σελίδα με '= '''[https://summerofcode.withgoogle.com/organizations/4825634544025600/ GFOSS is a mentor- organisation for GSOC 2017].''' Students interested to participate should...')
 
Χωρίς σύνοψη επεξεργασίας
 
(146 ενδιάμεσες εκδόσεις από 6 χρήστες δεν εμφανίζονται)
Γραμμή 1: Γραμμή 1:
'''[https://summerofcode.withgoogle.com/organizations/4825634544025600/ GFOSS is a mentor- organisation for GSOC 2017].'''  Students interested to participate should check which of the following projects fits their interests and skills.  [https://ellak.gr/wiki/index.php?title=Practical_information_for_students Practical information for students]  '''Proposed Projects for GSOC 2017''' =
'''GFOSS project proposals for GSOC 2018'''   
 
Students interested to participate should check which of the following projects fits their interests and skills.  [https://ellak.gr/wiki/index.php?title=Practical_information_for_students For practical information for students visit this '''page''']. For additional information, please subscribe to this [https://lists.ellak.gr/opensource-devs/listinfo.html '''list'''] and post your questions. The full list archives are available [https://lists.ellak.gr/opensource-devs/ '''here'''].
 
'''Proposed Projects for GSOC 2018.'''  The GSOC Projects implemented in 2017 are available [https://github.com/search?q=org%3Aeellak+gsoc '''here'''].
 
== Using Weld for Cryptography in the Zeus e-voting application (https://zeus.grnet.gr). ==


==  Synnefo ==
==== Brief Explanation: ====
==== Brief Explanation: ====
Zeus is an e-voting application, in use by thousands of people. It ensures anonymity and verifiability of the entire voting process by using strong cryptographic primitives. In particular, encrypted voter ballots are shuffled and anonymised in a verifiable way before decryption. This is computationally costly, so the Zeus team is constantly looking for ways to improve performance.


Synnefo (https://www.synnefo.org/) is a complete open source cloud stack written in Python that provides Compute, Network, Image, Volume and Storage services. Synnefo exposes an OpenStack-derived API that can be used for third party clients, and is used for its own graphical user interface that powers the Okeanos public cloud infrastructure ([http://okeanos.grnet.gr/ http://okeanos.grnet.gr]).  Synnefo manages multiple Ganeti clusters at the backend for handling low-level VM operations and can use different storage backends. =
==== Expected Results ====
Cryptographic operations are very costly and efficient implementations are essential for real-world production use. For example, when using  Python, the underlying cryptography is typically implemented in C/C++,
with suitable bindings in Python, so that the actual computations happen<nowiki> </nowiki>at a much greater speed than that afforded by the Python interpreter. In this context, in last year’s GSoC we implemented a Zero-Knowledge  Shuffle mechanism in C/C+ and then made it available in Python through Cython. Now we want to try a new optimisation, offered by the use of the Weld framework (<nowiki>http://weld.stanford.edu/).
  </nowiki>Weld offers speed improvements by minimising the number of calls, and
thus memory copy costs, between languages, in our case, between Python
and C. In this GSoC project we want to implement our shuffle operations using Weld, measure the performance benefits, and offer it as a possible optimisation in Zeus.


==== Related GitHub repositories: ====
==== Related GitHub repositories ====
https://github.com/grnet/zeus


= https://github.com/grnet/synnefo  =
==== Knowledge Prerequisites ====
* Python
* C, C++
* Cryptography
Knowledge of Rust is a plus (Weld is implemented in Rust).


==== Example Improvements: ====
==== Mentors: [https://github.com/louridas Panos Louridas],[https://github.com/ergonomicon Georgios Tsoukalas] ====
==== Provide Remote Access via SPICE ====


= SPICE [https://www.spice-space.org/] is an opensource solution for remote desktop. It is supported by Qemu, Ganeti, and HTML5.  Synnefo can use SPICE in two ways:
== Addition of Greek glyphs in Open Source Fonts ==


* To open a console to a VM through the web browser for inspection or troubleshooting
==== Brief Explanation ====
* To offer remote desktop sessions to the user of the VM  The expected tasks are:
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.


* Investigate the details of SPICE support for all software in the stack (Qemu/Ganeti/browser) to find out which functionality can be supported end-to-end and whether SPICE can be a full remote desktop solution or just an emergency one for troubleshooting.
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).
* Design an authenticated Qemu-browser connection. Since the SPICE media stream originates not from the VM itself but from its host, there has to be a way to connect to the browser to the Qemu process of the VM. This connection must only be available to an authenticated user. Currently, Synnefo employs an authenticated proxy server for the VNC port openned by qemu.
* Implement the authenticated connection and the relevant UI changes to deliver the feature. =


==== RESCUE boot for Synnefo VMs ====
'''This is not a typical programming project. '''If you have never designed fonts before, it is probably not for you.


= When the operating system of the VM cannot boot properly to allow the user to connect to it, the user must have another, safer method to gain access to the VM for fixing it or for extracting data. Usually, this means that a CDROM is attached to the VM and the VMs boots from the CDROM instead of its disk. The expected tasks are:
==== Expected Results ====
Full support for Greek text in a number of Open Source fonts.


* Find/customize/create suitable rescue images for various OSes, and the tools needed to maintain them.
==== Knowledge Prerequisites ====
* Design the mechanism that sets and unsets a VM in RESCUE state.
Type design, font technologies. Please note that this is a special project, where coding, in the traditional sense, will not be enough.
* Implement the RESCUE mechanism and the attaching of the rescue image.   =


==== Other Issues of Interest: ====
==== Mentors: [https://github.com/zvr Alexios Zavras], [https://github.com/irenevl Irene Vlachou] [https://github.com/thynem Εmilios Τheofanous] ====


=
== Adding Greek language on NLP library Spacy.io ==


* Telemetry (implementation of OpenStack Telemetry / Ceilometer)
=== Brief Explanation: ===
Spacy is an open-source Python library for advanced Natural Language Processing. It's a very powerful and modern tool for applying NLP to real world problems. Among other functionality it provides Named Entity Recognition, deep learning integration, part-of-speech tagging and includes built in visualizers for syntax and NER. Spacy supports more than 25 languages but not Greek. Adding the Greek language will provide massive improvements on applying NLP on the Greek language, and allow for actions as Named entity recognition and Part-of-speech tagging


* Multidatacenter integration
The procedure is well specified on https://spacy.io/usage/adding-languages, custom language data (stop words, tokenizer exceptions, punctuation rules etc) need to be added and tested.


* Physical node administration Management Web Console (Add, remove, update a physical node)
=== Expected Results ===
The vocabulary, syntax, entities and word vectors for the Greek language. These will be produced with Spacy/gensim, after the language information is successfully added.


* Network Management Console  =
The Greek language model with then be added to Spacy.io for usage as a supported language model.


==== Knowledge Prerequisites: ====
As a real world scenario in order to test the language model, analysis on a large number of Official Greek Government's Gazette (FEK-ΦΕΚ) is proposed, in order to extract entities and categorize these documents.


= ·      Python  ·      Ganeti  ·      OpenStack API  ·      Ceph, Gluster, DRBD  '''Mentors:''' [https://github.com/louridas Panos Louridas],[https://github.com/ergonomicon Georgios Tsoukalas]  =
=== Related  repositories ===
https://github.com/explosion/spaCy


==  The Transparency Program initiative - Diavgeia ==
=== Knowledge Prerequisites ===
===== Brief Explanation: =====
Strong knowledge of the Greek language, Python language fluency and Regular Expressions knowledge are necessary for this.


= Diavgeia is a PHP application with a Mysql backend that is used in order to upload documents to an online public repository. This version of code was used by the Greek government from 2010-2014 as the main repository of public decisions and actsEach document is digitally signed and assigned a unique Internet Uploading Number (IUN). The application consists of concrete frontend and backend with different databases for security and perfomance reasons.   =
=== Mentors: [https://github.com/mgogoulos Markos Gogoulos] [https://github.com/louridas Panos Louridas] ===


==== Related GitHub repositories: ====
== Extraction of Responsibilities per unit in public sector organizations from the Government Gazette ==


= https://github.com/eellak/opengov_diavgeia  =
==== Brief Explanation: ====
The objective of this project is to extend existing Government Gazette(GG) text mining code with Named Entity Recognition features that will allow the identification of Government Directorates and Divisions with the responsibilities assigned to them and the types of services they are required to provide according with their legal framework published in http://www.et.gr/ and the extraction of this information with related metadata (decision number, date of the GG issue). The aim is to link the management units with assigned roles and services per unit(Directorates, Divisions & Sections) and codify this specific information, which is hidden in the GG issue raw text. For this, the PDFs must be downloaded, converted into text and cleaned. Then, syntactic-based heuristics and/or machine learning techniques must be applied to identify specific Named Entities types with references to assigned responsibilities-services per unit(Directorates, Divisions & Sections) and links between the two must be extracted. Metadata concerning the GG issue and decision and/or law number will be also associated with the extracted association. The produced associations will be extracted in a machine usable/structured format (e.g. as RDF triples).


==== Expected Results: ====
==== '''<br> '''Expected Results ====
* A module for manually annotating related entities and responsibilities-services assignment sections in raw text
* A NER module, with trained models for detecting  Governmental Directions and Divisions in raw text
* A module that associates entities with responsibilities and extracts related metadata from the GG issue


= Rewrite the backend application in a modern framework, ec [http://www.mckinsey.com/business-functions/digital-mckinsey/our-insights/using-blockchain-to-improve-data-management-in-the-public-sector?cid=other-eml-alt-mip-mck-oth-1703 blockchain]  Create forms to write online the decisions and acts  and produce fully metadata documents of structured data  =
==== Related  repositories ====
https://github.com/arisp8/gazette-analysis


==== Knowledge Prerequisites: ====
==== '''<br> '''Knowledge Prerequisites ====
Python, Java, Machine Learning


= ·      PHP  ·      Mysql  '''Mentors:''' [https://github.com/zvr Alexios Zavras],[https://github.com/kranidiotis Panagiotis Kranidiotis], [https://github.com/dionyziz Dionysis Zindros]  =
==== Mentors: [https://www.dit.hua.gr/~varlamis/ Iraklis Varlamis], [https://users.ionio.gr/~sarantos/en.html Sarantos Kapidakis], [http://thalassa.ionio.gr/staff/moschopoulos/cv.pdf Dionysios Moschopoulos] [http://www.karounos.gr/blog/bio Theodoros Karounos====


== Agora ==
== Open source plugin for math and algebra in Moodle ==
==== Brief Explanation: ====


= Agora is a 3-tier application for consists on a    Frontend PHP application in Yii Framework  Middleware API on Spring Framework  MySQL Databases on High Availability  This version of code was used by the Greek government from 2012-2014 as the main repository of public decisions,  RFP’s, contracts and invoices public procurement. Each document is digitally signed and assigned a unique Internet Uploading Number (IUN). Agora fulfill the workflow for a procurement by the time of the announcement till it’s payment.  =
==== Brief Description ====
Make the moodle learning environment more functional in relation to mathematics.   Although there are a lot of math editors available for moodle, there is still a lot of functionalities missing in relation to school algebra as an open source plugin


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


= Automation to the installation process.   Packaging to main linux distributions. Creating national and international (ie europeans) profiles of workflow process.  =
https://docs.moodle.org/34/en/Mathematics#Equation_Construction_and_Display


==== Related GitHub repositories: ====


= https://github.com/eellak/opengov_agora  =
We will utilize the work implemented by CERN with [https://github.com/cernbox CERNBOX]


==== Knowledge Prerequisites: ====
==== Knowledge Prerequisites ====
XHTML


= PHP - Yii Framwork  Java - Spring Framework  Mysql  Basic Legals about procurements  '''Mentors:'''[https://github.com/zvr Alexios Zavras],[https://github.com/kranidiotis Panagiotis Kranidiotis] =
CSS
 
Javascript
 
Κnowledge of math and algebra
 
==== Mentors: [http://cde.athabascau.ca/ourpeople/instructors/tsinakos.php Avgoustos Tsinakos], [https://www.spinellis.gr Diomidis Spinellis] ====
 
== Epoptes ==


== Netdata ==
==== Brief Explanation: ====
==== Brief Explanation: ====
'''Epoptes ('''Επόπτης  - a Greek word for overseer) is an open source computer lab management and monitoring tool. It allows for screen broadcasting
and monitoring, remote command execution, message sending, imposing restrictions like screen locking or sound muting the clients and much more! It can be installed in Ubuntu, Debian and openSUSE based labs that may contain ''any'' combination of the following: LTSP servers, thin and fat clients, non LTSP servers, standalone workstations, NX or XDMCP clients etc.                                                   
==== Related GitHub repositories ====
https://www.github.com/Epoptes/epoptes
==== Expected Results ====
Rewrite Epoptes with Python 3 support
Gtk3 with GObject Introspection instead of pygtk2
Improvements in the code structure ( Break existing code into python modules/packages)
==== Knowledge Prerequisites ====
Python


=  '''netdata''' is a system for '''distributed real-time performance and health monitoring.''' It provides '''unparalleled insights, in real-time''', of everything happening on the system it runs (including applications such as web and database servers), using '''modern interactive web dashboards'''. netdata is ideal for monitoring physical servers, VMs, VPS, containers, IoT.  netdata <nowiki> </nowiki>is highly active project, with hundreds of new users joining and  hundreds of new installations completed, every day. netdata is also  featured as one of the top github projects for 2016 (<nowiki>https://octoverse.github.com/</nowiki>).  Key components of netdata:  1. netdata daemon, its core, written in C, an asynchronous I/O, time-series database and web server, optimized for performance.  2. web dashboards, written in Javascript, HTML, CSS  3. external plugins, written in python, node.js, bash, C  netdata <nowiki> </nowiki>is the definition of full-stack development. It includes low-level C  programming following embedded development principles, web-apps  development for visualizing performance metrics, devops and sysadmin  automation tasks for configuring health monitoring (alarms), statistical <nowiki> </nowiki>analysis of metrics, high level development for data collection from  databases and third party apps, etc.  =
GTK


==== Related GitHub repositories: ====
==== Mentors: [https://github.com/ftsamis Fotis Tsiamis], [http://cde.athabascau.ca/ourpeople/instructors/tsinakos.php Avgoustos Tsinakos] ====


= https://github.com/firehol/netdata  =
== Government Gazette text mining, cross linking, and codification ==
 
==== Brief Explanation ====
The objective of this project is to extend existing Government Gazette text mining code to cross-link legal texts and detect the ministers that sign them. For this the text PDFs need to be downloaded and converted into text. Then, heuristic rules must be applied to detect references to other legal texts, which will be converted into hypertext form. Similar techniques will be used to detect the competent ministers. Two possible extensions are proposed. First, detect amendments incorporated within another law. Second, implement a prototype for editing a law in its codified form (e.g. on GitHub) and automatically creating from the changes the text to be legislated (the differences from the original law).
 
==== Related GitHub repositories ====
https://github.com/arisp8/gazette-analysis


==== Expected Results ====
==== Expected Results ====
Detection of references to other laws; detection of competent ministers; codified legislation prototype


= These are the main development directions  1. <nowiki> </nowiki>add more data collection plugins in any computer language, for  monitoring the performance of popular third party applications.  2. add more data visualizations and dashboards.  3. add more health monitoring alarms, for monitoring popular applications and operating systems.  4. port netdata to more operating systems.  5. improve the distribution of netdata by setting up and maintaining binary packages for popular distributions.  6. improve the technical documentation of netdata (setup guides, how-tos for monitoring applications or functions, etc).  7. help spreading netdata, by improving the community and social media reach of netdata.  More ideas can be found at the netdata github repo  =
==== Knowledge Prerequisites ====
Python


==== Knowledge Prerequisites: ====
==== Mentors: [https://www.spinellis.gr Diomidis Spinellis] [https://github.com/zvr Alexios Zavras]  [https://users.ionio.gr/~sarantos/en.html Sarantos Kapidakis] [http://thalassa.ionio.gr/staff/moschopoulos/cv.pdf Dionysios Moschopoulos] ====


= Depending on the task in hand, different skills are required.  For example:  1. low level C programming (POSIX compliant, including pthreads)  2. python programming  3. node.js programming  4. web-app development (javascript, html, css)  5. bash scripting  6. linux system administration  '''Mentors:''' [https://github.com/ktsaou Costa Tsaousis], [https://www.spinellis.gr/ Diomidis Spinellis]  =
== Scriptum ==


==  Zeus ==
==== Brief Explanation ====
=== Brief Explanation: ===
<strong>SCRIPTUM </strong>is a Web based Open-Source application that will be used in order to eliminate bureaucracy and document loss, providing the Administration Office of the Greek Republic Vice President an extensible and integrated environment for document publishing, categorization and administration. The overall project involves two basic sub projects:
# <strong>e-Protocol:</strong> for handling incoming/outgoing mail messages and their attachments. Using this system, the e-Protocol users can benefit from the advanced OpenKm properties in order to manipulate the messages. This subsystem provides an easy way to complete forms relevant to the incoming/outgoing mail, form letters from templates and maintains a document repository equipped with document based security.
# <strong>Case Management:</strong> this sub system provides a well established work flow for treating documentation relevant to specific organization 's operations. Assignment Operations provides a standard way for managing and directing specific actions to be taken from the employees Administration Office of the Greek Republic Vice President of in order to complete organization 's operations.
These systems use as a document repository the document management platform OpenKM.


= Zeus is an open source e-voting platform (online service available at: https://zeus.grnet.gr/zeus/). It enables secure, verifiable elections, with client-side ballot encryption and anonymity guaranteed through cryptographic mixing networks (mixnets). Zeus has already been used in hundreds of elections with tens of thousands of voters.  =
==== Related GitHub repositories ====
https://github.com/eellak/scriptum


=== Related GitHub repositories: ===
==== Expected Results ====
# Interoperability with egov services in Greece and European Union ISA
# containerization of scriptum


=  https://github.com/grnet/zeus  =


=== Example Improvements: ===
==== Knowledge Prerequisites ====
====Better management/reporting of cryptographic identifiers and proofs====


=  Zeus employs cryptographic identifiers and proofs to create a secure log of the entire voting process. These can be used to audit the election after it has been completed and verify that the election protocol has been executed correctly.  This information, however, has to be presented to the voters and trustees at various stages in the process, and especially at the end, when they have to be recorded into official documents publishing the results.  We would like to enhance security and safety by making better use and better presentation of the available cryptographic information.  For example we could upgrade a cryptic hexadecimal fingerprint at the bottom of the page into a button that will provide a detailed report about the process for auditing or (expert) user inspection, or we could include more validations concerning cryptographic fingerprints into the browser code implementing the voting booth.  =
·      Java


====Mixnet Implementations====
-      Maven


=  The core operation that ensures both integrity and secrecy for e-voting is the mixnet. Zeus employs a re-encryption mixnet protocol that shuffles and re-encodes ballots to make them untraceable to the voter that submitted them while providing a proof that the shuffled votes are indeed equivalent to the original ones.  This is a complex and very computationally expensive operation. Better and faster protocols exist. Not all of the available mixnet protocols are appropriate for use in Zeus, but we are considering a few of them.  In this context, Zeus is participating in a research project that aims to provide (among other privacy-enhancing solutions) a re-encryption mixnet appropriate for e-voting. You can learn more  about the project here:
-     JPA 2.1


* https://panoramix-project.eu/
-     ZK 8.x


* https://www.youtube.com/watch?v=xyh631UUhhg  You can also see some of our recent works on mixnets here:
-      Spring 4.x


* https://github.com/grnet/ac16  We seek to implement or enhance or test different mixnets in order to replace the current mixnet algorithm in Zeus.  =


====Better PDF Generation and Mobile-friendly Browser View====
==== Mentors: [https://gfoss.eu/associates/ Nick Koskinas],[https://github.com/kranidiotis Panagiotis Kranidiotis] ====


= Zeus supports a lot of different voting systems and quite complex formats for ballots. We would like to enhance the experience of users by making all this complexity understandable and pleasantly presentable.  Zeus can already be used on mobile devices, but the experience can be improved. Mobile devices are increasingly popular, and we assume that participation to elections would get a boost if we make it easy for users to follow and vote for an election while they are on the run.  As a second step, of course, the fact that handheld devices are personal can help us enhance the overall security of the application.  =
== Development of an open source Greek Spelling and Grammatical dictionary ==


====Voting Systems and Ballots Specification====
==== Brief Explanation ====
Development of a spelling- grammatical tool that can work both as a LibreOffice extension and as a stand-alone web service by reusing the AfterTheDeadline API in order to be reused into a wide range of packages and platforms (Firefox, Chrome, Thunderbird, TinyMCE / Wordpress, jquery, etc.).


= Zeus supports a variety of voting systems (approval voting, scored voting, ranked voting) and ballots with simple questions or more complicated designs. We would like to develop a specification to describe voting systems, ballot designs, and cryptographic protocols, so that whole elections can be set up by using descriptions based on this specification. =
==== Expected results ====
* Extraction of Greek words from platforms with open licences (Wikipedia, Wikinews - wiki dictionary- Wikipedia revision history etc)
* Creation of a morphological dictionary of Modern Greek which will include all the extracted  verbs, adjectives into finite state transducers (for the implementation of morphological analyzer and morphological word generator through the tools of Apertium and HFST).
* Implementation of the tool:
in python3/c+/c++.  


====Separation in multiple independent services (Booth / Ballot box / Registry)====
as LibreOffice extension


=  Currently Zeus is operating from a single server. However, the e-voting process comprises several distinct components.
in  (REST/JSON)


* The electoral registry that lists and authenticates voters.
==== Knowledge Prerequisites<br> ====
* The voting server that creates and manages the voting process.
* C
* The voting booth that records the voter's choices and encrypts them on the voter's computer.
* C++
* The mixnet servers that perform the anonymization of votes.  We are already working on some of them but there is a lot of work to be done. The separation into independent components can offer maintainability, flexibility to extend Zeus to support more workflows, even beyond strictly voting (e.g. auction bidding), and most importantly, it can offer better security by allowing different parties to control different components.  =
* Python
* SQL


====Port Cryptographic Workflow to Elliptic Curves====
==== Mentors: [https://github.com/pkst-ellak Kostas Papadimas] [https://www.spinellis.gr Diomidis Spinellis] ====


= Zeus uses integer modulo prime arithmetic to construct its cryptosystem. Elliptic curve cryptography may provide some advantages in terms of security or efficiency and we would like to port Zeus cryptography on elliptic curves.  =
== Libreoffice customization and creation of legal Templates for LibreOffice ==


===Knowledge Prerequisites===
==== Brief Explanation ====
LibreOffice customization in order to achieve a "familiar" look and menus for users that convert from MS Office 2013, and creation of specific templates for the Greek Legal system. The customization and templates should follow the development guidelines at https://wiki.documentfoundation.org/Development/GetInvolved .   


=
==== Expected results ====
* Development of specific menu customizations through the use of [https://api.libreoffice.org/ Libreoffice Software Development Kit 6.0] in various modules of Libreoffice (eg https://api.libreoffice.org/docs/idl/ref/namespacecom_1_1sun_1_1star_1_1ui.html) 
* Design and development of Templates and LibreOffice applications that request/get and fill specific information in the templates through the use of  APIs for the Greek legal system


Customization and Templates  should be accompanied with detailed documentation and instructions for developers and end users.
==== Knowledge Prerequisites<br> ====
* C
* C++
* Java
* Python
* Python
* C, C++
* Bash
* Cryptography
* Perl
* JavaScript, if interested to work on the front-end components  Also possibly interested in Go, Rust. '''Mentors:''' [https://github.com/louridas Panos Louridas], [https://github.com/ergonomicon Georgios Tsoukalas], [https://github.com/dimitrop Dimitris Mitropoulos] =
* Libreoffice Software Development Kit 6.0
 
==== Mentors: [https://github.com/pkst-ellak Kostas Papadimas] [http://www.karounos.gr/blog/bio Theodoros Karounos] [https://www.spinellis.gr Diomidis Spinellis] ====
 
== Software components and IP management ==
 
More details in the separate page [https://ellak.gr/wiki/index.php?title=Clio Clio].
 
==== Brief Explanation ====


== Linked Economy: a framework for Economic Linked Open Data ==
A web-based system to manage data on software components and their relations.
==== Brief Explanation: ====


=  Linked Economy ([http://linkedeconomy.org/ http://linkedeconomy.org]) provides a common understanding on what data are available and how they can be orchestrated to provide relevant insights on e-government topics. The project has included data from European and other governments and can be scalable to include any similar content from around the world (e.g. UNdata, a data access system to UN databases - http://data.un.org/).    The Linked Economy platform provides an innovative and value-added resource base for research and education for information technologies in the field of public governance (e-government) employed by lawyers, social scientists and technologists  =
Nowadays every piece of software is including and using many other software components, each one coming with their own license.


==== Related GitHub repositories: ====
The goal of this project is to build a simple web system to be able to (manually) input and maintain this information!


= https://github.com/linkedecon  =
This is a brand-new project; some analysis has been done but no code is available yet.


==== Expected Results ====
==== Expected Results ====


= The main extensions should focus in three directions:  to analyse and semantically annotate new datasets according to the LinkedEconomy data model and to provide a richer set of online visualizations for our vast amount of data to extract and semantically annotate data that are included in downloaded pdfs  =
A complete web-based system to manage the above-mentioned data.
 
==== Knowledge Prerequisites ====
 
Web (any technology welcome)
 
 
==== Mentors: [https://github.com/zvr Alexios Zavras] Georgia Kapitsaki ====


==== Knowledge Prerequisites:  ====
== Files DB ==


=  ·      Knowledge Representation: XML, RDF, RDFS, OWL  ·      Query Languages: SPARQL  ·      Rules and inference engines: Jena Rules και Description Logic  ·      Semantic Web Frameworks: Jena και Virtuoso  ·      Triplestores: Virtuoso  ·      Services: Restful web services και SPARQL End Points  ·      Ontology development environments: Protégé  ·      Scalable Architectures: distributed architectures, noSQL, Linked Data  ·      Metadata manipulation & scripting languages: Java και PHP  ·      Search platform: Apache SOLR  ·      Database: Apache CouchDB  ·      Cloud Service: GRNET Cyclades (https://okeanos.grnet.gr/home/)  ·      Concurrent Versions System: Git και Bitbucket  ·      Issue Tracking Systems & collaboration: GitHub    ''' Mentors: ''' [https://github.com/vafopoulos Michalis Vafopoulos], [https://github.com/Stamelos Ioannis Stamelos]  =
More details in the separate page [https://ellak.gr/wiki/index.php?title=FilesDB FilesDB].


== Donation Box ==
==== Brief Explanation ====
==== Brief Explanation: ====


=  An open-source screen enabled donation box  The software has three items.  The Serial2DB which is a simple daemon written in python which listens on the serial port for messages from the Arduino which is connected to the coin acceptor and writes all entries to an SQL DB.  The wsServer which is a WebSocket server written in python which reads the SQL DB for new entries and then notifies any connected websocket clients of these. Additionally listens for any donations made and alters accordingly the SQL DB.  The Wordpress widgets and theme customizations. Which are used for offering an improved user experience based on the design assumption that the wordpress site is running on a 10" tablet. The theme is currently based on Influence and there are several widgets developed to enhance the sidebar. Several plug-ins needed for the current implementation and features are already under the plug-ins folder. =
A system to keep meta-data for a large number of files.


==== Related GitHub repositories: ====
The files that are to be processed can be on the filesystem, in archives, or parts of a (git) repository. The metadata are mainly information about the contents (size, type, hashes, ...), so that afterwards a number of questions can be asked about the actual files: how many files, how many files larger than X, how similar are two archives/repositories, when was a file introduced in a repository, etc.


=  https://github.com/ellak-monades-aristeias/donation-box  =
This is a brand-new project; some analysis has been done but no code is available yet.


==== Expected Results ====
==== Expected Results ====
A software to collect the data from the input files and a collection of commands to query the data. These can all be command-line utilities; it would be worthwhile to also provide a Web interface, although it is not necessary.


= Feature 1 - Improve Custom Wordpress theme  Feature 2 - Donation Box customizations in Wordpress as a plug-in  Feature 3 - P2P or Client - Server, P2P or Client - Server  Feature 4 - DonationBox online platform  Feature 5 - Hardening (Security improvements)  =
==== Knowledge Prerequisites ====


==== Knowledge Prerequisites: ====
C and/or Python; SQL; Git (and other systems); web


=  Feature 1 - Wordpress, Javascript, CSS  Feature 2 - PHP, Wordpress  Feature 3 - Client-Server Communication, SQL, REST API (Preferably: Python)  Feature 4 -  PHP, Wordpress, Javascript  Feature 5 - PHP, Python, Linux  '''Mentors:''' [https://github.com/kranidiotis Panagiotis Kranidiotis], [https://github.com/pkst-ellak Kostas Papadimas], [https://github.com/dkoukoul Dimitris Koukoulakis]  =


== Software components and IP management ==
==== Mentors: [https://github.com/zvr Alexios Zavras] [https://users.ionio.gr/~sarantos/en.html Sarantos Kapidakis] ====


= More details in the separate page [https://ellak.gr/wiki/Clio Clio].  =
== CScout AJAX-based Interface ==


==== Brief Explanation ====
==== Brief Explanation ====


=  A web-based system to manage data on software components and their relations. Nowadays every piece of software is including and using many other software components, each one coming with their own license. The goal of this project is to build a simple web system to be able to (manually) input and maintain this information!  This is a brand-new project; some analysis has been done but no code is available yet. =
CScout is a source code analyzer and refactoring browser for collections of C programs. It can process workspaces of multiple projects (a project is defined as a collection of C source files that are linked together) mapping the complexity introduced by the C preprocessor back into the original C source code files. CScout takes advantage of modern hardware (fast processors and large memory capacities) to analyze C source code beyond the level of detail and accuracy provided by current compilers and linkers. The analysis CScout performs takes into account the identifier scopes introduced by the C preprocessor and the C language proper scopes and namespaces. CScout has already been applied on projects of tens of thousands of lines to millions of lines, like the Linux, OpenSolaris, and FreeBSD kernels, and the Apache web server.
 
The aim of this project is to redesign the current web interface, which is based on HTML forms generated by C++ code, into a responsive AJAX-based one. Under this scheme the C++ code will provide JSON data through a RESTful interface, which the JavaScript front-end will use.


==== Expected Results ====
==== Expected Results ====


A complete web-based system to manage the above-mentioned data. =
A modern responsive web interface offering the current capabilities of CScout.
Ideally this would include in-line editing of identifiers.
 
==== Related GitHub repository ====
https://github.com/dspinellis/cscout


==== Knowledge Prerequisites ====
==== Knowledge Prerequisites ====


=  Web (any technology welcome)  '''Mentors:''' [https://github.com/zvr Alexios Zavras]  =
* C++
* JavaScript
* A modern development framework for interactive web content


== Files DB ==
==== Mentor: [https://www.spinellis.gr Diomidis Spinellis] [http://www.csd.auth.gr/en/staff/faculty?view=user&ro=1&id=14 Stamelos Ioannis] ====
 
== WSO2 Identity Server Userstore using Web Services  to get claims ==
 
==== Brief Explanation ====
 
WSO2 Identity Server provides secure identity management for enterprise web applications, services, and APIs by managing identity and entitlements of the users securely and efficiently. The Identity Server enables enterprise architects and developers to reduce identity provisioning time, guarantee secure online interactions, and deliver a reduced single sign-on environment. WSO2 Identity Server is fully open source and is released under Apache Software License Version 2.0.
 
The aim of this project is to create a new type of userstore where credentials will be separeted from attirbutes and attributes (claims) will be able to be configured from the web UI as a SOAP or REST web service. The end-user should be able to
* configure credentials for LDAP or JDBC
* configure web service authentication
* configure claims to consume the above web service
'''Expected Results'''
 
A new userstore where end-user can configure using existing web interface, user claims through web services  client. The appropriate changes in the source code should be uploaded in the upstream branch of the latest version (5.4.0)
 
==== Related GitHub repository ====
https://wso2.github.io/
 
https://wso2.github.io/using-maven.html
 
https://wso2.github.io/github-repositories.html#IS
 
https://wso2.github.io/github-repositories.html
 
==== Knowledge Prerequisites ====
 
* Java JSP
* JSTL
* Maven
* OSGI Framework
* A modern development framework for interactive web content
 
==== Mentors: [https://www.linkedin.com/in/kranidiotis/ Panagiotis Kranidiotis] [http://www.csd.auth.gr/en/staff/faculty?view=user&ro=1&id=14 Stamelos Ioannis] ====


More details in the separate page [https://ellak.gr/wiki/FilesDB FilesDB].  =
== WSO2 Identity Server Greek i18n translation ==


==== Brief Explanation ====
==== Brief Explanation ====


=  A system to keep meta-data for a large number of files. The files that are to be processed can be on the filesystem, in archives, or parts of a (git) repository. The metadata are mainly information about the contents (size, type, hashes, ...), so that afterwards a number of questions can be asked about the actual files: how many files, how many files larger than X, how similar are two archives/repositories, when was a file introduced in a repository, etc.  This is a brand-new project; some analysis has been done but no code is available yet=
WSO2 Identity Server provides secure identity management for enterprise web applications, services, and APIs by managing identity and entitlements of the users securely and efficiently. The Identity Server enables enterprise architects and developers to reduce identity provisioning time, guarantee secure online interactions, and deliver a reduced single sign-on environment. WSO2 Identity Server is fully open source and is released under Apache Software License Version 2.0.  
 
The aim of this project is internationalize in greek both Identity Server management ui and user dashboard.   


==== Expected Results ====
==== Expected Results ====


= A software to collect the data from the input files and a collection of commands to query the data. These can all be command-line utilities; it would be worthwhile to also provide a Web interface, although it is not necessary.  =
The appropriate locale files and the changes in the source uploaded in the upstream branch  of the latest version (5.4.0).
 
==== Related GitHub repository: ====
https://wso2.github.io/
 
https://wso2.github.io/using-maven.html
 
https://wso2.github.io/github-repositories.html#IS
 
https://wso2.github.io/github-repositories.html
 
==== Knowledge Prerequisites ====
 
* Java JSP
* JSTL
* Maven
* OSGI Framework
* Javascript
* A modern development framework for interactive web content
 
==== Mentor: [https://www.linkedin.com/in/kranidiotis/ Panagiotis Kranidiotis] [https://github.com/pkst-ellak Kostas Papadimas] ====
 
== The Transparency Program initiative - Diavgeia ==
 
===== Brief Explanation =====
 
[https://diavgeia.gov.gr/en Diavgeia] is an application with a Mysql backend that is used in order to upload administrative decisions to an online public repository.  This project participated in GSOC2017 as Diavgeia Redefined and a RDF Schema was implemented, which covers almost every possible decision type and the Notation3 (N3) syntax was adopted.
 
==== Related GitHub repositories ====
https://github.com/eellak/gsoc17-diavgeia
 
==== Expected Results ====
# Implementation of a query answering system which will translate natural language queries to SPARQL queries. This system will offer ordinary citizens a way to examine the legality and good administration of Diavgeia, without posing SPARQL queries by themselves.
# Find a way to ensure the integrity of the SPARQL endpoint. For the time being, decisions are stored both as compressed Notation3 files in the filesystem of Diavgeia and in Jena Apache’s triple store. The Stamper tool which is responsible for storing Notation3 decisions on the bitcoin blockchain, ignores the fact that these decisions are also stored on the triple store. That means that a modification/deletion of a decision from the triple store will go unnoticed. Students may have to implement a “Full Verification Procedure”. This procedure will extend the functionality of the Consistency Verifier tool, which will not only consider the computation of the Merkle Tree of Notation3 decisions, but it will also check that for each Notation3 decision, all related data is also offered through the SPARQL endpoint.
# Consistency Verifier tool makes requests to the chain.so explorer in order to read the Merkle Root and compare it to the computed Merkle Root of Notation3 decisions. One may assume that the administration of Diavgeia influences somehow the functionality of chain.so, and thus “foul play actions” may go unnoticed. Consistency Verifier may be extended and offer the option to read the root directly from the blockchain (e.g. using the bcoin.js library).
 
==== Knowledge Prerequisites ====
 
·      PHP and/or JAVA
 
·      Mysql
 
.      Blockchain
 
==== Mentors: [http://ots.gr/the-company/management/?lang=en Nikos Tsiridis],[https://github.com/kranidiotis Panagiotis Kranidiotis] ====
 
== OpenProject module to support of the PM<sup>2 </sup>methodology for project management ==
 
==== Brief Explanation: ====
PM² is a Project Management Methodology developed by the European Commission, is built on Project Management best practices and is supported by the following four (4) pillars:
 
1) a project governance model(Roles & Responsibilities)
 
2) a project lifecycle (Project Phases)
 
3) a set of processes (Project Management activities)
 
4)  set of project artefacts (templates and guidelines).
 
For a full support of  PM²  Project Management Methodology by OpenProject , new modules should be developed on OpenProject.
 
==== Expected Results: ====
Support for the process of PM²  itself in OpenProject: That is, the tool should support defining and handling the roles, phases and activities (in terms of PM 2 governance, life-cycle and processes pillars) for every project.
 
The module should sθpport:
 
Support the PM²  Governance Model (Roles ; Responsibilities)
 
Support the PM²  Phases
 
Support the PM² Artefacts
 
Supportall PM<sup>2 </sup>plans and logs such as Change Log, Communications, Issue, Project ,Quality , Requirements, Risk
 
==== Related GitHub repositories ====
https://github.com/opf/openproject
 
https://ec.europa.eu/isa2/solutions/open-pm2_en\


==== Knowledge Prerequisites ====
==== Knowledge Prerequisites ====
* ruby
* scrum
* angular
* gantt-chart
==== Mentors: [https://www.spinellis.gr Diomidis Spinellis] [http://www.csd.auth.gr/en/staff/faculty?view=user&ro=1&id=14 Stamelos Ioannis] [https://www.linkedin.com/in/vassilios-peristeras-9117222/ Vassilios Peristeras]  ====
== Sampling and volume approximation ==
==== Brief Explanation: ====
Volume computation is a fundamental problem in discrete and computational geometry with many applications in statistics, biology and economics. There is a variety of implemented solutions for that problem but they scale only to low dimensions (typically less than 10). The first implementation that scales to high (i.e. few hundred) dimensions is implemented in the C++ open-source software package VolEsti (https://github.com/vissarion/volume_approximation). The package contains algorithms for volume approximation as well as uniform sampling for polytopes. The main purpose of the current project is two-fold: first provide an non-C++ interface to the functionality of  VolEsti and second extend and improve VolEsti features.
The coding project could be divided in the following steps: 
# Understand the code structure and design of VolEsti as well as the implemented algorithms.
# Re-evaluate the dependency from some libraries. For example VolEsti depends on CGAL for linear programming but this is inefficient for high dimensions. Therefore, a goal is to rewrite parts of code to remove CGAL dependency and use an open-source library for convex optimization.
# Implement new features: new sampling and volume computation algorithms, support for polytopes given by the set of vertices of the convex hull, support for spectahedra.
# Create an non-C++ user friently interface, e.g. in python/SciPy/jupyter.
# Writing tests and documentation.
The steps are generic enough to be easily adapted to student's background and interests.
==== Expected Results: ====
A lot of users such as practicioners or researchers from a variety of scientific fields raging from [https://onlinelibrary.wiley.com/doi/10.1111/geb.12629/full biogeography] to economics need a high level programming or scripting environment to test volume computation or sampling algorithms.
==== Related GitHub repositories ====
https://github.com/vissarion/volume_approximation
==== Knowledge Prerequisites ====
* Must: C++, generic programming, linear algebra,
* Plus: optimization, computational geometry, statistics
==== Mentors:[https://vissarion.github.io Vissarion Fisikopoulos] [https://github.com/louridas Panos Louridas] [http://zaf.zafeirakopoulos.info Zafeirakis Zafeirakopoulos] [[Κατηγορία:GSOC2018]] ====
==Cryptocurrencies Wordpress plugin==
=== Brief Explanation: ===
Combination of digital and physical donation channels in a single product/plugin that will be
embeddable in both WordPress & plain HTML webpages. Usage of blockchain technology will enable
users to donate without paying any amount of money. Charities will also be able to track users who
donate via digital asset.
=== Expected Results ===
A functional WordPress plugin for Donation Box and a stand-alone module, which allows users to donate with fiat,
cryptocurrencies and buy lending his computer’s computational power (hashing power).
=== <br> Related GitHub repositories ===
https://github.com/eellak/gsoc17-donationbox
=== Mentors: [https://www.linkedin.com/in/spiroskapetanakis/ Spiros Kapetanakis] ===
== Netdata ==
==== Brief Explanation: ====
'''netdata''' is a system for '''distributed real-time performance and health monitoring.''' It provides '''unparalleled insights, in real-time''', of everything happening on the system it runs (including applications such as web and database servers), using '''modern interactive web dashboards'''. netdata is ideal for monitoring physical servers, VMs, VPS, containers, IoT.
netdata is highly active project, with hundreds of new users joining and hundreds of new installations completed, every day. netdata is also featured as one of the top github projects for 2016 (https://octoverse.github.com/).
Key components of netdata:


C and/or Python; SQL; Git (and other systems); web   '''Mentors:''' [https://github.com/zvr Alexios Zavras]  =
1. netdata daemon, its core, written in C, an asynchronous I/O, time-series database and web server, optimized for performance.


== Addition of Greek glyphs in Open Source Fonts ==
2. web dashboards, written in Javascript, HTML, CSS
==== Brief Explanation ====
 
3. external plugins, written in python, node.js, bash, C
 
netdata is the definition of full-stack development. It includes low-level C programming following embedded development principles, web-apps development for visualizing performance metrics, devops and sysadmin automation tasks for configuring health monitoring (alarms), statistical analysis of metrics, high level development for data collection from databases and third party apps, etc.


= Many of the Open Source fonts (e.g., available at [https://fonts.google.com/ https://fonts.google.com]), do not include glyphs for Greek letters and are therefore useless for using in a Greek environment.  The aim of this project is to imporve this situation and add the missing glyphs in the correct Unicode codepoints.  The exact set of fonts to be completed will be determined in discussions between the student and the mentor(s).  '''This is not a typical programming project. '''If you have never designed fonts before, it is probably not for you.  =
==== Related GitHub repositories: https://github.com/firehol/netdata ====


==== Expected Results ====
==== Expected Results ====
These are the main development directions


=  Full support for Greek text in a number of Open Source fonts. =
1. add more data collection plugins in any computer language, for monitoring the performance of popular third party applications.
 
2. add more data visualizations and dashboards.
 
3. add more health monitoring alarms, for monitoring popular applications and operating systems.
 
4. port netdata to more operating systems.
 
5. improve the distribution of netdata by setting up and maintaining binary packages for popular distributions.
 
6. improve the technical documentation of netdata (setup guides, how-tos for monitoring applications or functions, etc).
 
7. help spreading netdata, by improving the community and social media reach of netdata.
 
More ideas can be found at the netdata github repo


==== Knowledge Prerequisites ====
==== Knowledge Prerequisites ====
Depending on the task in hand, different skills are required.
For example:
1. low level C programming (POSIX compliant, including pthreads)
2. python programming
3. node.js programming
4. web-app development (javascript, html, css)
5. bash scripting
6. linux system administration
==== Mentors: [https://github.com/ktsaou Costa Tsaousis], [https://www.spinellis.gr Diomidis Spinellis] ====


= Type design, font technologies. Please note that this is a special project, where coding, in the traditional sense, will not be enough.  '''Mentors:''' [https://github.com/zvr Alexios Zavras], [https://github.com/irenevl Irene Vlachou]  =
== Python PenTest Library (PyPen) ==
 
A collection of tools supporting penetration testers


== CScout AJAX-based Interface ==
==== Brief Explanation ====
==== Brief Explanation ====


=  CScout is a source code analyzer and refactoring browser for collections of C programs. It can process workspaces of multiple projects (a project is defined as a collection of C source files that are linked together) mapping the complexity introduced by the C preprocessor back into the original C source code files. CScout takes advantage of modern hardware (fast processors and large memory capacities) to analyze C source code beyond the level of detail and accuracy provided by current compilers and linkers. The analysis CScout performs takes into account the identifier scopes introduced by the C preprocessor and the C language proper scopes and namespaces. CScout has already been applied on projects of tens of thousands of lines to millions of lines, like the Linux, OpenSolaris, and FreeBSD kernels, and the Apache web server. The aim of this project is to redesign the current web interface, which is based on HTML forms generated by C++ code, into a responsive AJAX-based one. Under this scheme the C++ code will provide JSON data through a RESTful interface, which the JavaScript front-end will use. =
Development of a Python library for penetration testers. The library will include a set of tools for performing the basic tasks for attacking a remote host. It will include reconnaissance tools such as modules that will be able to collect data for a specific target either through the web or through user input. Moreover, other tools will be developed to create custom dictionaries for username and password attacks. Other attack techniques that will be supported include DoS attack, BruteForce attack as well as Inclusion attack. The library will also include various statistical functions for extracting additional information from a captured host.
 
==== Related GitHub repositories ====
 
https://github.com/jmortega/python-pentesting


==== Expected Results ====
==== Expected Results ====


A modern responsive web interface offering the current capabilities of CScout. Ideally this would include in-line editing of identifiers. =
Development of an independent Python library which will also integrate other existing and well consolidated tools such as CUPP (already in Kali Linux) for assisting in penetration testing.
 
Proposed tools
 
A. User Reconnaissance & Information gathering
 
Α.1/ PyFBSniff: Facebook scraper
 
Α.2/ PyGenUser: Username list creation
 
Α.3/ PyDic: Dictionary creation
 
Future extensions will include tools similar to PyFBSniff for other social media such as Twitter and Google+.
 
 
B. Target System Reconnaissance & Information gathering
 
A collection of supportive tools gathering and presenting information about the Operating System and its processes.
 
 
Β.1/ PyPScanner: Port Scanner
 
Β.2/ PyPidStat: Process statistics creation
 
Β.3/ PySocketStat: Socket statistics creation
 
Β.4/ PyPipeStat: Pipe statistics creation
 
Β.5/ PyFileStat: File statistics creation
 
 
C. Attack PenTest tools
 
C.1/ PyDoS : DoS attack by flooding
 
C.2/ PyBruftp: Bruteforce attack to ftp server
 
C.3/ PyRansom: Ransomware script
 
The library will be expandable in order to incorporate more tools in the future.
 
 
==== Knowledge Prerequisites ====
 
Python fluency
 
OS basics
 
Networking basics
 
PenTest basics
 
 
==== Mentors [https://www.researchgate.net/profile/Antonios_Andreatos Antonios Andreatos], [https://www.linkedin.com/in/panagiotis-karampelas-5868002/ Panagiotis Karampelas], [http://www.cslab.ece.ntua.gr/~pavlatos/ Christos Pavlatos] ====


==== Related GitHub repository: ====
== <span lang="en-US">University Calendar of Courses and Venues</span> ==
 
==== <span lang="en-US">Brief Explanation</span> ====
<span lang="en-US">The Aristotle University of Thessaloniki has developed an open source solution for publishing a dynamic university calendar for students and faculty (see working instance </span>http://class.auth.gr<span lang="en-US">). It allows public view of Department calendars, Venue calendars and personal views of student / faculty calendars, based on courses they have registered with, or currently assigned to teach, respectively. It provides info on courses and venues reserved for sessions and
exports of personal calendar in iCal format, and also serves as a
general course catalog with generalized searches on faculty and
courses.</span>
 
==== List of tasks for the project:====
 
Abstract the local db interface that draws info on courses and faculty from the student information system, in order to make it independent of the specific institution (AUTh) and more widely available for use elsewhere</span>
Porting of student / faculty interface code from Angular 1.5 to Angular 6
 
Extend functionality to personal notifications for certain events (e.g. cancellation of class, rescheduling)
 
Support for a multilingual front-end (currently only in Greek)
 
Port it as a moodle plugin
 
 
==== Related GitHub repositories ====
https://github.com/auth-it-center/class.auth.gr-front-end


= https://github.com/dspinellis/cscout  =
==== Expected Results ====
To produce a solution for a university calendar system that allows easy adoption for any Higher Education institution (in Greece and abroad), integrating an existing student information system (course and faculty assignments) with scheduling of classes and venues.


==== Knowledge Prerequisites ====
==== Knowledge Prerequisites ====
<span lang="en-US">Javascript</span>


=
<span lang="en-US">Angular</span>


* C++
<span lang="en-US">JSON</span>
* JavaScript
 
* A modern development framework for interactive web content '''Mentor:''' [https://www.spinellis.gr/ Diomidis Spinellis]   =
<span lang="en-US">PHP, MySQL databases</span>
 
<span lang="en-US">GraphQL for API implementation (optional)</span>
 
==== Mentors: ====
 
  [https://www.linkedin.com/in/polyxeni-malasioti/ Polyxeni Malasioti], [https://www.linkedin.com/in/differentreality/ Stella Rouzi], [https://www.linkedin.com/in/spyridon-xanthopoulos-33555966/ Spyros Xanthopoulos] & [https://www.linkedin.com/in/dimitris-daskopoulos-98028815a/ Dimitris Daskopoulos]
 
[[Κατηγορία:GSOC]]

Τελευταία αναθεώρηση της 12:11, 5 Φεβρουαρίου 2020

GFOSS project proposals for GSOC 2018

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

Proposed Projects for GSOC 2018. The GSOC Projects implemented in 2017 are available here.

Using Weld for Cryptography in the Zeus e-voting application (https://zeus.grnet.gr).

Brief Explanation:

Zeus is an e-voting application, in use by thousands of people. It ensures anonymity and verifiability of the entire voting process by using strong cryptographic primitives. In particular, encrypted voter ballots are shuffled and anonymised in a verifiable way before decryption. This is computationally costly, so the Zeus team is constantly looking for ways to improve performance.

Expected Results

Cryptographic operations are very costly and efficient implementations are essential for real-world production use. For example, when using Python, the underlying cryptography is typically implemented in C/C++, with suitable bindings in Python, so that the actual computations happen at a much greater speed than that afforded by the Python interpreter. In this context, in last year’s GSoC we implemented a Zero-Knowledge Shuffle mechanism in C/C+ and then made it available in Python through Cython. Now we want to try a new optimisation, offered by the use of the Weld framework (http://weld.stanford.edu/). Weld offers speed improvements by minimising the number of calls, and thus memory copy costs, between languages, in our case, between Python and C. In this GSoC project we want to implement our shuffle operations using Weld, measure the performance benefits, and offer it as a possible optimisation in Zeus.

Related GitHub repositories

https://github.com/grnet/zeus

Knowledge Prerequisites

  • Python
  • C, C++
  • Cryptography

Knowledge of Rust is a plus (Weld is implemented in Rust).

Mentors: Panos Louridas,Georgios Tsoukalas

Addition of Greek glyphs in Open Source Fonts

Brief Explanation

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

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

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

Expected Results

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

Knowledge Prerequisites

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

Mentors: Alexios ZavrasIrene Vlachou Εmilios Τheofanous

Adding Greek language on NLP library Spacy.io

Brief Explanation:

Spacy is an open-source Python library for advanced Natural Language Processing. It's a very powerful and modern tool for applying NLP to real world problems. Among other functionality it provides Named Entity Recognition, deep learning integration, part-of-speech tagging and includes built in visualizers for syntax and NER. Spacy supports more than 25 languages but not Greek. Adding the Greek language will provide massive improvements on applying NLP on the Greek language, and allow for actions as Named entity recognition and Part-of-speech tagging

The procedure is well specified on https://spacy.io/usage/adding-languages, custom language data (stop words, tokenizer exceptions, punctuation rules etc) need to be added and tested.

Expected Results

The vocabulary, syntax, entities and word vectors for the Greek language. These will be produced with Spacy/gensim, after the language information is successfully added.

The Greek language model with then be added to Spacy.io for usage as a supported language model.

As a real world scenario in order to test the language model, analysis on a large number of Official Greek Government's Gazette (FEK-ΦΕΚ) is proposed, in order to extract entities and categorize these documents.

Related  repositories

https://github.com/explosion/spaCy

Knowledge Prerequisites

Strong knowledge of the Greek language, Python language fluency and Regular Expressions knowledge are necessary for this.

Mentors: Markos Gogoulos Panos Louridas

Extraction of Responsibilities per unit in public sector organizations from the Government Gazette

Brief Explanation:

The objective of this project is to extend existing Government Gazette(GG) text mining code with Named Entity Recognition features that will allow the identification of Government Directorates and Divisions with the responsibilities assigned to them and the types of services they are required to provide according with their legal framework published in http://www.et.gr/ and the extraction of this information with related metadata (decision number, date of the GG issue). The aim is to link the management units with assigned roles and services per unit(Directorates, Divisions & Sections) and codify this specific information, which is hidden in the GG issue raw text. For this, the PDFs must be downloaded, converted into text and cleaned. Then, syntactic-based heuristics and/or machine learning techniques must be applied to identify specific Named Entities types with references to assigned responsibilities-services per unit(Directorates, Divisions & Sections) and links between the two must be extracted. Metadata concerning the GG issue and decision and/or law number will be also associated with the extracted association. The produced associations will be extracted in a machine usable/structured format (e.g. as RDF triples).


Expected Results

  • A module for manually annotating related entities and responsibilities-services assignment sections in raw text
  • A NER module, with trained models for detecting  Governmental Directions and Divisions in raw text
  • A module that associates entities with responsibilities and extracts related metadata from the GG issue

Related  repositories

https://github.com/arisp8/gazette-analysis


Knowledge Prerequisites

Python, Java, Machine Learning

Mentors: Iraklis Varlamis, Sarantos Kapidakis, Dionysios Moschopoulos Theodoros Karounos

Open source plugin for math and algebra in Moodle

Brief Description

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

Expected Results

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

Related repositories

https://github.com/moodle/moodle

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


We will utilize the work implemented by CERN with CERNBOX

Knowledge Prerequisites

XHTML

CSS

Javascript

Κnowledge of math and algebra

Mentors: Avgoustos Tsinakos, Diomidis Spinellis

Epoptes

Brief Explanation:

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

Related GitHub repositories

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

Expected Results

Rewrite Epoptes with Python 3 support

Gtk3 with GObject Introspection instead of pygtk2

Improvements in the code structure ( Break existing code into python modules/packages)

Knowledge Prerequisites

Python

GTK

Mentors: Fotis Tsiamis, Avgoustos Tsinakos

Government Gazette text mining, cross linking, and codification

Brief Explanation

The objective of this project is to extend existing Government Gazette text mining code to cross-link legal texts and detect the ministers that sign them. For this the text PDFs need to be downloaded and converted into text. Then, heuristic rules must be applied to detect references to other legal texts, which will be converted into hypertext form. Similar techniques will be used to detect the competent ministers. Two possible extensions are proposed. First, detect amendments incorporated within another law. Second, implement a prototype for editing a law in its codified form (e.g. on GitHub) and automatically creating from the changes the text to be legislated (the differences from the original law).

Related GitHub repositories

https://github.com/arisp8/gazette-analysis

Expected Results

Detection of references to other laws; detection of competent ministers; codified legislation prototype

Knowledge Prerequisites

Python

Mentors: Diomidis Spinellis Alexios Zavras Sarantos Kapidakis Dionysios Moschopoulos

Scriptum

Brief Explanation

SCRIPTUM is a Web based Open-Source application that will be used in order to eliminate bureaucracy and document loss, providing the Administration Office of the Greek Republic Vice President an extensible and integrated environment for document publishing, categorization and administration. The overall project involves two basic sub projects:

  1. e-Protocol: for handling incoming/outgoing mail messages and their attachments. Using this system, the e-Protocol users can benefit from the advanced OpenKm properties in order to manipulate the messages. This subsystem provides an easy way to complete forms relevant to the incoming/outgoing mail, form letters from templates and maintains a document repository equipped with document based security.
  2. Case Management: this sub system provides a well established work flow for treating documentation relevant to specific organization 's operations. Assignment Operations provides a standard way for managing and directing specific actions to be taken from the employees Administration Office of the Greek Republic Vice President of in order to complete organization 's operations.

These systems use as a document repository the document management platform OpenKM.

Related GitHub repositories

https://github.com/eellak/scriptum

Expected Results

  1. Interoperability with egov services in Greece and European Union ISA
  2. containerization of scriptum


Knowledge Prerequisites

· Java

- Maven

- JPA 2.1

- ZK 8.x

- Spring 4.x


Mentors: Nick Koskinas,Panagiotis Kranidiotis

Development of an open source Greek Spelling and Grammatical dictionary

Brief Explanation

Development of a spelling- grammatical tool that can work both as a LibreOffice extension and as a stand-alone web service by reusing the AfterTheDeadline API in order to be reused into a wide range of packages and platforms (Firefox, Chrome, Thunderbird, TinyMCE / Wordpress, jquery, etc.).

Expected results

  • Extraction of Greek words from platforms with open licences (Wikipedia, Wikinews - wiki dictionary- Wikipedia revision history etc)
  • Creation of a morphological dictionary of Modern Greek which will include all the extracted  verbs, adjectives into finite state transducers (for the implementation of morphological analyzer and morphological word generator through the tools of Apertium and HFST).
  • Implementation of the tool:

in python3/c+/c++.

as LibreOffice extension

in  (REST/JSON)

Knowledge Prerequisites

  • C
  • C++
  • Python
  • SQL

Mentors: Kostas Papadimas Diomidis Spinellis

Libreoffice customization and creation of legal Templates for LibreOffice

Brief Explanation

LibreOffice customization in order to achieve a "familiar" look and menus for users that convert from MS Office 2013, and creation of specific templates for the Greek Legal system. The customization and templates should follow the development guidelines at https://wiki.documentfoundation.org/Development/GetInvolved .

Expected results

Customization and Templates should be accompanied with detailed documentation and instructions for developers and end users.

Knowledge Prerequisites

  • C
  • C++
  • Java
  • Python
  • Bash
  • Perl
  • Libreoffice Software Development Kit 6.0

Mentors: Kostas Papadimas Theodoros Karounos Diomidis Spinellis

Software components and IP management

More details in the separate page Clio.

Brief Explanation

A web-based system to manage data on software components and their relations.

Nowadays every piece of software is including and using many other software components, each one coming with their own license.

The goal of this project is to build a simple web system to be able to (manually) input and maintain this information!

This is a brand-new project; some analysis has been done but no code is available yet.

Expected Results

A complete web-based system to manage the above-mentioned data.

Knowledge Prerequisites

Web (any technology welcome)


Mentors: Alexios Zavras Georgia Kapitsaki

Files DB

More details in the separate page FilesDB.

Brief Explanation

A system to keep meta-data for a large number of files.

The files that are to be processed can be on the filesystem, in archives, or parts of a (git) repository. The metadata are mainly information about the contents (size, type, hashes, ...), so that afterwards a number of questions can be asked about the actual files: how many files, how many files larger than X, how similar are two archives/repositories, when was a file introduced in a repository, etc.

This is a brand-new project; some analysis has been done but no code is available yet.

Expected Results

A software to collect the data from the input files and a collection of commands to query the data. These can all be command-line utilities; it would be worthwhile to also provide a Web interface, although it is not necessary.

Knowledge Prerequisites

C and/or Python; SQL; Git (and other systems); web


Mentors: Alexios Zavras Sarantos Kapidakis

CScout AJAX-based Interface

Brief Explanation

CScout is a source code analyzer and refactoring browser for collections of C programs. It can process workspaces of multiple projects (a project is defined as a collection of C source files that are linked together) mapping the complexity introduced by the C preprocessor back into the original C source code files. CScout takes advantage of modern hardware (fast processors and large memory capacities) to analyze C source code beyond the level of detail and accuracy provided by current compilers and linkers. The analysis CScout performs takes into account the identifier scopes introduced by the C preprocessor and the C language proper scopes and namespaces. CScout has already been applied on projects of tens of thousands of lines to millions of lines, like the Linux, OpenSolaris, and FreeBSD kernels, and the Apache web server.

The aim of this project is to redesign the current web interface, which is based on HTML forms generated by C++ code, into a responsive AJAX-based one. Under this scheme the C++ code will provide JSON data through a RESTful interface, which the JavaScript front-end will use.

Expected Results

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

Related GitHub repository

https://github.com/dspinellis/cscout

Knowledge Prerequisites

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

Mentor: Diomidis Spinellis Stamelos Ioannis

WSO2 Identity Server Userstore using Web Services to get claims

Brief Explanation

WSO2 Identity Server provides secure identity management for enterprise web applications, services, and APIs by managing identity and entitlements of the users securely and efficiently. The Identity Server enables enterprise architects and developers to reduce identity provisioning time, guarantee secure online interactions, and deliver a reduced single sign-on environment. WSO2 Identity Server is fully open source and is released under Apache Software License Version 2.0.

The aim of this project is to create a new type of userstore where credentials will be separeted from attirbutes and attributes (claims) will be able to be configured from the web UI as a SOAP or REST web service. The end-user should be able to

  • configure credentials for LDAP or JDBC
  • configure web service authentication
  • configure claims to consume the above web service

Expected Results

A new userstore where end-user can configure using existing web interface, user claims through web services client. The appropriate changes in the source code should be uploaded in the upstream branch of the latest version (5.4.0)

Related GitHub repository

https://wso2.github.io/

https://wso2.github.io/using-maven.html

https://wso2.github.io/github-repositories.html#IS

https://wso2.github.io/github-repositories.html

Knowledge Prerequisites

  • Java JSP
  • JSTL
  • Maven
  • OSGI Framework
  • A modern development framework for interactive web content

Mentors: Panagiotis Kranidiotis Stamelos Ioannis

WSO2 Identity Server Greek i18n translation

Brief Explanation

WSO2 Identity Server provides secure identity management for enterprise web applications, services, and APIs by managing identity and entitlements of the users securely and efficiently. The Identity Server enables enterprise architects and developers to reduce identity provisioning time, guarantee secure online interactions, and deliver a reduced single sign-on environment. WSO2 Identity Server is fully open source and is released under Apache Software License Version 2.0.

The aim of this project is internationalize in greek both Identity Server management ui and user dashboard.

Expected Results

The appropriate locale files and the changes in the source uploaded in the upstream branch of the latest version (5.4.0).

Related GitHub repository:

https://wso2.github.io/

https://wso2.github.io/using-maven.html

https://wso2.github.io/github-repositories.html#IS

https://wso2.github.io/github-repositories.html

Knowledge Prerequisites

  • Java JSP
  • JSTL
  • Maven
  • OSGI Framework
  • Javascript
  • A modern development framework for interactive web content

Mentor: Panagiotis Kranidiotis Kostas Papadimas

The Transparency Program initiative - Diavgeia

Brief Explanation

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

Related GitHub repositories

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

Expected Results

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

Knowledge Prerequisites

· PHP and/or JAVA

· Mysql

. Blockchain

Mentors: Nikos Tsiridis,Panagiotis Kranidiotis

OpenProject module to support of the PM2 methodology for project management

Brief Explanation:

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

1) a project governance model(Roles & Responsibilities)

2) a project lifecycle (Project Phases)

3) a set of processes (Project Management activities)

4) set of project artefacts (templates and guidelines).

For a full support of PM² Project Management Methodology by OpenProject , new modules should be developed on OpenProject.

Expected Results:

Support for the process of PM² itself in OpenProject: That is, the tool should support defining and handling the roles, phases and activities (in terms of PM 2 governance, life-cycle and processes pillars) for every project.

The module should sθpport:

Support the PM² Governance Model (Roles ; Responsibilities)

Support the PM² Phases

Support the PM² Artefacts

Supportall PM2 plans and logs such as Change Log, Communications, Issue, Project ,Quality , Requirements, Risk

Related GitHub repositories

https://github.com/opf/openproject

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

Knowledge Prerequisites

  • ruby
  • scrum
  • angular
  • gantt-chart

Mentors: Diomidis Spinellis Stamelos Ioannis Vassilios Peristeras

Sampling and volume approximation

Brief Explanation:

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

The coding project could be divided in the following steps: 

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

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

Expected Results:

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

Related GitHub repositories

https://github.com/vissarion/volume_approximation

Knowledge Prerequisites

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

Mentors:Vissarion Fisikopoulos Panos Louridas Zafeirakis Zafeirakopoulos

Cryptocurrencies Wordpress plugin

Brief Explanation:

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

Expected Results

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


Related GitHub repositories

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

Mentors: Spiros Kapetanakis

Netdata

Brief Explanation:

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

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

Key components of netdata:

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

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

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

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

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

Expected Results

These are the main development directions

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

2. add more data visualizations and dashboards.

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

4. port netdata to more operating systems.

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

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

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

More ideas can be found at the netdata github repo

Knowledge Prerequisites

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

For example:

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

2. python programming

3. node.js programming

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

5. bash scripting

6. linux system administration

Mentors: Costa TsaousisDiomidis Spinellis

Python PenTest Library (PyPen)

A collection of tools supporting penetration testers

Brief Explanation

Development of a Python library for penetration testers. The library will include a set of tools for performing the basic tasks for attacking a remote host. It will include reconnaissance tools such as modules that will be able to collect data for a specific target either through the web or through user input. Moreover, other tools will be developed to create custom dictionaries for username and password attacks. Other attack techniques that will be supported include DoS attack, BruteForce attack as well as Inclusion attack. The library will also include various statistical functions for extracting additional information from a captured host.

Related GitHub repositories

https://github.com/jmortega/python-pentesting

Expected Results

Development of an independent Python library which will also integrate other existing and well consolidated tools such as CUPP (already in Kali Linux) for assisting in penetration testing.

Proposed tools

A. User Reconnaissance & Information gathering

Α.1/ PyFBSniff: Facebook scraper

Α.2/ PyGenUser: Username list creation

Α.3/ PyDic: Dictionary creation

Future extensions will include tools similar to PyFBSniff for other social media such as Twitter and Google+.


B. Target System Reconnaissance & Information gathering

A collection of supportive tools gathering and presenting information about the Operating System and its processes.


Β.1/ PyPScanner: Port Scanner

Β.2/ PyPidStat: Process statistics creation

Β.3/ PySocketStat: Socket statistics creation

Β.4/ PyPipeStat: Pipe statistics creation

Β.5/ PyFileStat: File statistics creation


C. Attack PenTest tools

C.1/ PyDoS : DoS attack by flooding

C.2/ PyBruftp: Bruteforce attack to ftp server

C.3/ PyRansom: Ransomware script

The library will be expandable in order to incorporate more tools in the future.


Knowledge Prerequisites

Python fluency

OS basics

Networking basics

PenTest basics


Mentors Antonios Andreatos, Panagiotis Karampelas, Christos Pavlatos

University Calendar of Courses and Venues

Brief Explanation

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

List of tasks for the project:

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

Porting of student / faculty interface code from Angular 1.5 to Angular 6

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

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

Port it as a moodle plugin


Related GitHub repositories

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

Expected Results

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

Knowledge Prerequisites

Javascript

Angular

JSON

PHP, MySQL databases

GraphQL for API implementation (optional)

Mentors:

Polyxeni Malasioti, Stella Rouzi, Spyros Xanthopoulos & Dimitris Daskopoulos