Google Summer of Code 2024 proposed ideas: Διαφορά μεταξύ των αναθεωρήσεων

Από Ελεύθερο Λογισμικό / Λογισμικό ανοιχτού κώδικα
Μετάβαση στην πλοήγηση Πήδηση στην αναζήτηση
Χωρίς σύνοψη επεξεργασίας
 
(35 ενδιάμεσες εκδόσεις από 6 χρήστες δεν εμφανίζονται)
Γραμμή 4: Γραμμή 4:


For practical information, developers should visit this '''[https://summerofcode.withgoogle.com/how-it-works page]'''.
For practical information, developers should visit this '''[https://summerofcode.withgoogle.com/how-it-works page]'''.
== EDGAR-CRAWLER: Democratizing accessibility to Financial NLP documents ==
==== Brief Explanation ====
Natural Language Processing (NLP) faces big challenges in the field of business and finance since financial text data is often locked behind paywalls, making it hard to get the information we need. This problem highlights why it is so important to automate data collection from free sources, like EDGAR,  the U.S. Securities and Exchange Commission's public database. EDGAR contains documents about publicly traded stocks from companies in the U.S., like Microsoft, Google, or Amazon. Our existing software, EDGAR-CRAWLER, tackles this problem by automatically downloading and “cleaning” financial documents, mainly through the use of regular expressions, and then making such data available in an easy-to-use JSON format for NLP pipelines and applications. EDGAR-CRAWLER, with over 190 stars on Github, is the go-to toolkit for making financial data accessible to everyone. However, currently, it is only limited to one type of company filing, the annual reports (10-K filings). By adding support for more types of documents, EDGAR-CRAWLER plans to make financial information even more accessible, playing a vital role in the progress of financial NLP and open data.
==== Expected Results ====
• Extend EDGAR-CRAWLER to fetch more types of US company filings like quarterly reports (10-Q) and current reports (8-K), using string-searching algorithms like regular expressions
• Write documentation for these new features
• Develop unit tests for these new features
==== Duration of the Project ====
(350 hours).
==== Related repositories ====
https://github.com/nlpaueb/edgar-crawler/
==== Knowledge Prerequisites ====
• Proficiency in Python and Software Development 
• Familiarity with regular expressions and Natural Language Processing (NLP) 
• Experience in web scraping and data processing (beautifulsoup, pandas)
• Interest in Machine Learning (ML)
==== Mentors ====
Lefteris Loukas, Ion Androutsopoulos
== GlossAPI ==
====Brief Explanation====
GlossAPI is an open source project seeking to develop a standard open access corpus of the Greek language, and benchmark it against existing and to-be-developed language models, with the objective of providing an upstream service to the Greek tech community.
The project is named after a portmandeau of the Greek word for "language" and "API" which creates a visual resemblance to the word Glossary in Greek.
This is to express our objective to provide an index of the Greek language via flexible programing interfaces.
Greek is a language that is under-represented in existing LLMs, while it has a complex history, grammar and writing system. Our trials with existing models have shown lack of syntactic and semantic knowledge of advanced Greek and its nuances, and we have put forth a number of analyses showing that this poses a risk for digital divides, language extinction, and subpar experience for users of public services.
To our knowledge other LLM projects that tackle the problem of the Greek language are either proprietary, closed code, narrow scope, or otherwise unfit for our purpose which is to provide publicly available, fully open source language models with respect to all code/weights/procedures/data.
We reach out and bring together people that have the expertise, the passion, the collections, or the hardware, to take part in this endeavor, that will help the Greek stratup/tech scene catch up with the rapid developments in downstream applications that are now common place for developers of English language generative models.
====Expected Results====
The project will result to an Open Source Corpus, representative of the Greek language and its different varieties. At first emphasis will be given to the formal varieties used in government, education and the law. Additionally, we want to represent, in a subsequent training stage, a number of basic knowledge domains to an "undergraduate degree" level. The datasets will be versioned and benchmarked against different models and tokenizers. We also need to develop a sufficient set of evaluation tasks (such as Factual QA - Greek). Finally a couple of foundation models of different architectures will be fitted onto the dataset and the evaluation suite, and published to the community under an open source licence. With these moves we expect to pollinate the Greek tech ecosystem with reliable, inexpensive, and extensible models and datasets, that will help the Greek Open Source AI scence thrive. All data and models will be accompanied by thorough documentation and guides, to ensure replicability and reusability of the results.
====Duration of the Project====
350 hrs
====Related Repositories====
https://github.com/eellak/glossAPI/
https://github.com/eellak/glossAPI/wiki
====Knowledge Prerequisites====
Corpus Annotation for Language Models
Quantitative Corpus Linguistics or Natural Language Processing
Python with transformers library, sci-kit learn, numpy, pandas and streamlit, langchain or similar
Mathematical statistics or similar discipline
Django knowledge is good to have
====Mentors====
N. Giallousi, A. Melidis, Greek Free Open Source Software/Hardware Alliance
== Greeklish-to-Greek: Development of an open-source and state-of-the-art toolkit ==
==== Brief Explanation ====
"Greeklish” is a way of writing Greek with the commonly used Latin alphabet instead of the Greek alphabet (think of “kalimera” instead of “καλημέρα”), and has been widely used by Greek speakers for decades due to early technological limitations in supporting Greek characters. Its ease of use for informal digital communication, such as on forums or in comments, allows for quick language switching without changing any keyboard input, and hides spelling errors. However, Greeklish complicates the development of Natural Language Processing (NLP) tools for the Greek language because Machine Learning (ML) models are trained on standard Greek, not Greeklish. Most existing Greeklish-to-Greek toolkits are limited, rule-based, and closed-source. Our team has researched and developed state-of-the-art Greeklish-to-Greek methods utilizing Transformer NLP models (paper available at: https://drive.google.com/file/d/1mmCaEyue8xWcEEgDTrRv9gzvAGEFgohl/view?usp=sharing). The purpose of the project is to develop an open-source, user-friendly Python toolkit, based on our existing research so that the community can benefit from it.
The GSOC contributor will work in close collaboration between helvia.ai (https://helvia.ai/) and the AUEB NLP Group (http://nlp.cs.aueb.gr/software.html), leveraging both industrial and academic expertise to tackle these NLP challenges.
==== Expected Results ====
• Development of a user-friendly Python wrapper based on our best Greeklish-to-Greek NLP model 
• Documentation and unit testing of the library
• Development of new methods for Greeklish-to-Greek conversion, utilizing more recent and promising Large Language Models (LLMs), such as Meta’s LLaMA2 or Mistral models
==== Duration of the Project ====
(350 hours).
==== Related repositories ====
While the proposed Greeklish toolkit can be developed independently, it could also be integrated as an extra functionality to the mentors’ affiliated current state-of-the-art Greek NLP toolkit: https://github.com/nlpaueb/gr-nlp-toolkit
==== Knowledge Prerequisites ====
• Advanced Python Programming and Software Engineering
• Deep Learning for NLP and familiarity with related frameworks (e.g., PyTorch, HuggingFace)
==== Mentors ====
John Pavlopoulos (AUEB), Ion Androutsopoulos (AUEB), Stavros Vassos (helvia.ai), Lefteris Loukas (helvia.ai & AUEB)
== Label Buddy 3.0: Automated audio-tagging using transfer learning ==
==== Brief Explanation ====
Label Buddy is an open-source audio annotation tool created during GSoC 2021 and extended during GSoC 2022. It aims to make the annotation process easy, and simple with the help of AI Assistance tools and at the same time offers a well-defined manager-annotator-reviewer system. The purpose of this project is to investigate and integrate  Multi-Modal Annotation Support in data other than only sound with the use of Large Language Models (LLMs) and Active Learning for Model Improvement on the already existing models.
==== Expected Results. ====
1.) Add OpenAPI support; the ability to upload an OpenApi document and convert it to Flexbench test scenarios (ML can help!) 2.) Anonymization feature for exchanged data in requests and responses (ML can help!) 3.) Aesthetic and UX/UI fixes in desktop app 4.) Fixes to existing bugs 5.) Improve documentation
==== Duration of the Project ====
(350 hours).
==== Related repositories ====
https://github.com/eellak/gsoc2022-Label-buddy
==== Knowledge Prerequisites ====
Machine Learning (ML) frameworks, Python, Django, VanillaJS, HTML
==== Mentors: ====
Pantelis Vikatos, Giannis Prokopiou
== Enhancements for Flexbench: OpenAPI Integration and Anonymization using Machine Learning (ML) ==
==== Brief Explanation ====
Flexbench is a fully customizable NodeJS application, generating simulated HTTP traffic. It can be used as a standalone script, desktop-app* and server* to simulate traffic with specific characteristics, such as read/write ratio, duration, number of requests to generate, in/out traffic throttling and more.
It is a forked project from the http-traffic-simulator npm package, which was developed to provide simulated throttled http traffic for stress and load testing purposes, towards specific http endpoints. It utilizes the nodejs cluster module to generate http requests, by spawning multiple workers (balanced over the system cores) in the cluster, responsible to create clients that generate requests.
<nowiki>*</nowiki>During the GSoC-2022 period, along with the standalone script version, desktop and server apps were developed, and major fixes were applied.
==== Expected Results. ====
1.) Add OpenAPI support; the ability to upload an OpenApi document and convert it to Flexbench test scenarios (ML can help!) 2.) Anonymization feature for exchanged data in requests and responses (ML can help!) 3.) Aesthetic and UX/UI fixes in desktop app 4.) Fixes to existing bugs 5.) Improve documentation
==== Duration of the Project ====
(350 hours).
==== Related repositories ====
[https://github.com/flexivian/flexbench/tree/develop https://github.com/flexivian/flexbench/tree/develop ,][https://flexivian.github.io/flexbench/ https://flexivian.github.io/flexbench/]
==== Knowledge Prerequisites ====
NodeJS, js, typescript, Html, Css, React, Electron, docker, Machine Learning, OpenAPI
==== Mentors: ====
Ioannis Skitsas (iskitsas@gmail.com), Marios Karagiannopoulos (mariosk@gmail.com)
== New open data sources for Alexandria3k ==
==== Brief Explanation ====
The alexandria3k package supplies a library and a command-line tool providing efficient relational query access to diverse publication open data sets. The largest one is the entire Crossref data set (157 GB compressed, 1 TB uncompressed). This contains publication metadata from about 134 million publications from all major international publishers with full citation data for 60 million of them. Alternatively, works can be selected from the PubMed data set which comprises more than 36 million citations for biomedical literature from MEDLINE, life science journals, and online books, with rich domain-specific metadata, such as MeSH indexing, funding, genetic, and chemical details. In addition, the Crossref and PubMed data sets can be linked with the ORCID summary data set (25 GB compressed, 435 GB uncompressed), containing about 78 million author records, the United States Patent Office issued patents (11 GB compressed, 115 GB uncompressed), containing about 5.4 million records, as well as data sets of funder bodies, journal names, open access journals, and research organizations.
==== Expected Results. ====
Implementation of four new data sources added to the eight existing ones
==== Duration of the Project ====
(350 hours).
==== Related repositories ====
https://github.com/dspinellis/alexandria3k
==== Knowledge Prerequisites ====
Python, SQL, Unix command-line
==== Mentors: ====
Diomidis Spinellis
== MD-Attractor ==
==== Brief Explanation ====
MD-Attractor is an open-source project designed to serve as a unified aggregator for music-related data sourced from various music platforms such as Spotify, Deezer, Apple Music, and more.
The primary objective of this project is to provide a centralized hub for collecting and  analyzing data from diverse media sources, offering users a comprehensive view of diverse music data sources.
===== Expected Results.  =====
1. An extension of data sources and usage parameters. 2. Metadata artists and song analysis option. 3  Creation of artist's ego-networks and similarity component.
==== Duration of the Project ====
Depending on the proposal
==== Related repositories ====
https://github.com/sfendourakis/MD-Attractor
==== Knowledge Prerequisites ====
Python, APIs, Visualization
==== Mentors: ====
Panagiotis Sfendourakis, Elektra Bilali Simou


== Exploring and Abstracting Triplestore Alternatives ==
== Exploring and Abstracting Triplestore Alternatives ==
Γραμμή 9: Γραμμή 208:
==== Brief Explanation ====
==== Brief Explanation ====


===== Objective =====
==== Objective ====
The primary objective of this project is to explore, analyze, and abstract various triplestore alternatives. The project aims to provide young programmers with a comprehensive understanding of different back-end alternatives that allow for storing data in triple format, commonly known as triplestores.
The primary objective of this project is to explore, analyze, and abstract various triplestore alternatives. The project aims to provide young programmers with a comprehensive understanding of different back-end alternatives that allow for storing data in triple format, commonly known as triplestores.


===== Background =====
==== Background ====
Triplestores are a type of database specialized in storing triples, a data structure for representing information in a subject-predicate-object format. They are crucial in semantic web technologies, such as RDF, SPARQL, and OWL. However, there are numerous triplestore alternatives available, each with its own strengths and weaknesses.
Triplestores are a type of database specialized in storing triples, a data structure for representing information in a subject-predicate-object format. They are crucial in semantic web technologies, such as RDF, SPARQL, and OWL. However, there are numerous triplestore alternatives available, each with its own strengths and weaknesses.


===== Project Description =====
==== Project Description ====
This project will involve a detailed exploration of various triplestore alternatives. The participants will perform rudimentary tests and benchmarks on these alternatives to understand their performance, scalability, and other key features.
This project will involve a detailed exploration of various triplestore alternatives. The participants will perform rudimentary tests and benchmarks on these alternatives to understand their performance, scalability, and other key features.


The ultimate goal is to develop a library that can act as an abstraction layer for these triplestore alternatives. This library will "hide" the underlying implementation, allowing developers to switch between different triplestores without changing their application code. This abstraction layer can be compared to a library abstracting various specific relational database management systems, all providing very similar functionality, like supporting SQL.
The ultimate goal is to develop a library that can act as an abstraction layer for these triplestore alternatives. This library will "hide" the underlying implementation, allowing developers to switch between different triplestores without changing their application code. This abstraction layer can be compared to a library abstracting various specific relational database management systems, all providing very similar functionality, like supporting SQL.


===== Methodology =====
==== Methodology ====


''Research:'' Identify and study various triplestore alternatives. Understand their architecture, features, and limitations.
''Research:'' Identify and study various triplestore alternatives. Understand their architecture, features, and limitations.
Γραμμή 32: Γραμμή 231:
''Documentation:'' Document the findings and the usage of the developed library.
''Documentation:'' Document the findings and the usage of the developed library.


===== Expected Outcome =====
==== Expected Outcome ====
By the end of the project, we expect to have a well-documented library that can act as an abstraction layer for various triplestore alternatives. This will provide developers with the flexibility to choose the most suitable triplestore for their specific needs without having to modify their application code.
By the end of the project, we expect to have a well-documented library that can act as an abstraction layer for various triplestore alternatives. This will provide developers with the flexibility to choose the most suitable triplestore for their specific needs without having to modify their application code.


===== Conclusion =====
==== Conclusion ====
This project will not only enhance the understanding of participants about triplestore alternatives but also equip them with the skills to develop an abstraction layer, thereby broadening their programming skills and knowledge.
This project will not only enhance the understanding of participants about triplestore alternatives but also equip them with the skills to develop an abstraction layer, thereby broadening their programming skills and knowledge.


Γραμμή 44: Γραμμή 243:
New project, no existing repo available.
New project, no existing repo available.


===== Information links =====
==== Information links ====
- [https://en.wikipedia.org/wiki/Triplestore Triplestore]
- [https://en.wikipedia.org/wiki/Triplestore Triplestore]
- [https://en.wikipedia.org/wiki/Semantic_triple Triples]
- [https://en.wikipedia.org/wiki/Semantic_triple Triples]
Γραμμή 60: Γραμμή 259:
==== Brief Explanation ====
==== Brief Explanation ====


===== Objective =====
==== Objective ====
The primary objective of this project is to develop a comprehensive set of tests for quality control on digital typefaces, with a particular focus on Greek characters. The project aims to ensure the consistency of typeface design, especially in terms of height, shape, composites, ascenders, descenders, spacing, and kerning between Latin and Greek characters.
The primary objective of this project is to develop a comprehensive set of tests for quality control on digital typefaces, with a particular focus on Greek characters. The project aims to ensure the consistency of typeface design, especially in terms of height, shape, composites, ascenders, descenders, spacing, and kerning between Latin and Greek characters.


===== Background =====
==== Background ====
Digital typefaces play a crucial role in the readability and aesthetics of digital content. However, inconsistencies in typeface design, especially between different scripts like Latin and Greek, can lead to visual discomfort and confusion. Quality control in digital typefaces is therefore essential to ensure a consistent and pleasant reading experience.
Digital typefaces play a crucial role in the readability and aesthetics of digital content. However, inconsistencies in typeface design, especially between different scripts like Latin and Greek, can lead to visual discomfort and confusion. Quality control in digital typefaces is therefore essential to ensure a consistent and pleasant reading experience.


===== Project Description =====
==== Project Description ====
This project will involve the development of a series of tests using Font Bakery or a similar tool. These tests will compare the height and shape of similarly shaped Latin and Greek letters, such as Latin A and Greek Alpha.
This project will involve the development of a series of tests using Font Bakery or a similar tool. These tests will compare the height and shape of similarly shaped Latin and Greek letters, such as Latin A and Greek Alpha.


Further tests will be performed on composites, ascenders, descenders, spacing, and kerning between Latin and Greek characters. The goal is to identify any inconsistencies and provide recommendations for improvements.
Further tests will be performed on composites, ascenders, descenders, spacing, and kerning between Latin and Greek characters. The goal is to identify any inconsistencies and provide recommendations for improvements.


===== Methodology =====
==== Methodology ====


''Research:'' Study the design principles of Latin and Greek typefaces. Identify the key parameters for comparison, such as height, shape, composites, ascenders, descenders, spacing, and kerning.
''Research:'' Study the design principles of Latin and Greek typefaces. Identify the key parameters for comparison, such as height, shape, composites, ascenders, descenders, spacing, and kerning.
Γραμμή 85: Γραμμή 284:
''Documentation:'' Document the findings, the developed tests, and the recommendations.
''Documentation:'' Document the findings, the developed tests, and the recommendations.


===== Expected Outcome =====
==== Expected Outcome ====
By the end of the project, we expect to have a comprehensive set of tests for quality control on digital typefaces, especially for Greek characters. These tests will help typeface designers and developers ensure the consistency of their designs, thereby improving the readability and aesthetics of digital content.
By the end of the project, we expect to have a comprehensive set of tests for quality control on digital typefaces, especially for Greek characters. These tests will help typeface designers and developers ensure the consistency of their designs, thereby improving the readability and aesthetics of digital content.


===== Conclusion =====
==== Conclusion ====
This project will not only enhance the quality of digital typefaces but also contribute to the body of knowledge in the field of typeface design. It will provide valuable insights into the design principles of Latin and Greek characters and help ensure their consistency in digital typefaces.
This project will not only enhance the quality of digital typefaces but also contribute to the body of knowledge in the field of typeface design. It will provide valuable insights into the design principles of Latin and Greek characters and help ensure their consistency in digital typefaces.


Γραμμή 97: Γραμμή 296:
New project, no existing repo available.
New project, no existing repo available.


===== Information links =====
==== Information links ====
- [https://font-bakery.readthedocs.io/en/latest/ Font Bakery documentation]
- [https://font-bakery.readthedocs.io/en/latest/ Font Bakery documentation]
- [https://github.com/fonttools/fontbakery Font Bakery source repo]
- [https://github.com/fonttools/fontbakery Font Bakery source repo]
Γραμμή 108: Γραμμή 307:




== Development of an interactive flow visualization tool for visual / blockly programming, for educational use. ==
== Development and Enhancement of the Cloud-Based FOSSBot Platform  ==


==== Brief Explanation ====
==== Brief Explanation ====
Programming with visual / blockly languages (scratch, makecode, etc) is quite common in the young ages. A more intuitive approach to this kind of programming is the creation of many threads/scenarios that communicate through messages. Yet, in many cases the resulting flow is tricky to follow, but very useful from an educational perspective.
The evolution of the DIY robot kit for educators, initiated in GSoC 2019 with Christos Chronis, has significantly progressed over the years, culminating in a 3D printable, modular, and low-cost educational robot. Over the last five years, contributors from GSOC and the open source community have enriched this project with a programming stack compatible with Google Blockly, native Python through Monaco, and a Docker-based deployment system. At the same time, the initial DIY robot kit from GSOC 2019 transformed into the FOSSBot, and more educators understand and use this open-source solution to teach STEM.
We will make a tool to reveal this flow, mainly the inter-thread communication. The input programming language will be processed as json structures, that could fold and unfold in the visualization. Communication among different threads and components will be shown explicitly. Different visualization methods will be available, that will fit to many programming languages.
 
For GSoC 2023, the focus was on shifting the programming stack to the cloud, addressing issues like connectivity, updates, and the rising costs of Single Board Computers. Another notable addition was the web-based simulator, which allowed educators to test and use the robot virtually, reducing cost barriers and hardware requirements. In the following months, the platform will be available to all through the infrastructure of GFOSS, and at the same time, organized workshops will help make more people aware of the robot. Finally, in the last two years, two scientific publications were released, and the project started to attract the interest of the academic community.
 
GSoC 2024 Objectives
 
In 2024, our goal is to further enhance this cloud-based platform by:
 
Performance Optimization: Improving both front-end and back-end performance for a seamless user experience.
Development of Cooperative Modes: Enabling multiple robots to interact and collaborate in shared tasks or scenarios, fostering teamwork and advanced programming skills.
Educator's Content Creation and Upload System: Developing a system where educators can create, share, and upload educational material, facilitating a dynamic and evolving educational environment.
Custom Scene Creation for Godot Simulator: Integrating an interface for creating new, customized scenes in the existing Godot-based simulator, enabling tailored educational experiences.
Platform Support for Physical Hardware: Introducing programming support for physical devices like the FOSSBot, Arduino, and MicroPython-supported microcontrollers, broadening the scope of practical applications and hands-on learning.
Continuous Integration and Deployment (CI/CD) Enhancements: Streamlining updates and maintenance through advanced GitHub automation and cloud deployment strategies.
Extensive Documentation: Ensuring comprehensive documentation to facilitate ease of use and adaptability for educators and developers.
 
==== Expected Results.  ====
A robust, cloud-based platform offering a wide range of educational and programming possibilities.
Enhanced user experience with improved performance and new features.
Greater accessibility and cost-effectiveness for educators worldwide.
 
==== Duration of the Project ====
(350 hours).
 
 
==== Related repositories ====
https://github.com/eellak/gsoc2019-diyrobot
https://github.com/eellak/fossbot
https://github.com/chronis10/fossbot-app
https://github.com/eellak/fossbot-platform
https://github.com/eellak/fossbot-web-simulator
 
==== Knowledge Prerequisites ====
React.js
Python
Flask API / FastAPI
SQLAlchemy
Godot (not mandatory)
JavaScript
Docker
Git
 
==== Related publications ====
Chronis  C., & Varlamis I. (2022). FOSSBot: An Open Source and Open Design Educational Robot. Electronics, 11(16), 2606. https://www.mdpi.com/2079-9292/11/16/2606
Kazazis G., Chronis C., Diou C. & Varlamis I. Development and evaluation of Reinforcement Learning models for the FOSSBot Open-Source educational robot, Pan-Hellenic Conference on Progress in Computing and Informatics, ACM 2023 (Under Publication) 
 
 
==== Mentors: ====
Christos Chronis, Iraklis Varlamis
 
 
 
== Enabling Apothesis to support atomic layer deposition and etching processes  ==
 
==== Brief Explanation ====
Αpothesis is an open source software for designing, simulating and analyzing deposition processes. It is based on Kinetic Monte Carlo method and its two main components are the lattice (simple cubic, HPC etc) where particular processes (adsorption, desorption, surface rection and diffusion) are performed.  Up until now Apothesis has been used in various applications (see for example https://iopscience.iop.org/article/10.1088/1361-651X/ace276/meta). However, there is a lack of generalized software for atomic layer deposition/etching (ALD/ALE) processes. ALD/ALE are based on pulses performing  over sequentially over a certain period of time (see https://www.frontiersin.org/articles/10.3389/fphy.2021.631918/full for more details). That said, the purpose of this project is to enable Apothesis to handle ALD/ALE cases. For that, there various parts of Apothesis that need to be changed with the most basic being:
1. Enabling Apothesis to read the lattice from a file. Thus creating a generalized reader for hard copy lattices.
2. Creating the sequentially calls to simulate ALD/ALE processes.
3. Design the output of the ALD/ALE process.
 
 
==== Expected Results.  ====
The results from a simple case of ALD in a simple cubic lattice.
 
 
==== Duration of the Project ====
(350 hours).
 
==== Related repositories ====
https://github.com/nixeimar/Apothesis
 
==== Knowledge Prerequisites ====
C++, desing patters (factory pattern) and basic physics in deposition processes
 
==== Mentors: ====
Cheimarios Nikolaos, Vissarion Fysikopoulos
 
 
 
== eCodeOrama, an educational interactive flow visualization tool for mit scratch programs ==
 
==== Brief Explanation ====
The project will create a interactive tool to extract, visualize graphically and edit (to improve the presentation of) the layout of the flow of code in blocks / scripts in a mit scratch program and their interaction with any messages or other external events. The tool will use rules to decide on many layout parameters (e.g. the position of the code blocks in the layout, the colors used, etc) but the user will be able to overwrite the default choices. The presentation will be compatible with the codeOrama code layout specification.
The tool will also promote code understanding, especially to young students that use scratch, and will include debugging aids.
The students can use this flow to better visualize and understand their program, to explain it to others, to debug it and to design extensions and modifications.
 
 
==== Expected Results ====
A tool to visualize and edit the layout of the event based script flow of a scratch program, keeping it compatible with the codeOrama code layout specification.
 
==== Duration of the Project ====
350 hours
 
==== Related repositories ====
https://github.com/sarantos40/eCodeOrama
 
==== Knowledge Prerequisites ====
python, mit scratch, gui development
 
==== Mentors: ====
Sarantos Kapidakis (sarantos.kapidakis@gmail.com), Chrysovalantis Sfyrakis




== Enhancement of SmAuto DSL and integration into HomeAssistant ==
==== Brief Explanation ====
Smart environments are becoming quite popular in the home setting consisting of a broad range of connected devices. While offering a novel set of possibilities, this also contributes to the complexity of the environment, posing new challenges to allowing the full potential of a sensorized home to be made available to users. SmAuto is a Domain Specific Language (DSL) that enables users to program complex automation scenarios, for connected IoT devices in smart environments, that go beyond simple tasks. SmAuto lacks extra features like invocation of REST/MQTT services, time delays etc., thus it should be expanded towards this direction. Furthermore, HomeAssistant would benefit from the integration of a DSL like SMAuto for rapidly developing and deploying automations, using the entities existing in a smart environment.
==== Expected Results ====
==== Expected Results ====
Creation of an application to visualize code
In the context of this project, we desire to expand the SmAuto DSL with the following features: a) adding virtual entities, like REST calls and MQTT RPCs, so as for the automations to be able to access information from external services, b) incorporate auxiliary concepts like Delay, Conditions/Switches, or Compute nodes and c) generalize the language’s Condition concept. Furthermore, the integration of SmAuto and HomeAssistant should occur, by creating a new open-source HA plugin, where each user can declare SmAuto automations and deploy them locally in HA.


==== Duration of the Project ====
==== Duration of the Project ====
Γραμμή 122: Γραμμή 424:


==== Related repositories ====
==== Related repositories ====
The project will make a  new github repo.
https://github.com/robotics-4-all/smauto, https://www.home-assistant.io/
Related links are:
https://eproceedings.epublishing.ekt.gr/index.php/cetpe/article/view/3690
https://github.com/dgmid/CodeOverview
https://blog.ouseful.info/2016/02/18/blockpy-python-blockly-environment/
https://scratch.mit.edu/
https://developers.google.com/blockly/


==== Knowledge Prerequisites ====
==== Knowledge Prerequisites ====
Required: Python and other programming languages
Required: Python, Software engineering, IoT concepts, Unix/Linux. Desired: Model Driven Engineering, HomeAssistant, Docker
 


==== Mentors: ====
==== Mentors: ====
Sarantos Kapidakis (sarantos.kapidakis@gmail.com)
Konstantinos Panayiotou, Emmanouil Tsardoulias, Andreas Symeonidis


== HELP ==
== Creating a factory pattern for handling lattices in Apothesis.  ==


==== Brief Explanation ====
==== Brief Explanation ====
Brief explanation=HELP is a location based mobile application (LBMA)
Apothesis is a generalized software for designing, simulating and analyzing deposition processes. It is based on the kinetic Monte Carlo method. That said, it consists of  two main components; a lattice (e.g. simple cubic, HPC etc) and the processes (adsorption, desorption, diffusion and surface reactions) performed in this lattice. Currently, the lattices are hard coded inside Apothesis making it difficult to add new ones easily. This proposal is focuses on creating a factory pattern which be used as a guide for adding lattices in Apothesis. Then this will be used to incorporate 2D lattices (like graphene) inside Apothesis.
with integrated emergency communications service, which includes an
inbound and an outbound component similar to 112 or 911. You may use it
with or without dialing 112 or 911 for free in any emergency anywhere
(within available mobile network reception). The inbound component
allows you to receive warnings or assistance of any kind and possibly
allowing remote usage for the phone to light the flashlight for example
or send a voice message.  The outbound component will sent automatically
location and other data if they are available (from any connected device
like smartwatches or other health / sport devices) via multiple
technologies and communication channels in case of imminent or occurring
incident or dangerous situation constituting an immediate threat to your
health and safety, so that you can report the incident and be reached
and receive any kind of assistance.
This application uses location to provide products or services based on
information obtained from one or more smart devices. However,
implementation and execution of these services may raise users privacy
concerns related to sensitive information being handled so it has to be
a FLOSS core application with possible plugins / add-ons for medical or
other kind of assistance.
On a later phase this application can be installed by default in any
smartphone or similar device and will be available on any emergency even
without SIM like 112/911.


==== Expected Results ====
==== Expected Results ====
A location based mobile application (LBMA) with integrated emergency communications service
The factory pattern source code and a simple example for incorporating a graphene lattice.


==== Duration of the Project ====
==== Duration of the Project ====
175 hours
350 hours


==== Related repositories ====
==== Related repositories ====
New project, no existing repo available.
https://github.com/nixeimar/Apothesis


==== Knowledge Prerequisites ====
==== Knowledge Prerequisites ====
Native iOS app and / or native Android app
C++, design (factory pattern)
development skills.




==== Mentors: ====
==== Mentors: ====
Christos Iossifidis
Nikolaos Cheimarios, Christina-Anna Gatsiou
 
 
== MyUni  ==
 
==== Brief Explanation ====
Currently there is a University App called MyUoM for Greek universities in https://my.uom.gr/ (followed by an effort in University of West Attica, https://iam.uniwa.gr/. This app is official but it lacks features(e.g. login) and a proper backend with an architecture that will allow different implementations for Universities. In this project we want to add a CMS for info that is changing frequently and a backend that fetches realtime info from the official websites. We want to unify those efforts and make it easier for other universities to join.
 
 
 
==== Expected Results.  ====
1. Create a structure that can be used by different university structures and can be fully customised based on the needs of each institution.
2. The application should be fully customisable in terms of interface, content and functionality.
3. The content can be personalized and the home page can display tiles selected by each institution and display content that will be created as a page (wordpress type)
4. Adding a students portal where all the student's data, personal and any other information will be collected, in order to be used as a reference point.
5. Add an admin panel from where the appearance and content of the institution's application will be defined.
6. Create a BackEnd system to manage all the data described above.
7. Setup a backend that fetches information from official sources and static information(e.g. map images) to make the frontend lighter.
8. Rewrite in Typescript for maintainability
9. Creation of a custom CMS (consisting of FrontEnd & BackEnd) for data changing frequently
10. Create a system where the application is shared across domains by creating an instance.
 
 
==== Duration of the Project ====
Depending on the scope
 
==== Related repositories ====
https://github.com/Open-Source-UoM/MyUoM
 
==== Knowledge Prerequisites ====
 
    • React.js
    • Express.js (for BackEnd)
    • MySQL (for BackEnd)
    • JavaScript
    • TypeScript
    • Next.js (optional)
 
 
==== Mentors: ====
Anastasios Tsalmas tsalmanastasios@gmail.com, Efstathios Iosifidis eiosifidis@gmail.com
 
== DIY IoT Physics Experiments for education ==
 
====Brief Explanation====
 
Remote physics experiments for students in all the educational levels are the second best to hands on experiments.  Especially for students who temporarily cannot attend school or in cases like the Covid-19 and the lockdowns. In many practical cases they are the only alternative, as they are available 24/7, they can involve dangerous materials or conditions, they can be accessed from anywhere and any device, they require less maintenance, have lower cost, can be easily modified, or arranged to perform another experiment, and are less probable to be damaged.  They are in line with the modern way of performing experiments, as it is desirable to have as less as possible direct contact with the experiments and use them on-line.  Examples include on-line telescopes and electronic microscopes.  This is possible due to the automation; data acquisition and manipulation of the experimental data is done using a computer or a microcomputer.  In this way students need not take pain stacking notes, especially for experiments that take a lot of time to collect data, sometimes days or months.  Students can concentrate on data processing, on the analysis of the results and arrive at scientific valid conclusions.  Our laboratory has set up many remote experiments and has experience of more than 10 years in designing, setting, and servicing remote experiments.  Our remote experiments are based on Arduino and readily available sensors and actuators. The aim of the present project is to design and implement a way to make the sensors and the actuators to form an IoT local network so that it will be easier to easily utilize them in different experiments and to build new experiments.  The IoT sensors and actuators will be DIY and based on open software.  The applicant will program the ESP8266 to receive data from the sensor and transmit the data through MQTT to ThingsBoard. Similarly for an actuator the ESP8266 will receive MQTT data from ThingsBoard. The applicant will prepare five DIY IoT sensors and five actuators. ThingsBoard will provide users with the visual representation of the data and the control of the experimental setup through dashboards.  The applicant will prepare five dashboards for five corresponding experiments.
 
====Expected Results====
 
At the end of the present GSoC project the open source for five IoT DIY sensors and five actuators will be designed and implemented.  Also, five Dashboards on the open source IoT platform ThingsBoard for five corresponding experiments will be designed and implemented.  A list of the electronic components, instructions for the assembly and documentation for the software will be prepared.
 
 
====Duration of the Project====
Medium Size - 175 hours
 
====Related Repositories====
 
https://github.com/totheworld2004/DIY-Physics-IoT
 
 
====Knowledge Prerequisites====
How to program ESP8266, MQTT to transfer and receive data and design and implement Dashboards on a IoT platform
 
====Mentors====
 
Hariton Polatoglou and Panagiotis Koustoumpardis
 
 
== LearniTron ==
 
====Brief Explanation====
 
LearniTron is an educational 3D printed mars rover style robot, with AI-Computer vision capabilities, such as: Face detection,
People counting, Hand Tracking, Object Recognition, Traffic Signs Recognition, etc.
Robotic-sensor capabilities, such as: object avoidance and finally NLP capabilities, such as voice commands recognition, chatbot
responses. All data will be uploaded to a web server along side with the chatbot.
People like students can interact with it, reprogram it and experiment, to lean and enhance their knowledge on technologies,
as AI, Computer Vision, Robotics
====Expected Results====
 
By the end of the program,the design of  the 3d models of the robot, code some AI programs if not all, and
assemble the robot’s parts and sensors, and finally code the web server to store data. The robot to be able to interact with
people and achieve an amount of autonomy via AI and sensors
 
 
====Duration of the Project====
Large Size - 350 hours
 
====Related Repositories====
 
 
 
 
====Knowledge Prerequisites====
The technologies are: Python, OpenCV, Tensorflow, Keras, C, Arduino, Raspberry
 
Pi, Flask, HTML5, CSS3, JS
 
====Mentors====


Kostas Papadimas and Alexandros Melidis
[[Κατηγορία:GSOC2024]]
[[Κατηγορία:GSOC2024]]
[[Κατηγορία:GSOC]]
[[Κατηγορία:GSOC]]

Τελευταία αναθεώρηση της 17:51, 2 Μαΐου 2024

Contributors interested to participate should check which of the following projects fits their interests and skills.

Τo communicate with the mentors and ask questions about the projects, students should subscribe to this list and post relevant questions. Please follow the Proposal Template

For practical information, developers should visit this page.

EDGAR-CRAWLER: Democratizing accessibility to Financial NLP documents

Brief Explanation

Natural Language Processing (NLP) faces big challenges in the field of business and finance since financial text data is often locked behind paywalls, making it hard to get the information we need. This problem highlights why it is so important to automate data collection from free sources, like EDGAR, the U.S. Securities and Exchange Commission's public database. EDGAR contains documents about publicly traded stocks from companies in the U.S., like Microsoft, Google, or Amazon. Our existing software, EDGAR-CRAWLER, tackles this problem by automatically downloading and “cleaning” financial documents, mainly through the use of regular expressions, and then making such data available in an easy-to-use JSON format for NLP pipelines and applications. EDGAR-CRAWLER, with over 190 stars on Github, is the go-to toolkit for making financial data accessible to everyone. However, currently, it is only limited to one type of company filing, the annual reports (10-K filings). By adding support for more types of documents, EDGAR-CRAWLER plans to make financial information even more accessible, playing a vital role in the progress of financial NLP and open data.

Expected Results

• Extend EDGAR-CRAWLER to fetch more types of US company filings like quarterly reports (10-Q) and current reports (8-K), using string-searching algorithms like regular expressions

• Write documentation for these new features

• Develop unit tests for these new features

Duration of the Project

(350 hours).

Related repositories

https://github.com/nlpaueb/edgar-crawler/

Knowledge Prerequisites

• Proficiency in Python and Software Development

• Familiarity with regular expressions and Natural Language Processing (NLP)

• Experience in web scraping and data processing (beautifulsoup, pandas)

• Interest in Machine Learning (ML)

Mentors

Lefteris Loukas, Ion Androutsopoulos


GlossAPI

Brief Explanation

GlossAPI is an open source project seeking to develop a standard open access corpus of the Greek language, and benchmark it against existing and to-be-developed language models, with the objective of providing an upstream service to the Greek tech community. The project is named after a portmandeau of the Greek word for "language" and "API" which creates a visual resemblance to the word Glossary in Greek. This is to express our objective to provide an index of the Greek language via flexible programing interfaces.

Greek is a language that is under-represented in existing LLMs, while it has a complex history, grammar and writing system. Our trials with existing models have shown lack of syntactic and semantic knowledge of advanced Greek and its nuances, and we have put forth a number of analyses showing that this poses a risk for digital divides, language extinction, and subpar experience for users of public services.

To our knowledge other LLM projects that tackle the problem of the Greek language are either proprietary, closed code, narrow scope, or otherwise unfit for our purpose which is to provide publicly available, fully open source language models with respect to all code/weights/procedures/data. We reach out and bring together people that have the expertise, the passion, the collections, or the hardware, to take part in this endeavor, that will help the Greek stratup/tech scene catch up with the rapid developments in downstream applications that are now common place for developers of English language generative models.


Expected Results

The project will result to an Open Source Corpus, representative of the Greek language and its different varieties. At first emphasis will be given to the formal varieties used in government, education and the law. Additionally, we want to represent, in a subsequent training stage, a number of basic knowledge domains to an "undergraduate degree" level. The datasets will be versioned and benchmarked against different models and tokenizers. We also need to develop a sufficient set of evaluation tasks (such as Factual QA - Greek). Finally a couple of foundation models of different architectures will be fitted onto the dataset and the evaluation suite, and published to the community under an open source licence. With these moves we expect to pollinate the Greek tech ecosystem with reliable, inexpensive, and extensible models and datasets, that will help the Greek Open Source AI scence thrive. All data and models will be accompanied by thorough documentation and guides, to ensure replicability and reusability of the results.


Duration of the Project

350 hrs

Related Repositories

https://github.com/eellak/glossAPI/ https://github.com/eellak/glossAPI/wiki


Knowledge Prerequisites

Corpus Annotation for Language Models Quantitative Corpus Linguistics or Natural Language Processing Python with transformers library, sci-kit learn, numpy, pandas and streamlit, langchain or similar Mathematical statistics or similar discipline Django knowledge is good to have

Mentors

N. Giallousi, A. Melidis, Greek Free Open Source Software/Hardware Alliance


Greeklish-to-Greek: Development of an open-source and state-of-the-art toolkit

Brief Explanation

"Greeklish” is a way of writing Greek with the commonly used Latin alphabet instead of the Greek alphabet (think of “kalimera” instead of “καλημέρα”), and has been widely used by Greek speakers for decades due to early technological limitations in supporting Greek characters. Its ease of use for informal digital communication, such as on forums or in comments, allows for quick language switching without changing any keyboard input, and hides spelling errors. However, Greeklish complicates the development of Natural Language Processing (NLP) tools for the Greek language because Machine Learning (ML) models are trained on standard Greek, not Greeklish. Most existing Greeklish-to-Greek toolkits are limited, rule-based, and closed-source. Our team has researched and developed state-of-the-art Greeklish-to-Greek methods utilizing Transformer NLP models (paper available at: https://drive.google.com/file/d/1mmCaEyue8xWcEEgDTrRv9gzvAGEFgohl/view?usp=sharing). The purpose of the project is to develop an open-source, user-friendly Python toolkit, based on our existing research so that the community can benefit from it. The GSOC contributor will work in close collaboration between helvia.ai (https://helvia.ai/) and the AUEB NLP Group (http://nlp.cs.aueb.gr/software.html), leveraging both industrial and academic expertise to tackle these NLP challenges.

Expected Results

• Development of a user-friendly Python wrapper based on our best Greeklish-to-Greek NLP model 

• Documentation and unit testing of the library

• Development of new methods for Greeklish-to-Greek conversion, utilizing more recent and promising Large Language Models (LLMs), such as Meta’s LLaMA2 or Mistral models

Duration of the Project

(350 hours).

Related repositories

While the proposed Greeklish toolkit can be developed independently, it could also be integrated as an extra functionality to the mentors’ affiliated current state-of-the-art Greek NLP toolkit: https://github.com/nlpaueb/gr-nlp-toolkit

Knowledge Prerequisites

• Advanced Python Programming and Software Engineering

• Deep Learning for NLP and familiarity with related frameworks (e.g., PyTorch, HuggingFace)

Mentors

John Pavlopoulos (AUEB), Ion Androutsopoulos (AUEB), Stavros Vassos (helvia.ai), Lefteris Loukas (helvia.ai & AUEB)


Label Buddy 3.0: Automated audio-tagging using transfer learning

Brief Explanation

Label Buddy is an open-source audio annotation tool created during GSoC 2021 and extended during GSoC 2022. It aims to make the annotation process easy, and simple with the help of AI Assistance tools and at the same time offers a well-defined manager-annotator-reviewer system. The purpose of this project is to investigate and integrate Multi-Modal Annotation Support in data other than only sound with the use of Large Language Models (LLMs) and Active Learning for Model Improvement on the already existing models.

Expected Results.

1.) Add OpenAPI support; the ability to upload an OpenApi document and convert it to Flexbench test scenarios (ML can help!) 2.) Anonymization feature for exchanged data in requests and responses (ML can help!) 3.) Aesthetic and UX/UI fixes in desktop app 4.) Fixes to existing bugs 5.) Improve documentation


Duration of the Project

(350 hours).

Related repositories

https://github.com/eellak/gsoc2022-Label-buddy

Knowledge Prerequisites

Machine Learning (ML) frameworks, Python, Django, VanillaJS, HTML

Mentors:

Pantelis Vikatos, Giannis Prokopiou


Enhancements for Flexbench: OpenAPI Integration and Anonymization using Machine Learning (ML)

Brief Explanation

Flexbench is a fully customizable NodeJS application, generating simulated HTTP traffic. It can be used as a standalone script, desktop-app* and server* to simulate traffic with specific characteristics, such as read/write ratio, duration, number of requests to generate, in/out traffic throttling and more.

It is a forked project from the http-traffic-simulator npm package, which was developed to provide simulated throttled http traffic for stress and load testing purposes, towards specific http endpoints. It utilizes the nodejs cluster module to generate http requests, by spawning multiple workers (balanced over the system cores) in the cluster, responsible to create clients that generate requests.

*During the GSoC-2022 period, along with the standalone script version, desktop and server apps were developed, and major fixes were applied.

Expected Results.

1.) Add OpenAPI support; the ability to upload an OpenApi document and convert it to Flexbench test scenarios (ML can help!) 2.) Anonymization feature for exchanged data in requests and responses (ML can help!) 3.) Aesthetic and UX/UI fixes in desktop app 4.) Fixes to existing bugs 5.) Improve documentation

