#127 Outreachy proposal: MIgrate zezere, the Fedora IoT device onboarding webapp, to use FDO
Closed: fixed 2 years ago by riecatnor. Opened 2 years ago by pbrobinson.

One-line name:
Fedora IoT

Short title for this internship project proposal:
Extend Zezere, the Fedora IoT onboarding web app, to support the FIDO device onboarding spec and improve the web UX

Longer description of project:

The Fedora IoT project created zezere for onboarding devices into a network. It's a basic web app. Since we first wrote it a number of years ago the landscape has changed and the FIDO FDO (FIDO Device Onboarding) standard is a new more industry standard way of doing zero touch onboarding of devices.

The Red Hat Edge/IoT has an implementation of the FDO spec written in rust with a API that zezere should integrate with so that Fedora IoT can use the new open standard and replace the proprietary implementation that zezere currently uses. Zezere is written in Python/Django and uses the PatternFly design system to provide a consistent UX. There's probably a lot of other improvements and fixes that could be made to the Zezere UX and overall experience for managing devices, users and things like SSH public keys in general.

License of the project:

Zezere is licensed under the MIT licence, the FDO implementation is BSD-3

Longevity (How long has the team accepted contributions):

The Fedora IoT project was begun in 2016, zezere and FDO have been around less than that.

Community size:

Small but growing

How will this project benefit Fedora:

The Fedora IoT project deliverables are a Fedora Edition and improving the whole Fedora IoT experience will allow the userbase to grow.  It has a small but growing userspace and is already used by a number of companies.

Sample plan of work for the 12 week internship. What are milestones the
intern should be hitting? This doesn't need to be incredibly detailed and
can change later but there needs to be a general breakdown of tasks.

    Week 1-2: Meet the Red Hat Edge team. Learn the basics of zezere, the FDO implementation, in particular the APIs needed to implement the requirements. Understand the flow of onboarding and Edge device to get an understanding of what's required. Be able to spin up a FDO instance using the all-in-one option to be able to develop against.
    Week 3-5: Implement the initial API to speak to the FDO service. Implement some basic improvements and cleanups with zezere to ensure a good understanding of the development workflow
    Week 6-9: Be able to demonstrate an basic implementation that can use Zezere integrated to FDO to onboard a Fedora IoT device
    Week 10-11: Polish and cleanup of implementation with pull requests for reviews to merge
    Week 12: Final polish, updates to documentation and polish of the implementation and the UX.

Benefits to intern (What will the intern get out of this internship)
The candidate will learn various technical skills relating to software development in Django, Peython and potentially rust.
The candidate will learn development process using APIs and speaking with network services.
The candidate will learn about Fedora IoT and Edge devices, the FDO protocol to onboard devices with zero touch.
The candidate will learn modern agile development practices, working with an agile team, learn git development processes.
The candidate will learn about PatternFly.

Project website:

https://getfedora.org/iot/
https://docs.fedoraproject.org/en-US/iot/

Project repo:

https://github.com/fedora-iot/zezere
https://github.com/fedora-iot/fido-device-onboard-rs

Where can an applicant find application tasks?

The tasks will be documented at the various projects under the Fedora IoT github:
https://github.com/fedora-iot

IRC:
#fedora-iot on Libera.chat mailing lists: https://lists.fedoraproject.org/archives/list/iot@lists.fedoraproject.org/

Skills required including what level and if they are optional:

Python skills, and preferably an understanding of Django would be useful.
An understanding of network services and APIs

Outreachy applicants are required to make a contribution as part of the application. What is the process for making a contribution?
Reaching out on communications channels, an improvement to docs or a bug report on something you've discovered why investigating Fedora IoT and zezere (even a bug for docs).

Questions from the top level Outreachy Program for the mentor application:

How long have you been contributing to the community:

A number of members of the team has been involved in open source for well over 10 years.

What is your current role:

Fedora IoT leads, Red Hat Edge team members

Have you mentored for a three-month internship program before:

Yes (GSoC)

Have you read the mentor page and understand the process of being a mentor:

Yes

Are you available for 5 hours a week during the internship period:

Yes, there will be a few people in the team assisting in this process.

Are you available for 5-10 hours a week during the application period:

Yes

Are you aware you need to sign a mentor contract:

Yes

Metadata Update from @siddharthvipul1:
- Issue tagged with: Outreachy, project-idea

2 years ago

Hi @pbrobinson
can you put the project in outreachy website for us to get them in system?

Metadata Update from @riecatnor:
- Issue close_status updated to: fixed
- Issue status updated to: Closed (was: Open)

2 years ago

Login to comment on this ticket.

Metadata