LibreMesh Pirania UI – A final overview

Hello Freifunk community!

Working on this project has been amazing, not only have I been able to work hand in hand with great developers but I have also learned a lot of things related to software development that will probably be useful for me in the future. The main idea of this project seeks to improve the implementation of the administration interface of the Pirania captive portal which is implemented in LibreMesh, a plugin used in different Community Networks.

During these weeks, I focused on 3 aspects: design, testing and implementation.To create the sketches that would allow me to detail the achievement of our ideas, we chose a tool called Figma, in this I could deploy the initial designs that we plan to implement for this project. Below you can see some of the screens I created:

List of vouchers screen

In this first screen we thought of some functionalities such as being able to search for vouchers, list vouchers and access another screen to create vouchers, when we choose the option to create vouchers we will see a screen like the following one:

Voucher creation screen

In this screen you can find some functionalities such as:

– Description field, to identify who the voucher is for or what it is used for.

– Choice of the duration time since the voucher activation.

– Choice of voucher permanence, to establish whether a voucher can be used for “unlimited” time or not.

– Possibility to choose how many vouchers to create.

– Possibility to edit a voucher created to correct any typo in the description or to “delete” a voucher so that it can no longer be used.

– And set the possibility of choose some other advanced options such as setting an expiration date to activate the vouchers.

– At the end of the voucher creation, generate a metadata page to deliver the voucher passwords and other data of interest such as the description and the voucher creation date.

Voucher details

In this screen we access after selecting a specific voucher in the voucher list and we can find some features such as the availability status, the creation date and the password that enables access.

As you can see, the idea of these screens is to maintain a similar and clear aesthetic, just like the LimeApp.

After that, I was working on a TDD framework to write the tests for these screens, I used technologies like React Testing Library and Jest. screens, I used technologies like React Testing Library and Jest.

Working on these tests was my favorite part of the project, as I feel that I was able to learn many things in this area and discover tools that I did not know.

Currently this project is at this point, however, I will continue working on new updates to implement all these ideas that I have been working on these weeks.

Finally, I want to thank Freifunk and my mentors for helping me in this process, it has been very rewarding for me to share and learn so much from them!

Thanks for reading,

Angie.

LibreMesh Pirania UI – Design Proposal

Hello Freifunk community 🙂

After having spent several weeks inquiring into the LibreMesh project, I have continued working with my mentors Santiago and Germán to think about some improvements for the Pirania plugin. For this reason, the main idea of this post is to expose the functionalities that we have thought about implementing to improve this Captive Portal for Community Networks.

Also, after having been chatting and reading about the needs that arise in the communities to adopt the use of the captive portal in the LimeApp, we defined that some of the functionalities to implement in the Pirania administration interface are:

For the creation of vouchers:

– Description field, to identify who the voucher is for or what it is used for.

– Choice of the duration time since the voucher activation.

– Choice of voucher permanence, to establish whether a voucher can be used for “unlimited” time or not.

– Possibility to choose how many vouchers to create.

– Possibility to edit a voucher created to correct any typo in the description or to “delete” a voucher so that it can no longer be used.

– And set the possibility of choose some other advanced options such as setting an expiration date to activate the vouchers.

– At the end of the voucher creation, generate a metadata page to deliver the voucher passwords and other data of interest such as the description and the voucher creation date.

In the following images you can see some of the interfaces I have designed for this project:

Voucher creation screen.

Metadata creation screen.

For Voucher Administration:

In a general administration page, to be able to have some functionalities such as:

– Establish a search field for vouchers.

– View the last vouchers created.

– View active vouchers.

– View vouchers that are in “Permanent” or “Not Permanent” status.

– View vouchers that were created from the current node.

An example for voucher administration:

Vouchers list interface.

These interfaces were designed in Figma, so they can be modified in the future and the final implementation.

The next challenge is to start writing the tests of the proposed interfaces in a Test Driven Development framework to later implement the functionalities in the LimeApp.

Thanks for reading,

Angie.

LibreMesh Pirania UI – An Overview

About me

Hello there! I am Angie Ortiz Giraldo, one of the students selected for Google Summer of Code 2021, I’m very happy for have this opportunity and share this overview about my GSoC project. In this project I will be working with LibreMesh organization, a sub-organization of Freifunk in this GSoC. I am interested in software development and Community Networks environment. In this field, I have worked in different projects about Community Networks in Colombia that have implemented LibreMesh for their networks. For this reason, I am interested in improve and expand LibreMesh functionalities in some way.

About LibreMesh

LibreMesh is a modular framework for creating OpenWrt-based firmware for wireless mesh nodes. Several communities around the world use LibreMesh as the foundation of their local mesh firmwares. The project includes the development of several tools. The firmware is the main piece and allow simple deployment of auto-configurable multi-radio mesh networks. If you want to know more about LibreMesh you can go to the project website.

My GSoC Project

The main idea of this project seeks to improve the implementation of the administration interface of the Pirania captive portal which is implemented in LibreMesh, a plugin used in different Community Networks. I propose to divide the project in three important pillars: Solution design, Coding and Documentation. Every stage will have different task to do, and some deliverables.

Deliverables

  • Develop an UI proposal for the Pirania captive portal.
  • Plugin for the LimeApp that implements the UI with the required functionalities.
  • Coding tests for the functionalities implemented.
  • Write blog posts about different project stages.
  • Write documentation about features, and how to add plugins to Lime-App.

And more!

To sum up, this in a first approach about the project, but I hope to share some advances soon 🙂

Thanks for reading,

Angie.