Duration of the Project

(350 hours).

Related repositories

https://github.com/flexivian/flexbench/tree/develop ,https://flexivian.github.io/flexbench/

Knowledge Prerequisites

NodeJS, js, typescript, Html, Css, React, Electron, docker, Machine Learning, OpenAPI

Mentors:

Ioannis Skitsas (iskitsas@gmail.com), Marios Karagiannopoulos (mariosk@gmail.com)

New open data sources for Alexandria3k

Brief Explanation

The alexandria3k package supplies a library and a command-line tool providing efficient relational query access to diverse publication open data sets. The largest one is the entire Crossref data set (157 GB compressed, 1 TB uncompressed). This contains publication metadata from about 134 million publications from all major international publishers with full citation data for 60 million of them. Alternatively, works can be selected from the PubMed data set which comprises more than 36 million citations for biomedical literature from MEDLINE, life science journals, and online books, with rich domain-specific metadata, such as MeSH indexing, funding, genetic, and chemical details. In addition, the Crossref and PubMed data sets can be linked with the ORCID summary data set (25 GB compressed, 435 GB uncompressed), containing about 78 million author records, the United States Patent Office issued patents (11 GB compressed, 115 GB uncompressed), containing about 5.4 million records, as well as data sets of funder bodies, journal names, open access journals, and research organizations.

