Difference between revisions of "GSOC2017 Ideas"
Line 283: | Line 283: | ||
== Software components and IP management == | == Software components and IP management == | ||
− | + | ===Brief Explanation === | |
A web-based system to manage data | A web-based system to manage data | ||
Line 314: | Line 314: | ||
== Files DB == | == Files DB == | ||
− | + | ===Brief Explanation === | |
A system to keep meta-data for a large number of files. | A system to keep meta-data for a large number of files. |
Revision as of 11:22, 6 March 2017
GFOSS will be a mentor- organisation for GSOC 2017. Students interested to participate should check which of the following projects fits their interests and skills. Practical information for students
Proposed Projects for GSOC 2017
Synnefo[edit | edit source]
Brief Explanation:[edit | edit source]
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:[edit | edit source]
https://github.com/grnet/synnefo
Expected Results:[edit | edit source]
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:[edit | edit source]
· Python
· Ganeti
· OpenStack API
· Ceph, Gluster, DRBD
Mentors: Panos Louridas, Panagiotis Kranidiotis,Georgios Tsoukalas
The Transparency Program initiative - Diavgeia[edit | edit source]
Brief Explanation:[edit | edit source]
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.
Related GitHub repositories:[edit | edit source]
https://github.com/eellak/opengov_diavgeia
Expected Results:[edit | edit source]
Rewrite the backend application in a modern framework
Create forms to write online the decisions and acts and produce fully metadata documents of structured data
Knowledge Prerequisites:[edit | edit source]
· PHP
· Mysql
Mentors: Alexios Zavras,Panagiotis Kranidiotis, Diomidis Spinellis
Agora[edit | edit source]
Brief Explanation:[edit | edit source]
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[edit | edit source]
Automation to the installation process.
Packaging to main linux distributions.
Creating national and international (ie europeans) profiles of workflow process.
Related GitHub repositories:[edit | edit source]
https://github.com/eellak/opengov_agora
Knowledge Prerequisites:[edit | edit source]
PHP - Yii Framwork
Java - Spring Framework
Mysql
Basic Legals about procurements
Mentors:Alexios Zavras,Panagiotis Kranidiotis
Netdata[edit | edit source]
Brief Explanation:[edit | edit source]
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:[edit | edit source]
https://github.com/firehol/netdata
Expected Results[edit | edit source]
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:[edit | edit source]
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
Zeus[edit | edit source]
Brief Explanation:[edit | edit source]
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:[edit | edit source]
Expected Results:[edit | edit source]
Mixnet implementation and integration
Knowledge Prerequisites:[edit | edit source]
· Python
· C, C++
· Cryptography
Also possibly interested in Go, Rust
Mentors: Panos Louridas, Georgios Tsoukalas
Linked Economy: a framework for Economic Linked Open Data[edit | edit source]
Brief Explanation:[edit | edit source]
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:[edit | edit source]
Expected Results[edit | edit source]
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:[edit | edit source]
· 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
Donation Box[edit | edit source]
Brief Explanation:[edit | edit source]
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.
Related GitHub repositories:[edit | edit source]
https://github.com/ellak-monades-aristeias/donation-box
Expected Results[edit | edit source]
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:[edit | edit source]
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: Panagiotis Kranidiotis, Kostas Papadimas, Dimitris Koukoulakis
Software components and IP management[edit | edit source]
Brief Explanation[edit | edit source]
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[edit | edit source]
A complete web-based system to manage the above-mentioned data.
Knowledge Prerequisites[edit | edit source]
Web (any technology welcome)
Mentors: Alexios Zavras
Files DB[edit | edit source]
Brief Explanation[edit | edit source]
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[edit | edit source]
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[edit | edit source]
C and/or Python; SQL; Git (and other systems); web
Mentors: Alexios Zavras