Google Summer of Code 2023 proposed ideas
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.
Epoptes improvements
Brief Explanation
Epoptes is an open source computer lab management and monitoring tool. It is used in more than 1000 Greek schools, and in thousands more schools and businesses worldwide. The following improvements and new features have been requested by the community for years and can be implemented as part of a GSoC project:
- Make Epoptes available on more Linux distributions.
- Support screen sharing on Wayland.
- Drop the session service and keep only the system epoptes-client service.
- Use systemd socket activation and autorestart.
And if there's enough time left, also improve its firewall compatibility.
Duration of the Project
350 hours
Expected Results
It is expected that the student will send a pull request on https://github.com/epoptes/epoptes, suitable for merging upstream. That PR should implement all the aforementioned tasks, which are described in more detail at https://epoptes.org/documentation/gsoc/
Related repositories
https://epoptes.org/documentation/gsoc/
Knowledge Prerequisites
Python, GTK, Shell, networking, systemd services, Wayland, XDG desktop portals
Mentors:
Foteini Tsiami (fottsia@gmail.com), Siahos Yiannis (siahos@cti.gr)
Interoperability of GitLab boards with Nextcloud Decks
Brief Explanation
Nextcloud is free software for cloud collaboration. Nextcloud consists of core functionality plus installable apps. One of the apps is "Deck", that provides Kanban boards. GitLab also provides Kanban boards.
There exists a Nextcloud "GitLab" app which provides some integration of GitLab with Nextcloud, but it does very little. Its only substantial functionality is to show a panel with "GitLab todos" in the Nextcloud dashboard (which serves as the user's home page). That is, it provides a list in the user's Nextcloud dashboard that shows the next things the user has to do in GitLab. Each "todo" is just a title and a link to GitLab.
This project is about extending the GitLab-Nextcloud integration so that a user can see and manage the GitLab boards in Nextcloud's Deck application.
Duration of the Project
350 hours
Expected Results
Some organizations use both Nextcloud and GitLab. Some of their kanban boards tend to be on GitLab and some other on Nextcloud. Developers tend to use more GitLab, while non-developers tend to use Nextcloud. This project is expected to reduce duplication and help developers and non-developers co-operate better.
Related repositories
<https://github.com/nextcloud/deck/>
<https://github.com/nextcloud/integration\_gitlab>
Knowledge Prerequisites
JavaScript, PHP, Vue, Web APIs
Mentors:
Antonis Christofides
Development of a Robotic Education Platform for the DIY robot kit for educators
Brief Explanation
The project started back on the GSoC 2019 when Christos Chronis designed and implemented a 3D printable robot for educational purposes from scratch. The idea was create a new educational robot, that will be modular, come at a low cost and be available to everyone. All of the parts of the modular robot were designed in a way so that they are easily 3D-printable. The 3D-printed parts are combined with basic low-cost electronics and sensors, which can be easily assembled to the final robot following extensive and simple guidelines of how to print and assemble the robot. In this way non-expert staff in robotics, electronics or IoT programming can assemble and use the robot. Alongside the guidelines, a number of demo scenarios for the class, e.g. simple navigation or sensing scenarios, that require basic programming skills are also provided.
The project has been continued two years later, in GSoC 2021, by Georgios Giannakoulias, who developed a version of the “DIY robot kit for educators” that integrates Node-Red blocks and introduced a new way to program the robot based on blocks. Last year at the GSOC 2022 two more contributors Danai Brilli and Eleftheria Papagergiou worked on a new version of the robot and redesigned the whole programming stack. The robot can now be programmed using native Python code or using a custom version of Google Blockly (a Scratch-like user interface). They also improved the initial core library and developed a completed unified user interface with multiple project management, robot configuration page, a new programming mode for kindergarten learning activities and a Docker based deployment system with CI/CD capabilities.
What must be done in GSOC 2023:
The current robot programming stack runs in the robot itself, allowing for the use and programming of the robot without the need for additional software installation on a local computer. However, this feature has proven to be more of an obstacle than a benefit due to connectivity and update issues. Also the rising cost of Single Board Computers (SBCs), such as the Raspberry Pi, made DIY solutions uncompetitive with commercial alternatives.
To address these issues, the entire programming stack must be transferred to the cloud. This approach would remove the need for additional computational power within the robot and provide the opportunity for a wider range of SBCs or microcontrollers such as the Raspberry Pi Pico, Microbit, ESP32, or Micropython-enabled Arduino boards to be used. This would result in a reduction in the overall cost of construction for the robot and give users more freedom to choose their own computing components. Additionally, this approach would reduce the need to perform version updates on each robot separately. Based on the feedback we got from educators, the current approach for interaction with the robot is different from that of similar market robotic kits. Thus, it is necessary to adopt an approach that utilizes existing user interaction knowledge. The proposed solution of transferring the programming stack to the cloud addresses these issues and provides a cost-effective and user-friendly solution.
Expected Results
Within the months of the project the expected results are:
- Understanding previous work
- Transfer the core library to Micropython
- Convert the whole stack to be deployable on the cloud as a platform.
- New programming modes
- Resolve bugs and provide improvements (front end - back end)
- Github automation for deployment
- Extensive documentation
Duration of the Project
350 hours
Related Repositories
https://github.com/eellak/fossbot
https://github.com/chronis10/fossbot_source
https://github.com/chronis10/fossbot_simulator
https://github.com/cyberbotics/webots
https://github.com/bbcmicrobit
https://gist.github.com/yiorgosynkl/914e75d0f9ae98bb31f4d8da66ec9908
https://gist.github.com/chronis10/9d069c56b3df9c92693ac8d24270a62a
https://github.com/isl-org/OpenBot
Mentors:
Iraklis Varlamis
Christos Chronis
Development of a Web Based robotic simulator for the DIY robot kit for educators
Google Summer of Code 2023 - Proposal
Brief Explanation
The project started back on the GSoC 2019 when Christos Chronis designed and implemented a 3D printable robot for educational purposes from scratch. The idea was create a new educational robot, that will be modular, come at a low cost and be available to everyone. All of the parts of the modular robot were designed in a way so that they are easily 3D-printable. The 3D-printed parts are combined with basic low-cost electronics and sensors, which can be easily assembled to the final robot following extensive and simple guidelines of how to print and assemble the robot. In this way non-expert staff in robotics, electronics or IoT programming can assemble and use the robot. Alongside the guidelines, a number of demo scenarios for the class, e.g. simple navigation or sensing scenarios, that require basic programming skills are also provided.
The project has been continued two years later, in GSoC 2021, by Georgios Giannakoulias, who developed a version of the “DIY robot kit for educators” that integrates Node-Red blocks and introduced a new way to program the robot based on blocks. Last year at the GSOC 2022 two more contributors Danai Brilli and Eleftheria Papagergiou worked on a new version of the robot and redesigned the whole programming stack. The robot can now be programmed using native Python code or using a custom version of Google Blockly (a Scratch-like user interface). They also improved the initial core library and developed a completed unified user interface with multiple project management, robot configuration page, a new programming mode for kindergarten learning activities and a Docker based deployment system with CI/CD capabilities.
What must be done in GSOC 2023:
A contributor Manousos Linardakis developed a simulator for the robot that gives the opportunity to everyone to use the previous programming stack without the need of a real robot. The current version is based on Coppelia Simulator and it was a great import to the whole robot interaction experience. Already the simulator has been tested by many educators and received great comments. Based on that it is important to develop a new simulator. The new simulator must be web based and must provide a way to run different educational scenarios, like line following or obstacle avoidance. In addition the need for an integrated, lightweight, web based simulator is very important because the existing simulator requires a high end PC and also adds extra steps to the procedure of testing and using the robot. Finally the new simulator must be capable of being integrated in the existing programming stack or in a future cloud based implementation. The proposed solution provides a cost-effective and user-friendly solution and eliminates the need of a real robot removing the cost boundaries and giving the opportunity to any educator to test and use our open source solution.
Expected Results
Within the months of the project the expected results are:
- Understanding previous work
- Add compatibility to core library for simulator support
- Develop a web based simulator
- Integration of the simulator with the platform
- Create stages for education scenarios
- Resolve bugs and provide improvements
- Github automation for deployment
- Extensive documentation
Related Repositories
https://github.com/eellak/fossbot
https://github.com/chronis10/fossbot_source
https://github.com/chronis10/fossbot_simulator
https://github.com/cyberbotics/webots
https://github.com/bbcmicrobit
https://gist.github.com/yiorgosynkl/914e75d0f9ae98bb31f4d8da66ec9908
https://gist.github.com/chronis10/9d069c56b3df9c92693ac8d24270a62a
https://github.com/isl-org/OpenBot
Mentors:
Iraklis Varlamis
Christos Chronis
Build Recorder performance improvements
Brief Explanation
Build recorder is a command-line utility to fully record the interactions between assets (files and tools) when a software component is being built (compiled).
The current implementation needs improvements to handle large-scale and parallel builds. The scope of this project is to implement such improvements.
Duration of the Project
350 hours
Related repositories
https://github.com/eellak/build-recorder
Knowledge Prerequisites
C, data structures, multi-threading
Mentors:
Alexios Zavras
Build Recorder extension for other languages
Brief Explanation
Build recorder is a command-line utility to fully record the interactions between assets (files and tools) when a software component is being built (compiled).
The current implementation only handles software being compiled using local resources, as s the case for C or C++. Other programming languages also use resources from the Internet when building a binary. The scope of this project is to extend build-recorder to record relevant information in these use cases.
Duration of the Project
350 hours
Related repositories
https://github.com/eellak/build-recorder
Knowledge Prerequisites
C and one of more other compiled languages: Go, Rust, Java, ...
Mentors:
Alexios Zavras