Screenshot welcome page to Recipe App

Recipe App

A Case Study in Full-Stack Python Development

Project Pitch:

This project was a comprehensive journey through the Python ecosystem, beginning as a simple command-line application and evolving into a full-stack, deployed web application...

My Role

Sole Developer

Responsible for database design, backend logic, frontend views, and deployment.

Duration

~8 Weeks

(May 2025 – June 2025)

Tech Stack

  • Python
  • Django
  • PostgreSQL (Production)
  • MySQL (Development)
  • SQLAlchemy (Initial Phase)
  • Heroku, Gunicorn, WhiteNoise

The Process & Challenges

The project was split into two main achievements: first, building a robust command-line tool with a proper database, and second, migrating that logic to a full-stack web framework (Django) and deploying it.

Challenge 1: Data Persistence: Evolving from Files to a Relational DB

Problem: The project started as a command-line app (Achievement 1) that needed to persist data. The initial version used Python's pickle module, which is insecure and not scalable.

Solution: I first migrated the app to use a MySQL database, interfacing with it using the SQLAlchemy ORM...

Visual Proof: Data Model Evolution

Before (Pickle)

Screenshot of insecure pickle code for data persistence

After (Django Model)

Screenshot of the Django models.py file

Challenge 2: Architecture: Migrating to a Full-Stack Django App

Problem: The command-line app needed to be accessible on the web. This required a complete architectural shift to a web framework.

Solution: I rebuilt the application from the ground up using the Django framework...

Visual Proof: Django Class-Based Views

Screenshot of Django views.py showing class-based views

Challenge 3: Security & Deployment: User Authentication and Production

Problem: The app needed to be secure, ensuring users could only see and edit their own recipes. It also needed to be deployed live to the web.

Solution: I implemented Django's built-in authentication system to create secure user registration...

Visual Proof: User Authentication

Screenshot of the Recipe App login form
Screenshot of a user's private recipe list

The Final Solution

The final product is a secure, deployed, full-stack Django application. Users can register, log in, and perform full CRUD operations on their personal recipe collection.

Recipe App user flow demonstration

Key Learnings & Future Steps

Key Learnings

This project was a foundational lesson in data modeling, framework architecture (Django), and the complexities of migrating from a simple script to a production-ready web service.

Future Steps

The next steps are to enhance the feature set:

  • Add image uploading for recipe photos
  • Implement a "shopping list" generator
  • Create a public-facing page to browse recipes

View the Project