All projects

Backend & web applications

Little Lemon · Django

A database-driven restaurant website: menu and dish pages generated from Django models, managed by staff from a customised admin.

  • Individual project
lines of code to change to edit the menu
0
Django, major version
5

01Starting point

Context & mission

The problem

A menu hardcoded in HTML means touching the code every time a dish or a price changes.

The mission

Build a restaurant site where the menu lives in the database and is managed without a developer.

My role

Designed and built on my own.

02Execution

What I did

  1. Data-driven menu

    Dishes fetched through the Django ORM, sorted alphabetically, with a detail page for each dish.

  2. Dish images

    Images stored through ImageField, processed with Pillow and shown in the menu and dish pages.

  3. Customised admin

    Custom displayed columns and search: staff add, edit and delete dishes without touching code.

  4. Reusable templates

    Template inheritance, class-based views and responsive CSS without a heavy framework.

03Design

Architecture

Django’s Model-View-Template architecture: routing leads to views, which read models through the ORM (SQLite) and render templates.

MVT architecture
  1. Browser
  2. URL routing
  3. ViewsClass-based
  4. Models · ORM
  5. SQLite
Supported by
  • Django AdminMenu management
  • TemplatesInheritance

04Impact

Results

  • A menu managed entirely from the admin.
  • Consistent pages thanks to template inheritance.

05Wrap-up

Takeaways

What this project proves

That I separate content from code from the start: staff manage, the site follows.

Learnings and next steps

The reservation page is informational; a real booking flow would be the next step.

06Technology

Full stack

  • Python
  • Django 5
  • Django ORM
  • SQLite
  • Pillow
  • HTML
  • CSS