Expected Results.

Implementation of four new data sources added to the eight existing ones

Duration of the Project

(350 hours).

Related repositories

https://github.com/dspinellis/alexandria3k

Knowledge Prerequisites

Python, SQL, Unix command-line

Mentors:

Diomidis Spinellis

MD-Attractor

Brief Explanation

MD-Attractor is an open-source project designed to serve as a unified aggregator for music-related data sourced from various music platforms such as Spotify, Deezer, Apple Music, and more.

The primary objective of this project is to provide a centralized hub for collecting and analyzing data from diverse media sources, offering users a comprehensive view of diverse music data sources.

Expected Results.

1. An extension of data sources and usage parameters. 2. Metadata artists and song analysis option. 3  Creation of artist's ego-networks and similarity component.

Duration of the Project

Depending on the proposal

Related repositories

https://github.com/sfendourakis/MD-Attractor

Knowledge Prerequisites

Python, APIs, Visualization

Mentors:

Panagiotis Sfendourakis, Elektra Bilali Simou


Exploring and Abstracting Triplestore Alternatives

Brief Explanation

Objective

The primary objective of this project is to explore, analyze, and abstract various triplestore alternatives. The project aims to provide young programmers with a comprehensive understanding of different back-end alternatives that allow for storing data in triple format, commonly known as triplestores.

