Google Summer of Code 2024 proposed ideas: Διαφορά μεταξύ των αναθεωρήσεων
Zvr (συζήτηση | συνεισφορές) |
Pkst (συζήτηση | συνεισφορές) Χωρίς σύνοψη επεξεργασίας |
||
| Γραμμή 248: | Γραμμή 248: | ||
==== Mentors: ==== | ==== Mentors: ==== | ||
Christos Iossifidis | Christos Iossifidis | ||
== 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. We want to add Sanity CMS(https://www.sanity.io/) for data changing frequently. 2. Setup a backend that fetches information from official sources and static information(e.g. map images) to make the frontend lighter. 3. Rewrite in Typescript for maintainability | |||
Whoever is interested in talking with the initial core contributors can also find us on https://my.uom.gr/about and https://opensource.uom.gr to join our discord and follow us on social media. | |||
==== Duration of the Project ==== | |||
Depending on the scope | |||
==== Related repositories ==== | |||
https://github.com/Open-Source-UoM/MyUoM | |||
==== Knowledge Prerequisites ==== | |||
React.js, Java(Spring Boot),Typescript, Next.js(Optional) | |||
==== Mentors: ==== | |||
Efstathios Iosifidis eiosifidis@gmail.com | |||
[[Κατηγορία:GSOC2024]] | [[Κατηγορία:GSOC2024]] | ||
[[Κατηγορία:GSOC]] | [[Κατηγορία:GSOC]] | ||
Αναθεώρηση της 08:54, 29 Ιανουαρίου 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.
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
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
Development of an interactive flow visualization tool for visual / blockly programming, for educational use.
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. 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.
Expected Results
Creation of an application to visualize code
Duration of the Project
350 hours
Related repositories
The project will make a new github repo. 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
Required: Python and other programming languages
Mentors:
Sarantos Kapidakis (sarantos.kapidakis@gmail.com)
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
HELP
Brief Explanation
Brief explanation=HELP is a location based mobile application (LBMA) 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
A location based mobile application (LBMA) with integrated emergency communications service
Duration of the Project
175 hours
Related repositories
New project, no existing repo available.
Knowledge Prerequisites
Native iOS app and / or native Android app development skills.
Mentors:
Christos Iossifidis
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. We want to add Sanity CMS(https://www.sanity.io/) for data changing frequently. 2. Setup a backend that fetches information from official sources and static information(e.g. map images) to make the frontend lighter. 3. Rewrite in Typescript for maintainability
Whoever is interested in talking with the initial core contributors can also find us on https://my.uom.gr/about and https://opensource.uom.gr to join our discord and follow us on social media.
Duration of the Project
Depending on the scope
Related repositories
https://github.com/Open-Source-UoM/MyUoM
Knowledge Prerequisites
React.js, Java(Spring Boot),Typescript, Next.js(Optional)
Mentors:
Efstathios Iosifidis eiosifidis@gmail.com