GSOC2018 Projects: Διαφορά μεταξύ των αναθεωρήσεων
Χωρίς σύνοψη επεξεργασίας |
|||
| Γραμμή 87: | Γραμμή 87: | ||
===== Brief Explanation: ===== | ===== Brief Explanation: ===== | ||
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 acts. Each 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. | 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 acts. Each 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. | ||
This project participated in GSOC 2017, as Diavgeia Redefined. Diavgeia Redefined implemented a RDF Schema, which covers almost every possible decision type In this project, was added the Notation3 (N3) syntax. As a result, these decisions can be stored to a triplestore and thus citizens can examine government's transparency, by making interesting SPARQL queries. | |||
==== Related GitHub repositories: ==== | ==== Related GitHub repositories: ==== | ||
https://github.com/eellak/ | https://github.com/eellak/gsoc17-diavgeia | ||
==== Expected Results: ==== | ==== Expected Results: ==== | ||
# '''Bitcoin-Website Validator''': Create a tool which ensures that all proof of burn blockchain transactions of Diavgeia are consistent with the merkle trees uploaded on Diavgeia's website. | |||
# '''Bitcoin-SPARQL Validator''': Find an efficient way to prove that all decisions that have been commited to blockchain are also available from the SPARQL endpoint. | |||
# '''Improve Visualizer''': Visualizer does not visualize rdf properties for each different decision type. | |||
# '''Study scalability of SPARQL endpoint''': As it was stated, Diavgeia hosts millions of decisions. A benchmark of the scalability of the Apache Jena and Fuseki is crucial. | |||
==== Knowledge Prerequisites: ==== | ==== Knowledge Prerequisites: ==== | ||
Αναθεώρηση της 12:13, 18 Ιανουαρίου 2018
GFOSS project proposals for GSOC 2018. Students interested to participate should check which of the following projects fits their interests and skills. Practical information for students
Proposed Projects for GSOC 2018
LTSP- Epoptes
Brief Explanation:
The Linux Terminal Server Project adds thin client support to Linux servers. LTSP is a flexible, cost effective solution that is empowering schools, businesses, and organizations all over the world to easily install and deploy thin clients.
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!
Related GitHub repositories:
https://www.github.com/Epoptes/epoptes
https://code.launchpad.net/ltsp
Example Improvements:
Mentors
Synnefo
Brief Explanation:
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). Synnefo manages multiple Ganeti clusters at the backend for handling low-level VM operations and can use different storage backends.
Related GitHub repositories:
https://github.com/grnet/synnefo
Example Improvements:
Provide Remote Access via SPICE
SPICE [1] is an opensource solution for remote desktop. It is supported by Qemu, Ganeti, and HTML5.
Synnefo can use SPICE in two ways:
- To open a console to a VM through the web browser for inspection or troubleshooting
- To offer remote desktop sessions to the user of the VM
The expected tasks are:
- 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.
- 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
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:
- Find/customize/create suitable rescue images for various OSes, and the tools needed to maintain them.
- Design the mechanism that sets and unsets a VM in RESCUE state.
- Implement the RESCUE mechanism and the attaching of the rescue image.
Other Issues of Interest:
- Telemetry (implementation of OpenStack Telemetry / Ceilometer)
- Multidatacenter integration
- Physical node administration Management Web Console (Add, remove, update a physical node)
- Network Management Console
Knowledge Prerequisites:
· Python
· Ganeti
· OpenStack API
· Ceph, Gluster, DRBD
Mentors: Panos Louridas,Georgios Tsoukalas
The Transparency Program initiative - Diavgeia
Brief Explanation:
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 acts. Each 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.
This project participated in GSOC 2017, as Diavgeia Redefined. Diavgeia Redefined implemented a RDF Schema, which covers almost every possible decision type In this project, was added the Notation3 (N3) syntax. As a result, these decisions can be stored to a triplestore and thus citizens can examine government's transparency, by making interesting SPARQL queries.
Related GitHub repositories:
https://github.com/eellak/gsoc17-diavgeia
Expected Results:
- Bitcoin-Website Validator: Create a tool which ensures that all proof of burn blockchain transactions of Diavgeia are consistent with the merkle trees uploaded on Diavgeia's website.
- Bitcoin-SPARQL Validator: Find an efficient way to prove that all decisions that have been commited to blockchain are also available from the SPARQL endpoint.
- Improve Visualizer: Visualizer does not visualize rdf properties for each different decision type.
- Study scalability of SPARQL endpoint: As it was stated, Diavgeia hosts millions of decisions. A benchmark of the scalability of the Apache Jena and Fuseki is crucial.
Knowledge Prerequisites:
· PHP
· Mysql
Mentors: Alexios Zavras,Panagiotis Kranidiotis, Dionysis Zindros
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:
- 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.
- 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:
Rewrite the backend application in a modern framework, ec blockchain
Create forms to write online the decisions and acts and produce fully metadata documents of structured data
Knowledge Prerequisites:
· Java
- Maven
- JPA 2.1
- ZK 8.x
- Spring 4.x
Expected Results:
Mentors: Alexios Zavras,Panagiotis Kranidiotis
Agora
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.
Expected Results
Automation to the installation process.
Packaging to main linux distributions.
Creating national and international (ie europeans) profiles of workflow process.
Related GitHub repositories:
https://github.com/eellak/opengov_agora
Knowledge Prerequisites:
PHP - Yii Framwork
Java - Spring Framework
Mysql
Basic Legals about procurements
Mentors:Alexios Zavras,Panagiotis Kranidiotis
Netdata
Brief Explanation:
netdata is a system for distributed real-time performance and health monitoring. It provides unparalleled insights, in real-time, of everything happening on the system it runs (including applications such as web and database servers), using modern interactive web dashboards. netdata is ideal for monitoring physical servers, VMs, VPS, containers, IoT.
netdata is highly active project, with hundreds of new users joining and hundreds of new installations completed, every day. netdata is also featured as one of the top github projects for 2016 (https://octoverse.github.com/).
Key components of netdata:
1. netdata daemon, its core, written in C, an asynchronous I/O, time-series database and web server, optimized for performance.
2. web dashboards, written in Javascript, HTML, CSS
3. external plugins, written in python, node.js, bash, C
netdata is the definition of full-stack development. It includes low-level C programming following embedded development principles, web-apps development for visualizing performance metrics, devops and sysadmin automation tasks for configuring health monitoring (alarms), statistical analysis of metrics, high level development for data collection from databases and third party apps, etc.
Related GitHub repositories:
https://github.com/firehol/netdata
Expected Results
These are the main development directions
1. add more data collection plugins in any computer language, for monitoring the performance of popular third party applications.
2. add more data visualizations and dashboards.
3. add more health monitoring alarms, for monitoring popular applications and operating systems.
4. port netdata to more operating systems.
5. improve the distribution of netdata by setting up and maintaining binary packages for popular distributions.
6. improve the technical documentation of netdata (setup guides, how-tos for monitoring applications or functions, etc).
7. help spreading netdata, by improving the community and social media reach of netdata.
More ideas can be found at the netdata github repo
Knowledge Prerequisites:
Depending on the task in hand, different skills are required.
For example:
1. low level C programming (POSIX compliant, including pthreads)
2. python programming
3. node.js programming
4. web-app development (javascript, html, css)
5. bash scripting
6. linux system administration
Mentors: Costa Tsaousis, Diomidis Spinellis
Linked Economy: a framework for Economic Linked Open Data
Brief Explanation:
Linked Economy (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
Related GitHub repositories:
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
Knowledge Prerequisites:
· 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: Michalis Vafopoulos, Ioannis Stamelos
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
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
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