Background

Triplestores are a type of database specialized in storing triples, a data structure for representing information in a subject-predicate-object format. They are crucial in semantic web technologies, such as RDF, SPARQL, and OWL. However, there are numerous triplestore alternatives available, each with its own strengths and weaknesses.

Project Description

This project will involve a detailed exploration of various triplestore alternatives. The participants will perform rudimentary tests and benchmarks on these alternatives to understand their performance, scalability, and other key features.

The ultimate goal is to develop a library that can act as an abstraction layer for these triplestore alternatives. This library will "hide" the underlying implementation, allowing developers to switch between different triplestores without changing their application code. This abstraction layer can be compared to a library abstracting various specific relational database management systems, all providing very similar functionality, like supporting SQL.

Methodology

Research: Identify and study various triplestore alternatives. Understand their architecture, features, and limitations.

Testing: Perform rudimentary tests and benchmarks on the identified triplestore alternatives.

Analysis: Analyze the test results to understand the performance and scalability of each alternative.

Development: Develop an abstraction layer that can interface with the various triplestore alternatives.

Documentation: Document the findings and the usage of the developed library.

Expected Outcome

By the end of the project, we expect to have a well-documented library that can act as an abstraction layer for various triplestore alternatives. This will provide developers with the flexibility to choose the most suitable triplestore for their specific needs without having to modify their application code.

