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 DIY robot kit for educators[επεξεργασία | επεξεργασία κώδικα]
Brief Explanation
In GSoC 2019, one of the final projects was “A DIY robot kit for educators”. In this project, the contributor, Christos Chronis, designed and implemented a 3D printable robot for educational purposes from scratch. Electronic parts, such as cables, sensors, buttons, camera, accelerometer, LED set, as well as 3D printed parts were used to assemble the robot alongside with the code written in order to program it. Two years later, in GSoC 2021, the contributor developed another version of “A DIY robot kit for educators” with a Node-Red integration, based on the project of GSoC 2019.
As the contributor of GSOC 2019 mentioned in his wiki page there is still a lot of work to be done, so that the original project (Proteas robot) can be improved and maybe be a direct competitor to any commercial alternative on educational robotics. Based on the work of the two previous contributors, I would like to propose my idea for GSOC 2022, which includes the robotic designs, the guidelines, the integration of the robot with Google Blockly and improvement of the back end code with a custom library for special control of every electronic part and sensor.
All of the parts of the modular robot are gonna be designed this way so that they are 3D-printable. The 3D-printed parts together with basic low-cost electronics and sensors can be easily combined to assemble the robot following the guidelines. Extensive and simple guidelines of how to print and assemble the robot will be provided, so that non-expert staff in robotics, electronics or IoT programming, will be able to follow them successfully. Alongside with the guidelines, the staff will also be provided with a number of demo scenarios for the class, e.g. simple navigation or sensing scenarios, that require basic programming skills.
The development of a desktop application will mainly consist of the open-source Google Blockly. Blockly is a free, open source web-based, visual programming editor, developed by Google. Users can drag blocks together to build programs. It is similar to Scratch, that the contributor of GSoC 2019 proposed, but it can be a lot easier configured, as it is open source and offers a lot more possibilities, such as custom creation of Google Blockly blocks or preferred language selection of the environment. In the GsoC 2021, the contributor made a first approach using Node-red, but Node-red demands specialized knowledge in its usage and it is not suitable for younger ages. So, the kids and adolescents can use our application for learning visual programming by using the custom blocks to build programs and then the robot can execute them in real time. The application and the robot can be used in STEM education for different experiments. Educators already know Scratch, so adjusting to Google Blockly will be an easy process. The desktop application will be wirelessly connected to the robot, so that the robot can execute the programs built and run by the students. The desktop application will be implemented in such a way, so that it is suitable for students, e.g. colorful and interactive design, pop ups for extra information or to notify the student if an action was successful or not. There will also be the option to save or import Blockly code. The already implemented code can be saved/ extracted into an xml file that will be downloaded in a preferred folder in the computer. Such an xml file can be imported into the application for later use.
In order for the Blockly integration to be possible, it is going to be essential for some parts of the existing code of the GSoC 2019-2021 robot to be rewritten. This means that back end code that runs in the Raspberry Pi and controls all the movements of the robot, will be improved. For that reason, I will create a custom functionality library (e.x. PID Controller) for special control of every electronic part and sensor. Based on the fact that the GSoC 2021 contributor introduced for the first time the logic of microservices, microservices and dockerization can be utilized so that different services run for controlling the robot movements as well as the communication between the Blockly desktop application and the Raspberry Pi.
Expected Results
Within the months of the project the expected results are:
- Understanding previous work
- Rewrite core library ( Backend code )
- Create microsreliable communication between Frontend - Backend code
- Frontend implementation
- Educational scenarios for the class
Duration of the Project
350 hours
Related Repositories
https://hackaday.io/project/26007-versatile-educational-2wd-robot
https://gist.github.com/yiorgosynkl/914e75d0f9ae98bb31f4d8da66ec9908
https://gist.github.com/chronis10/9d069c56b3df9c92693ac8d24270a62a
https://github.com/isl-org/OpenBot