Fetching the latest programs, projects, and workspace data.
Find open source projects actively accepting contributors. Search repositories, filter by program milestones, difficulty tags, or tech stack.
Use our Orbit AI Matcher to find out! Get instant matching scores based on your developer skills, preferred frameworks, and contribution experience.
Convert your selected open-source project into a winning GSoC, LFX, or Outreachy application using Proposal Studio.
<p>I would to create a reference library capable to interact bidirectionally with RS and outside it, engaging people to create apps, bots, and other stuff on the RS network. Making easy way to import/export data from Retroshare network.</p>
I will be working on converting the app source codes from java to kotlin, I’ll remove the extra features that the mentor suggests to be removed and also have constant discussions about what else can be improved/added in the core functionality of the app. I will work on redesigning the UI of the app to make it easier to use. I will update the webRTC library, investigate the connection bug, do consistent testing to find out if we are missing out on any bugs and at the end make a new release for the app.
<p>The Project has 3 sub-parts which are described as:</p> <ol> <li><strong>Initial Firmware Retrieval: </strong> People who want to update their device, often do not know what firmware file to download. So far the best option is the Wiki, but it is often loaded with too much information. The file download organizes all images files by architecture, but that is what most user usually do not know beforehand. </li> <li><strong>Firmware Upgrades: </strong> Create a router web interface package for LuCI to check and apply new images.</li> <li><strong>Creating meta-data for each target: </strong> To get the data for both projects, the OpenWrt build system needs to modified to create json files with the necessary metadata.</li> </ol>
<p>Prince is a network daemon that continuosly monitors the network topology and sets the timers for OLSRv2, it is developed in C and we are currently deploying it in the Ninux community network in Florence. This year we want to implement Pop-Routing for another link-state routing protocol: OSPF. OSPF is the state-of-the-art interior routing protocol for wired networks and it is used also in some wireless community networks. This project consists in realizing a plug-in of the OSPF open source routing daemon (Quagga or Bird) that will:</p> <ul> <li>Expose the network topology to Prince using NetJson</li> <li>Receive and re-set the network parameters from Prince</li> </ul>
<p>Turnantenna is now a prototype, and the code was written for a specific driver and for a specific motor. My project includes:<br> • 1 more motor, in order to allow the Turnantenna to change the pitch angle too;<br> • write new code compatible with different motors and drivers, and not only a single type;<br> • configure an API interface compatible with JSON format;<br> • a dedicated website where full documentation, how-tos, and test's results can be found.</p>
This project aims to enhance Wi-Fi rate adaptation by integrating Deep Q-Networks (DQN) with the ORCA and RateMan frameworks. Traditional rate adaptation algorithms like Minstrel-HT struggle in dynamic wireless environments, especially in fast-changing conditions. By using machine learning, specifically DQN, the project will dynamically optimize Wi-Fi transmission rates based on real-time metrics such as SNR, RSSI, retry counts, and throughput. The system will be tested and compared against existing algorithms to assess improvements in throughput, latency, and packet loss. Deliverables include a fully integrated DQN-based rate adaptation model, detailed simulation results, and code contributions to the open-source community.
The Freifunk project collects a snapshot of data from community groups every hour. This has been going on since 2014, and so far the project has amassed a large historical archive of data, available in compressed JSON files. This project will take that historical data, provide some time-series visualisations, and make it available to query through a GraphQL interface.
<p>While analyzing already available Open Source Wireless Intrusion Detection Systems (WIDS), we realized that there is no full-featured solution yet. We expect a WIDS to fulfill the following needs</p> <ul> <li>detect most of the known Wi-Fi attacks,</li> <li>scale easily and thus be able to work within big organizations and</li> <li>be easily expandable.</li> </ul> <p>It is the objective of the 'Easily Expandable Wireless Intrusion Detection System' (Eewids) to provide an environment which ensures the scalability and the expandability. The actual detection methods shall get added one after another later on. To achieve this a microservice approach is used. Different tasks at stake are done by different services instead of creating a monolithic software. Adding a new detection method, does not involve thinking about the actual capturing of data or storing and parsing the data. Even the presentation of the detection results is already provided by Eewids. This shall make the creation of a full-featured solution much more easier in future.</p>
<p>Nodewatcher currently uses Dockerized OpenWrt firmware builders which are manually generated. Currently, their generation is slow and complicated which does not allow quick bug fixing. They are configured here:<a href="https://github.com/wlanslovenija/firmware-core" target="_blank">https://github.com/wlanslovenija/firmware-core</a></p> <p>Packages that are crucial to the functioning of Nodewatcher configured nodes are mostly not upstreamed and are also compiled with the OpenWrt source code.</p> <p>The idea of this is to simplify and speed up the whole building process. While we are at it also upstream all necessary packages to ease their maintenance.</p>
<h4>Decentralized WiFi controller</h4> <p>DAWN is a decentralized WiFi controller. So far the daemon concentrates on load balancing to distribute the network traffic among different Access Points to maximize the network performance. I want to improve the daemon by simplifying the configuration, extending the functionally and improving the usability.</p> <h5>Milestones</h5> <ul> <li>Implement Bootstrapping</li> <li>Implement Graphical User Interface</li> <li>Extend Controller Functionality</li> <li>Improve Load Balancing</li> </ul>
The qaul RPC user authentication layer project aims to implement a secure and scalable authentication system for the qaul network, enabling multiple users per node and ensuring secure communication between libqaul and the user interface (CLI and future Flutter GUI). The primary objective is to develop an authentication and session management system based on public key cryptography, token-based sessions, and encryption through the Noise protocol. To achieve this, the project will focus on several key components: designing a robust authentication system, implementing token-based session management, integrating encryption for secure communication, and building a command-line interface (qauld-ctl) to manage user identities, sessions, and secure communication. Additionally, the project will establish a protobuf communication structure to facilitate these features between the user interface and libqaul.
<p>qual.net’s Rust rewrite will enable improved modularity, performance, and security, but rewriting an entire system in a new and rapidly evolving language is a difficult task. A network simulator able to mock out the entire world of devices and connections on which qual.net will have to operate is an important step in ensuring functionality is implemented as intended.</p> <p>This project will result in a working MVP of a dual layer network simulator. This simulator will provide hooks for the netlink and HTTP API levels, into which tests can inject behavior and from which metrics and test results can be extracted.</p>
<p>This project provides a framework for reproducible wireless resource allocation algorithm testing. This will ease the benchmarking and the development of new and well known algorithms.</p>
When a community network router ethernet port is acting as a gateway to the Internet or as a border to neighboring networks, the network configuration usually needs to be changed from the default settings to accommodate for the specific role. A router ethernet port can be connected to the Internet, or connected to a dummy wifi device for a point to point link, or connected to another router of the same mesh network to expand mesh coverage. All these cases would benefit of specific configuration. As of today handling those configuration manually represents a barrier for communities without technical experts who could understand and optimize the devices ethernet ports configuration appropriately. Most of the described situation could be detected at runtime through automatic tests and the required configuration applied automatically, the goal of this project is to develop the software needed to accomplish automatically to the described needs.
RetroShare is a C++ software program that comprises a headless lib called "libretroshare". This lib is utilized to implement Retroshare application for various platforms. Retroshare also has a web interface which communicates with libretroshare using a JSON API that is automatically generated and contains all necessary functions for sending and receiving data from the software. The aim of my involvement in this year’s GSoC program is to create the remaining interface of the Retroshare's Web Interface. I will develop a list of features such as creating panels for software configuration, managing shared files, directories etc and will also fix the existing ones such as Files, Mail, Forums, Channel section etc.
<p>The idea is to replace the original map with a new one that looks better and represents nodes in a better way. Currently the map is very basic and there are a lot of things to add. But the main additions to make are: a full screen map, better color representation of nodes which are online or offline and possibly if they went offline a day ago, list of all nodes and accessibility to every node individually and to show some basic information about the node. This would greatly reduce the time when a node goes offline and a technician fixing it. Also users will be able to see how the network is working or if there is a problem they could alert someone or even fix the problem themselves.</p>
<p>Integrate a testing and mocking framework to LibreMesh and provide the functionality needed to easily write new tests for actual or new code. Add tests for the core functions of LibreMesh.</p> <p>LibreMesh as an embedded Operating System usually depends a lot on the underlying hardware. But, there are some parts of the code that don’t have that dependency, neither they depend on the network, or any particular state that the device could have. Also, there are many other cases were the states that one would like to achieve in order to reproduce a situation are complex or impractical. Unit testing the LibreMesh codebase will greatly help on approaching this two situations, and help having a much more robust solution for the communities it serves. Having automated unit testing integration test may improve the quality, the development speed, and shorten the release cycles of the LibreMesh software. Also, having tests that safeguard the core functionality may allow new developers to engage with the codebase with more confidence. For reviewers, it is also easier to understand and maintain code that has unit tests.</p>
LuCI is a framework used to build web interfaces for configuration and monitoring on embedded devices such as WiFi routers, etc. In the old CBI based system, pages were rendered on the router and delivered as HTML to the browser, leading to a higher load on the embedded devices. To address this issue, LuCI applications must be migrated to JavaScript-based framework to reduce the load on embedded devices and improve performance. This migration involves rendering pages on the client-side using JavaScript, rather than on the router. To facilitate this migration, LuCI provides a JavaScript API that will be used to build web interfaces that can be rendered in the browser. To make this migration possible, new RPCD services will be developed to provide data to the client side that was formerly used directly on the router. This data will be provided in JSON format via RPCD (Remote Procedure Call Daemon) and UBUS. These new RPCD services will need to provide the same functionality as the old system but in a format that can be used by client-side JavaScript. The migration of LuCI to JavaScript-based framework will offer several benefits to OpenWrt community and other users of OpenWrt-based devices. One of the primary benefits is improved performance and reduced load on embedded devices such as WiFi routers. By rendering pages on the client-side using JavaScript, rather than on the router, this will reduce the workload on the router and improve the UX for those interacting with the LuCI web interface. This will be particularly beneficial for users with lower-specification routers etc. Another benefit of the new system is increased flexibility for developers. The use of a client-side JavaScript framework provides developers with more options for customizing and extending the LuCI web interface. And this also provides a standardized way for developers to interact with the router's services which should make it easier to develop and maintain LuCI-based applications.
<p>I'd like to create an alternative to OpenWrt's UCI configuration system, improving on the following points:</p> <ul> <li>Structured (JSON-based) configuration inspired by gconf/dconf (instead of flat package/section/option config of UCI)</li> <li>Configuration schema that defines which keys with which value types are valid</li> <li>Saner upgrade behaviour (separate default values and user configurations, allow to upgrade defaults wichout overwriting user config; possibility to clean up obsolete configuration on upgrades based on the schema)</li> <li>Handling of different configuration sources (package defaults, firmware defaults, user settings, ...)</li> <li>Efficient configuration storage (binary database instead of text files; one single file instead of one per package; store only differences from default values)</li> </ul> <p>While the technical realization of this plan is not set in stone yet, I think this project will consist of the following parts (and their corresponding documentation):</p> <ul> <li>Configuration daemon</li> <li>C library (using ubus to communicate with the daemon)</li> <li>CLI configuration tool</li> <li>Lua binding for the C library</li> <li>(UCI config generator to allow using the new configuration system for normal UCI-based OpenWrt packages)</li> </ul>
ElRepo.io is an Android app that combines the RetroShare JSON API with a Flutter frontend aimed to share content into the RetroShare F2F network. Actually elRepo.io is on a beta state and need a series of feature implementation and unit testing to improve the user experience and scalability of the project. Together with my mentors I expect to implement desired features and unit testing, learning how Flutter works together with a first landing into RetroShare decentralized world.