Conclusion

This project will not only enhance the understanding of participants about triplestore alternatives but also equip them with the skills to develop an abstraction layer, thereby broadening their programming skills and knowledge.

Duration of the Project

Long (350 hours)

Related repositories

New project, no existing repo available.

Information links

- Triplestore - Triples - Query language

Knowledge Prerequisites

Python (mandatory). Other programming languages like C, Go, Rust, Java, might prove useful.

Mentors:

Alexios Zavras, TBD


Font Validator: A System for Quality Control of Digital Typefaces Containing Greek Characters

Brief Explanation

Objective

The primary objective of this project is to develop a comprehensive set of tests for quality control on digital typefaces, with a particular focus on Greek characters. The project aims to ensure the consistency of typeface design, especially in terms of height, shape, composites, ascenders, descenders, spacing, and kerning between Latin and Greek characters.

Background

Digital typefaces play a crucial role in the readability and aesthetics of digital content. However, inconsistencies in typeface design, especially between different scripts like Latin and Greek, can lead to visual discomfort and confusion. Quality control in digital typefaces is therefore essential to ensure a consistent and pleasant reading experience.

Project Description

This project will involve the development of a series of tests using Font Bakery or a similar tool. These tests will compare the height and shape of similarly shaped Latin and Greek letters, such as Latin A and Greek Alpha.

