Skip to content
Betriebszeitung

by Tom SchornFull-stack and cloud

Projects

Projects

Three projects Tom Schorn has worked on, each with his own part in it.

Continued from page 1

Household

Five years of Excel, then the columns shifted

Duofy: a finance app for household planning, for two people or one

For more than five years, his family kept its household planning in an Excel sheet, following the 50-30-20 rule. It worked well until formulas stopped adding up and columns shifted. On top of that came a problem that only arises when people live together: a shared plan does not show that one partner runs short of money on a particular day.

From this experience Tom Schorn developed Duofy. The application asks up front where the money should go. At the start of the month you plan what is coming up, what you want to spend and where you invest, and tick it off later. Each person has their own plan and their own account; whatever is shared also appears in a household view. Duofy also works for one person on their own. Concept and development are by Tom Schorn; Claude Code supports him with the programming.

“I need clear structures, benchmarks I can orient myself by,” Schorn explains. “At the start of the month I make a plan: what is coming up, what do I want to spend, where do I invest?”

The hard part was the mix of a monthly view and planning: Duofy records on a monthly basis but puts the emphasis on planning. “It came out of my own problem and has to be generally usable for others. So I had to analyse how to develop a system that implements the approach of the original problem but can be carried over to other people,” Schorn explains.

Duofy runs as three containers using less than 256 MB of memory in total, and it can be self-hosted. It is licensed under the AGPL-3.0, is still below version 1.0 and is being developed further. The Excel sheet keeps running in the family until Duofy is ready for use.

Status: below version 1.0, in active development · AGPL-3.0

Tech: Python (FastAPI, SQLAlchemy, Alembic), PostgreSQL, React with TypeScript and Tailwind, Docker, GitHub Actions.

Duofy, monthly plan
1 The monthly plan in Duofy

Continued from page 1

Screenshot of the Florabase dashboard with test data: plants, alerts and recent activity
2 The Florabase dashboard, shown here with test data

Growing

Florabase: a tool for growing plants

Not every plant grows the same way, and soil and hydroponics differ fundamentally. Tom Schorn chose Florabase in the full-stack track at Masterschool: he needed a project, and he is very interested in plants, hydroponic ones included. The tool was meant to be useful to others from the start.

“I started Florabase as a side project because I could not find a tool that was really built for hobby gardeners,” he told the newsroom. “Not every plant grows identically. Every plant has its own specifications,” Schorn said.

In it, Mr Schorn documents what he did and which fertilisers he used, and he calculates fertiliser amounts, including for multi-component fertilisers. That makes growing more controlled. The first version had an AI advisor that gave recommendations based on entries and logs. Because of the EU AI Act, Schorn switched it off. Today the focus is on automation: devices and controllers from other manufacturers should be connectable, so that control, monitoring and logging are in one place. For beginners there is also a diagnosis of plant diseases from a photo, which runs through the interface of an external provider.

Status: version 2 is in use, version 3 is being re-planned, and a review comes first.

Tech: React, shadcn/ui (App); Astro, Directus (Frontpage and content); Python, FastAPI, PostgreSQL, REST API (Backend)

Continued from page 1

Cloud

From a local setup to the AWS cloud

GroceryMate on AWS: cloud deployment of an existing e-commerce application

In the Masterschool cloud engineering capstone project, Tom Schorn moved an existing grocery web shop application to the AWS cloud. The application (Python with Flask, React, PostgreSQL) comes from Alejandro Roman Ibanez of the Masterschool programme. Schorn's share was the cloud part, which he implemented on his own. “First I analysed what was there, what was needed, and what the customer really needs,” Schorn explains.

The result: a VPC with one availability zone and a public subnet, an EC2 instance as the application server running Docker, an RDS database with PostgreSQL, plus security groups and IAM roles. Later it turned out that the customer wanted to be told about outages. Schorn built a health check for this: a Lambda function with its own IAM role is triggered through EventBridge, logs to CloudWatch and sends an email alert through an SNS topic.

Schorn's share

The GroceryMate application comes from Alejandro Roman Ibanez of the Masterschool programme. On a fork, Tom Schorn took over only the cloud and operations part: containerisation, infrastructure and deployment on AWS. The application code is the template.

GroceryMate architecture on AWSInside the AWS Cloud sits a VPC with one Availability Zone and one public subnet. An EC2 instance runs in it as the application server with Docker. The RDS database with PostgreSQL is in the same Availability Zone but outside the subnet; no connection is drawn between EC2 and RDS. Security groups and IAM roles are part of the setup. Outside the VPC runs the health check chain: Amazon EventBridge triggers an AWS Lambda function with its own IAM role. The Lambda function writes logs to Amazon CloudWatch and notifies Amazon SNS, which sends an email.AWS CloudVPCAvailability ZonePublic subnetAmazon EC2application server, DockerAmazon RDSPostgreSQLSecurity groups, IAM rolesAmazon EventBridgeAWS Lambdahealth check,own IAM roleAmazon CloudWatchlogsAmazon SNSnotificationEmail
3 GroceryMate architecture on AWS: the network with application server and database on the left, the health check chain on the right. Icons: AWS Architecture Icons.

Cloud Engineering final project · completed

Application (given): Python, Flask, React, PostgreSQL

Schorn's part: AWS, VPC, EC2, RDS, Lambda, EventBridge, CloudWatch, SNS, IAM, Docker

Continued from page 1

At home

A network bigger than it needs to be

At home, Tom Schorn runs a homelab with Proxmox, LXC containers and virtual machines, plus a network with VLANs. “I have to admit, a bit overengineered,” says Schorn of his network. The neighbours are connected to it as well: Schorn provides them with internet. He wanted to keep things cleanly separated and under control, among other things his smart home and his tinkering projects.

Curiosities

For his 32nd birthday, Schorn gave his community a little extra. Continued on page 6

More on GitHub. Further contributions and code samples: github.com/tom-schorn