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
- Change the Docker subnet to
- File Sharing
- Get into the settings (gear icon, top right) -> Resources
- Run
docker compose up -dfrom a terminal/command prompt, in the folder that Git created- i.e. the one that has
docker-compose.ymlin it
- i.e. the one that has
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 |