Skip to content

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.

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

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.

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.

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.