Welcome to the Org Rewrite

The org discord is where most of the discussion, meetings and planning happens

The purpose of this site is to give a broad overview about what things are being worked on, where we need help, and how to start contributing

Setting up the Development Environment

  • Install Docker Desktop. Git, and a code editor of your choice
    • Intellij Idea is recommended for back-end (the free license is enough)
  • Use Git to pull the code from Github
  • Run Docker Desktop
    • Get into the settings (gear icon, top right) -> Resources
      • File Sharing
        • Add the folder that Git created from the previous step
      • Network
        • Change the Docker subnet to 10.0.0.0/24
  • Run docker compose up -d from a terminal/command prompt, in the folder that Git created
    • i.e. the one that has docker-compose.yml in it

No "AI" code allowed, period

It generates correct-looking things, and it takes time for someone with experience to comb through it and find/fix the issues.
That type of work burns people out and takes time away from experienced folks

Can I really help?

tl;dr: If you're asking this, then give it a shot!

If you're willing to learn, can google yourself out of some problems, and have the grit to push through the rest
then you'll be fine

Experience is good, but Drive and Determination is what gets projects finished

We'll take someone with no experience but has passion
over a diva Senior-whatever any day of the week

The Tech Stack

  • Apache at the "network edge" for SSL termination and reverse-proxying
  • Tomcat to serve the Application and API (yes, they're separate)
  • Vue.js for front-end
  • Kotlin as the back-end & API language, using Spring Boot
  • phpBB for the forum
  • Postgres for database needs

There's more to it than that, but that's the most important stuff

Whatever we have meaningful work done in is locked-in and non-negotiable
Otherwise, we'd be here for years going back and forth between options

But why (Thing X) instead of (other options here)?

Because volunteer projects mean that there will never be a perfect match between what you have experience with and what everyone else has experience with

We made decisions to be able to move forward

At our scale the performance difference between, say, Kotlin and Go isn't meaningful
Network latency (between the end-user and the site, and between the internal layers) is going to dominate

What are we working on/what do we need?

Done? Part Description Skills wanted
Back-end + API Make controllers that can handle the old org URL format and identifiers so we don't break everyone's existing links Basic programming knowledge
Front-end Extend the basic theme in Keycloak to make the login page use our colors and logo CSS
Back-end Use Squids to make ids more presentable Basic programming knowledge
Front-end Take the site design, and put it into a grid system. Specify margins/padding/gutters/etc... Typography, CSS
Infrastructure Use KeepaliveD to enable automatic failover between identical containers Networking, Docker
Infrastructure Make our own container for phpBB instead of relying on old ones from DockerHub Docker, System Administration