Further tests will be performed on composites, ascenders, descenders, spacing, and kerning between Latin and Greek characters. The goal is to identify any inconsistencies and provide recommendations for improvements.

Methodology

Research: Study the design principles of Latin and Greek typefaces. Identify the key parameters for comparison, such as height, shape, composites, ascenders, descenders, spacing, and kerning.

Test Development: Develop a series of tests using Font Bakery or a similar tool. These tests should be able to compare the identified parameters between Latin and Greek characters.

Testing: Perform the developed tests on a variety of digital typefaces.

Analysis: Analyze the test results to identify any inconsistencies in the design of Latin and Greek characters.

Recommendations: Based on the analysis, provide recommendations for improving the consistency of typeface design.

Documentation: Document the findings, the developed tests, and the recommendations.

Expected Outcome

By the end of the project, we expect to have a comprehensive set of tests for quality control on digital typefaces, especially for Greek characters. These tests will help typeface designers and developers ensure the consistency of their designs, thereby improving the readability and aesthetics of digital content.

Conclusion

This project will not only enhance the quality of digital typefaces but also contribute to the body of knowledge in the field of typeface design. It will provide valuable insights into the design principles of Latin and Greek characters and help ensure their consistency in digital typefaces.

Duration of the Project

Can be either short (175 hours) or long (350 hours), depending on the agreed-upon scope.

