Skip to content

Technical Onboarding

Tyler Chong edited this page Mar 7, 2024 · 16 revisions

Note: This document's purpose is meant to serve as a technical onboarding guide for new developers to the UIPA.org project. For a top level view of the project, consider starting here.

If you find yourself needing assistance (or just want to bounce ideas around), the #project-uipa channel in the codewithaloha.slack.com is the right place to chat. If you are setting up your development environment for the first time, you should follow one of the guides we have in order to start contributing.

The UIPA.org Development Board is how we are going to be keeping track of the work. As it is quite hard to parse the issue tree, this project board will be kept up to date with the "what's next" issues on deck and ready to be taken up.

Overview

UIPA.org is powered by two main @CodeWithAloha repositories, CodeWithAloha/froide and CodeWithAloha/uipa. A quick diagram as to how these interact:

flowchart TD
    UIPA.org-- Custom Froide Theme -->uipa
    uipa-- Underlying Froide App -->froide
Loading

"Froide" (stemming from "Freedom of Information de", de for Germany), is a Freedom of Information portal software written in Python with Django. It uses a few built-in Django key features, such as an Admin interface to manage and update entities and user management and authentication. For more information about froide, check out the docs and/or the repository.

In simple terms, CodeWithAloha/froide is the core repo while CodeWithAloha/uipa applies a theme on top of it. In which case, it is very likely any work you take on will be done in CodeWithAloha/uipa, and not CodeWithAloha/froide. See Theming Froide for a quick explanation.

Since this is a project with some history, there are various old artifacts present in each of the repositories. Today, the layout of the repositories is as follows:

CodeWithAloha/uipa Branches

  • main - Containing the code for the new and updated UIPA.org theme, this contains a new pull from the repo https://github.com/okfde/froide-theme
  • master - Last touched by @ryankanno as of 2018, should be feature complete and contain the features added on top of the initial fork

CodeWithAloha/froide Branches

  • main - Contains the code of a fresh pull from core repo of https://github.com/okfde/froide
  • master - Last touched by @ryankanno as of 2018, the code of the current portal

Note: As part of the revamping UIPA.org project, we are planning on pulling updated versions of both forks. This is so we can absorb new features, bugfixes, and patches naturally.

If you are wondering what this looks like in practice (other than UIPA.org), https://fragdenstaat.de/ and it's related code repository: https://github.com/okfde/fragdenstaat_de/ is a good place to start. This is an up to date platform that uses the same froide/froide-theme relationship, so if you are wondering if something is possible/can be done, take a peek and see how that repo does it.

Getting Started

Note: If you are just looking to pick up a task and don't need an explainer, check out the UIPA.org Development Board and pick a task from the "TODO" column.

This issue contains the bodies of work for this project in linked children issues. If you find yourself willing and a bit adventurous, you can click through the parents/children of that issue and see how the work is eventually going to fit together. Bodies of work are split by different labels (Epics, Tasks, ...etc) usually due to the scope of the work (see a brief explanation by Atlassian's "Stories, epics, and initiatives" for a brief explanation).

Most of the time, you will be picking up a "Task" which will lead into a larger "Epic". These "Epic"s focus on delivering large bodies of work, while tasks focus on individual work items.

Related Items

Clone this wiki locally