Mahdi Rizk

EECS 485, Web Systems

Insta485 Templated Static Site Generator

A Python CLI that renders a static Instagram clone from Jinja2 templates and a JSON config, plus a hand-coded HTML version of the same pages.

WhenFall 2025
TypeCoursework
CourseEECS 485

What I built

  • Built the insta485generator package as a Click CLI that reads config.json, renders each listed template with its context into <url>/index.html, and copies static assets into the output tree.
  • Wrote error handling that exits non-zero with clear messages for a missing config, malformed JSON, a missing templates folder, template errors, or an existing output directory.
  • Wrote Jinja2 templates with inheritance and macros for the feed, post, user, followers, following, and explore pages.
  • Ran pycodestyle, pydocstyle, pylint, and html5validator from a test script and passed the public pytest suite locally.