Academic · 2026
Ludix
A video game store as two clients, an Android app and a web back office, served by a single REST API.

Ludix is a fictional video game store, built as a complete system rather than a single deliverable: a mobile app for customers, an admin site for the store, and a REST API between them.
What targeting two clients changed
Writing two clients against one API imposes a discipline a single-client project never asks for. Rename a field on the Laravel side and the Android app breaks, and the reverse holds too. So we froze the data contracts before designing any screens.
The design system
I started in Figma: a component library (buttons, product cards, form fields, loading states) with their variants. Then I implemented it twice, as Blade components on the web and as reusable views on Android.
Porting the same system into two technologies teaches you quickly which parts of a mockup are principles and which are details. A colour or a spacing value transposes without thinking; a hover state does not: it doesn’t exist on mobile, and you have to decide what replaces it.
A waterfall, on purpose
The project ran ten weeks, only five of them development: two for the website, two for the app, one buffer week. The rest went upstream, in classic waterfall fashion: requirements, feature table, context diagram, task breakdown and time estimates, before writing a line of code.
The final product was never deployed; that wasn’t the point of the course. I’ve since closed that gap on other projects, including a Laravel app shipped with continuous integration and deployment.
Highlights
- Two clients, one API: the Android app and the admin site consume the same REST endpoints, which forced us to settle the data contracts before writing any screens.
- An authenticated back office where administrators manage products, comments, events and user accounts.
- I built the reusable component library in Figma, then ported it twice: as Blade components on the Laravel side, as layouts and views on the Android side.
- A team of four. A significant share of my time went to unblocking teammates in their own code.
- Ten weeks, run as a waterfall: requirements, feature table and context diagram first, then five weeks of development (two for the website, two for the app, one buffer week). Deployment was not part of the scope.