Secondary school · 2021
Gest - E-commerce & Stock Management
My first large project, built in OutSystems in my final year of secondary school.
Context
A curricular internship at ITGlee in 2021. The project was my own: I started it during the internship and continued it as my secondary-school final project, right up to presentation day. Built in OutSystems.
The problem
A hardware store has two users with opposite needs. The customer wants to search, compare and buy quickly, and does not care what happens behind the scenes. Whoever runs the warehouse wants to know what is in stock, what is missing and what is moving, and does not want to browse a shop to find out.
Serving both from the same information, without building two disconnected applications that would have to be kept in sync, was the real problem. The store itself is the easy part.
Technical decisions
One source of information for both sides
The stock the manager sees and the availability the customer sees are the same information presented two ways, not two systems trying to stay in sync. Duplicating would have been faster to build and guaranteed divergence at the first change — the moment the shop shows a product the warehouse already knows has run out.
A back-office designed for someone who is not technical
The person running the inventory is not a programmer and is not going to read instructions. The operations done every day — receiving stock, correcting quantities, seeing what is running low — had to be in plain sight and hard to trigger by accident. That changes the design: the screen is not decided by the feature, it is decided by how often the feature is used.
OutSystems, with what that gives and takes
The platform was the context the project was born in. It speeds up building screens and forms enormously, and takes away freedom the moment you need to step off the expected path. It was the first time I understood that a tool which solves ninety per cent of the work in half the time can turn the last ten per cent into the hardest part of all.
What went wrong
I was learning the tool at the same time as I had to deliver with it.
There was no part harder than the rest — all of it was hard, because every structural decision came before I had the experience to make it. I would choose a way to organise the data, move forward, and two weeks later understand why it did not work. I repeated that enough times for it to stop being bad luck and start being learning.
It was the project that taught me writing code is the easy part. The hard part is deciding the structure that holds it up — and that decision is made before there is any code to judge it by.
Outcome
Delivered and presented in 2021, with the store and the back-office running on the same data model.
What I'd do differently
I would design the data model on paper before opening the tool. In 2021 I started with the screens, because they were the part I could see — and every time the structure underneath was wrong, I had to redo the screens as well.