A full-stack job board built twice: once as a public website and once as a client app, to satisfy two parallel university modules with one coherent product.
Two modules ran in the same semester: one wanted a backend-driven website, the other wanted a client-side application. Instead of building two unrelated demos, I designed one product, JobHunter, and shipped both deliverables against the same domain: registration, login, live job listings, save-for-later, and a personal saved-jobs dashboard.
The result is one of the few uni projects that actually feels like a product instead of a worksheet.
Most students treated the two modules as separate problems and got two half-finished demos. I treated them as one and got a product I'd actually let someone use. That's the lesson: constraints are usually less rigid than they look if you're willing to design through them instead of around them.