Related repositories

New project, no existing repo available.

Information links

- Font Bakery documentation - Font Bakery source repo

Knowledge Prerequisites

Python, font technologies, understanding of Greek characters

Mentors:

Irene Vlachou, Emilios Theofanous, Alexios Zavras


Development and Enhancement of the Cloud-Based FOSSBot Platform

Brief Explanation

The evolution of the DIY robot kit for educators, initiated in GSoC 2019 with Christos Chronis, has significantly progressed over the years, culminating in a 3D printable, modular, and low-cost educational robot. Over the last five years, contributors from GSOC and the open source community have enriched this project with a programming stack compatible with Google Blockly, native Python through Monaco, and a Docker-based deployment system. At the same time, the initial DIY robot kit from GSOC 2019 transformed into the FOSSBot, and more educators understand and use this open-source solution to teach STEM.

For GSoC 2023, the focus was on shifting the programming stack to the cloud, addressing issues like connectivity, updates, and the rising costs of Single Board Computers. Another notable addition was the web-based simulator, which allowed educators to test and use the robot virtually, reducing cost barriers and hardware requirements. In the following months, the platform will be available to all through the infrastructure of GFOSS, and at the same time, organized workshops will help make more people aware of the robot. Finally, in the last two years, two scientific publications were released, and the project started to attract the interest of the academic community.

GSoC 2024 Objectives

In 2024, our goal is to further enhance this cloud-based platform by:

Performance Optimization: Improving both front-end and back-end performance for a seamless user experience. Development of Cooperative Modes: Enabling multiple robots to interact and collaborate in shared tasks or scenarios, fostering teamwork and advanced programming skills. Educator's Content Creation and Upload System: Developing a system where educators can create, share, and upload educational material, facilitating a dynamic and evolving educational environment. Custom Scene Creation for Godot Simulator: Integrating an interface for creating new, customized scenes in the existing Godot-based simulator, enabling tailored educational experiences. Platform Support for Physical Hardware: Introducing programming support for physical devices like the FOSSBot, Arduino, and MicroPython-supported microcontrollers, broadening the scope of practical applications and hands-on learning. Continuous Integration and Deployment (CI/CD) Enhancements: Streamlining updates and maintenance through advanced GitHub automation and cloud deployment strategies. Extensive Documentation: Ensuring comprehensive documentation to facilitate ease of use and adaptability for educators and developers.

Expected Results.

A robust, cloud-based platform offering a wide range of educational and programming possibilities. Enhanced user experience with improved performance and new features. Greater accessibility and cost-effectiveness for educators worldwide.

Duration of the Project

(350 hours).


Related repositories

https://github.com/eellak/gsoc2019-diyrobot https://github.com/eellak/fossbot https://github.com/chronis10/fossbot-app https://github.com/eellak/fossbot-platform https://github.com/eellak/fossbot-web-simulator

Knowledge Prerequisites

React.js Python Flask API / FastAPI SQLAlchemy Godot (not mandatory) JavaScript Docker Git

Related publications

Chronis C., & Varlamis I. (2022). FOSSBot: An Open Source and Open Design Educational Robot. Electronics, 11(16), 2606. https://www.mdpi.com/2079-9292/11/16/2606 Kazazis G., Chronis C., Diou C. & Varlamis I. Development and evaluation of Reinforcement Learning models for the FOSSBot Open-Source educational robot, Pan-Hellenic Conference on Progress in Computing and Informatics, ACM 2023 (Under Publication)


Mentors:

Christos Chronis, Iraklis Varlamis


Enabling Apothesis to support atomic layer deposition and etching processes

Brief Explanation

