Projects to build
Ten student projects, each one taken from its table design to a working app. They are ordered: the first teaches the conventions the rest assume, and each adds one thing the last did not have.
These are not screenshots of something that once worked. Every command was run from an empty app, on both stacks, in the order it appears — and three bugs in Flare were found and fixed in the writing of the first two pages. Where something does not work, the page says so instead of showing a command that fails.
The pages
Section titled “The pages”What each one teaches
Section titled “What each one teaches”They are ordered so that each adds one thing:
| Project | New in it | |
|---|---|---|
| 1 | Lost and found | Uploads, two relations to one table, a conditional field |
| 2 | Library | Many-to-many as a resource, title versus copy, money |
| 3 | Marketplace | A table pointing at itself, several files per record, ratings |
| 4 | Complaints | Anonymity that removes the name, an append-only trail |
| 5 | Event ticketing | Why an order is not a ticket; a code scanned once |
| 6 | Fees | Money as an integer, idempotent webhooks, a Student table |
| 7 | Clinic | Confidentiality per role, stock batches, enum limits |
| 8 | Hostel | A four-level hierarchy, and allocating the smallest unit |
| 9 | Exams | Reused questions, one table for two answer shapes |
| 10 | Course registration | A deep tree, and a junction from a table to itself |
What these pages assume
Section titled “What these pages assume”That you have read the quickstart and have an app running. Beyond that they are self-contained, and each says which of the others it builds on.
How to use one
Section titled “How to use one”Read the design section first and argue with it. The table design is the project — it is the part your supervisor will question and the part Flare turns directly into code. If you disagree with a modelling decision, change it; the commands are three lines of text, not a scaffold you are stuck with.
Then run the commands. Then read the last section of the page, which is the part Flare does not write: the matching algorithm, the fine calculation, the timetable solver. That is your actual contribution, and every page names it explicitly so you can tell the difference between what you generated and what you built.
A note on scope
Section titled “A note on scope”Flare generates the parts of an application that are the same in every application: tables, migrations, validation, a REST API, an admin with list, create, edit and detail screens, uploads, roles. That is most of the code and almost none of the interesting decisions.
It does not generate your domain logic, and these pages do not pretend it does. A library without a fine rule is a catalogue; the rule is yours.