Αpothesis is an open source software for designing, simulating and analyzing deposition processes. It is based on Kinetic Monte Carlo method and its two main components are the lattice (simple cubic, HPC etc) where particular processes (adsorption, desorption, surface rection and diffusion) are performed. Up until now Apothesis has been used in various applications (see for example https://iopscience.iop.org/article/10.1088/1361-651X/ace276/meta). However, there is a lack of generalized software for atomic layer deposition/etching (ALD/ALE) processes. ALD/ALE are based on pulses performing over sequentially over a certain period of time (see https://www.frontiersin.org/articles/10.3389/fphy.2021.631918/full for more details). That said, the purpose of this project is to enable Apothesis to handle ALD/ALE cases. For that, there various parts of Apothesis that need to be changed with the most basic being: 1. Enabling Apothesis to read the lattice from a file. Thus creating a generalized reader for hard copy lattices. 2. Creating the sequentially calls to simulate ALD/ALE processes. 3. Design the output of the ALD/ALE process.


Expected Results.

The results from a simple case of ALD in a simple cubic lattice.


Duration of the Project

(350 hours).

Related repositories

https://github.com/nixeimar/Apothesis

Knowledge Prerequisites

C++, desing patters (factory pattern) and basic physics in deposition processes

Mentors:

Cheimarios Nikolaos, Vissarion Fysikopoulos


eCodeOrama, an educational interactive flow visualization tool for mit scratch programs

Brief Explanation

The project will create a interactive tool to extract, visualize graphically and edit (to improve the presentation of) the layout of the flow of code in blocks / scripts in a mit scratch program and their interaction with any messages or other external events. The tool will use rules to decide on many layout parameters (e.g. the position of the code blocks in the layout, the colors used, etc) but the user will be able to overwrite the default choices. The presentation will be compatible with the codeOrama code layout specification. The tool will also promote code understanding, especially to young students that use scratch, and will include debugging aids. The students can use this flow to better visualize and understand their program, to explain it to others, to debug it and to design extensions and modifications.


Expected Results

A tool to visualize and edit the layout of the event based script flow of a scratch program, keeping it compatible with the codeOrama code layout specification.

Duration of the Project

350 hours

Related repositories

https://github.com/sarantos40/eCodeOrama

Knowledge Prerequisites

python, mit scratch, gui development

Mentors:

Sarantos Kapidakis (sarantos.kapidakis@gmail.com), Chrysovalantis Sfyrakis


Enhancement of SmAuto DSL and integration into HomeAssistant

Brief Explanation

Smart environments are becoming quite popular in the home setting consisting of a broad range of connected devices. While offering a novel set of possibilities, this also contributes to the complexity of the environment, posing new challenges to allowing the full potential of a sensorized home to be made available to users. SmAuto is a Domain Specific Language (DSL) that enables users to program complex automation scenarios, for connected IoT devices in smart environments, that go beyond simple tasks. SmAuto lacks extra features like invocation of REST/MQTT services, time delays etc., thus it should be expanded towards this direction. Furthermore, HomeAssistant would benefit from the integration of a DSL like SMAuto for rapidly developing and deploying automations, using the entities existing in a smart environment.

Expected Results

In the context of this project, we desire to expand the SmAuto DSL with the following features: a) adding virtual entities, like REST calls and MQTT RPCs, so as for the automations to be able to access information from external services, b) incorporate auxiliary concepts like Delay, Conditions/Switches, or Compute nodes and c) generalize the language’s Condition concept. Furthermore, the integration of SmAuto and HomeAssistant should occur, by creating a new open-source HA plugin, where each user can declare SmAuto automations and deploy them locally in HA.

Duration of the Project

350 hours

Related repositories

https://github.com/robotics-4-all/smauto, https://www.home-assistant.io/

Knowledge Prerequisites

Required: Python, Software engineering, IoT concepts, Unix/Linux. Desired: Model Driven Engineering, HomeAssistant, Docker


Mentors:

Konstantinos Panayiotou, Emmanouil Tsardoulias, Andreas Symeonidis

Creating a factory pattern for handling lattices in Apothesis.

Brief Explanation

Apothesis is a generalized software for designing, simulating and analyzing deposition processes. It is based on the kinetic Monte Carlo method. That said, it consists of two main components; a lattice (e.g. simple cubic, HPC etc) and the processes (adsorption, desorption, diffusion and surface reactions) performed in this lattice. Currently, the lattices are hard coded inside Apothesis making it difficult to add new ones easily. This proposal is focuses on creating a factory pattern which be used as a guide for adding lattices in Apothesis. Then this will be used to incorporate 2D lattices (like graphene) inside Apothesis.

Expected Results

The factory pattern source code and a simple example for incorporating a graphene lattice.

Duration of the Project

350 hours

Related repositories

https://github.com/nixeimar/Apothesis

Knowledge Prerequisites

C++, design (factory pattern)


Mentors:

Nikolaos Cheimarios, Christina-Anna Gatsiou


MyUni

Brief Explanation

Currently there is a University App called MyUoM for Greek universities in https://my.uom.gr/ (followed by an effort in University of West Attica, https://iam.uniwa.gr/. This app is official but it lacks features(e.g. login) and a proper backend with an architecture that will allow different implementations for Universities. In this project we want to add a CMS for info that is changing frequently and a backend that fetches realtime info from the official websites. We want to unify those efforts and make it easier for other universities to join.


Expected Results.

1. Create a structure that can be used by different university structures and can be fully customised based on the needs of each institution. 2. The application should be fully customisable in terms of interface, content and functionality. 3. The content can be personalized and the home page can display tiles selected by each institution and display content that will be created as a page (wordpress type) 4. Adding a students portal where all the student's data, personal and any other information will be collected, in order to be used as a reference point. 5. Add an admin panel from where the appearance and content of the institution's application will be defined. 6. Create a BackEnd system to manage all the data described above. 7. Setup a backend that fetches information from official sources and static information(e.g. map images) to make the frontend lighter. 8. Rewrite in Typescript for maintainability 9. Creation of a custom CMS (consisting of FrontEnd & BackEnd) for data changing frequently 10. Create a system where the application is shared across domains by creating an instance.


Duration of the Project

Depending on the scope

Related repositories

https://github.com/Open-Source-UoM/MyUoM

Knowledge Prerequisites

   • React.js
   • Express.js (for BackEnd)
   • MySQL (for BackEnd)
   • JavaScript
   • TypeScript
   • Next.js (optional)


Mentors:

Anastasios Tsalmas tsalmanastasios@gmail.com, Efstathios Iosifidis eiosifidis@gmail.com

DIY IoT Physics Experiments for education

Brief Explanation

Remote physics experiments for students in all the educational levels are the second best to hands on experiments. Especially for students who temporarily cannot attend school or in cases like the Covid-19 and the lockdowns. In many practical cases they are the only alternative, as they are available 24/7, they can involve dangerous materials or conditions, they can be accessed from anywhere and any device, they require less maintenance, have lower cost, can be easily modified, or arranged to perform another experiment, and are less probable to be damaged. They are in line with the modern way of performing experiments, as it is desirable to have as less as possible direct contact with the experiments and use them on-line. Examples include on-line telescopes and electronic microscopes. This is possible due to the automation; data acquisition and manipulation of the experimental data is done using a computer or a microcomputer. In this way students need not take pain stacking notes, especially for experiments that take a lot of time to collect data, sometimes days or months. Students can concentrate on data processing, on the analysis of the results and arrive at scientific valid conclusions. Our laboratory has set up many remote experiments and has experience of more than 10 years in designing, setting, and servicing remote experiments. Our remote experiments are based on Arduino and readily available sensors and actuators. The aim of the present project is to design and implement a way to make the sensors and the actuators to form an IoT local network so that it will be easier to easily utilize them in different experiments and to build new experiments. The IoT sensors and actuators will be DIY and based on open software. The applicant will program the ESP8266 to receive data from the sensor and transmit the data through MQTT to ThingsBoard. Similarly for an actuator the ESP8266 will receive MQTT data from ThingsBoard. The applicant will prepare five DIY IoT sensors and five actuators. ThingsBoard will provide users with the visual representation of the data and the control of the experimental setup through dashboards. The applicant will prepare five dashboards for five corresponding experiments.

Expected Results

At the end of the present GSoC project the open source for five IoT DIY sensors and five actuators will be designed and implemented. Also, five Dashboards on the open source IoT platform ThingsBoard for five corresponding experiments will be designed and implemented. A list of the electronic components, instructions for the assembly and documentation for the software will be prepared.


Duration of the Project

Medium Size - 175 hours

Related Repositories

https://github.com/totheworld2004/DIY-Physics-IoT


Knowledge Prerequisites

How to program ESP8266, MQTT to transfer and receive data and design and implement Dashboards on a IoT platform

Mentors

Hariton Polatoglou and Panagiotis Koustoumpardis


LearniTron

Brief Explanation

LearniTron is an educational 3D printed mars rover style robot, with AI-Computer vision capabilities, such as: Face detection, People counting, Hand Tracking, Object Recognition, Traffic Signs Recognition, etc. Robotic-sensor capabilities, such as: object avoidance and finally NLP capabilities, such as voice commands recognition, chatbot responses. All data will be uploaded to a web server along side with the chatbot. People like students can interact with it, reprogram it and experiment, to lean and enhance their knowledge on technologies, as AI, Computer Vision, Robotics

Expected Results

By the end of the program,the design of the 3d models of the robot, code some AI programs if not all, and assemble the robot’s parts and sensors, and finally code the web server to store data. The robot to be able to interact with people and achieve an amount of autonomy via AI and sensors


Duration of the Project

Large Size - 350 hours

Related Repositories

Knowledge Prerequisites

The technologies are: Python, OpenCV, Tensorflow, Keras, C, Arduino, Raspberry

Pi, Flask, HTML5, CSS3, JS

Mentors

Kostas Papadimas and Alexandros Melidis