Skip to content

Pro-joseph/Recipe_Manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🍲 Recipe Manager β€” MVC PHP From Scratch

Client: DigitalBite Agency Product Owner: Matbakhi

A custom PHP MVC web application that allows cooking enthusiasts to create, organize, and manage their personal recipes.

This project was built without any framework to deeply understand:

MVC architecture Object-Oriented Programming with encapsulation SQL relational modeling (Merise β†’ MCD β†’ MLD) Routing with .htaccess Agile workflow using Kanban (Jira)

🎯 Project Goal

Recipes were previously scattered across notebooks, photos, and Word files. This platform centralizes them into a structured, searchable, and shareable system.

🧠 Architecture Overview

URL β†’ index.php β†’ Router β†’ Controller β†’ Model β†’ View

Strict MVC separation:

Layer Responsibility Model Business logic + Database access (PDO) Controller Request handling + data orchestration View Display only (no SQL, no logic)

πŸ—‚οΈ Project Structure (MVC)

recipe-manager/
β”‚
β”œβ”€β”€ config/
β”‚   └── db.php
β”‚
β”œβ”€β”€ controllers/
β”‚   β”œβ”€β”€ AuthController.php
β”‚   β”œβ”€β”€ FavController.php
β”‚   └── RecipeController.php
|
β”œβ”€β”€ models/
β”‚   β”œβ”€β”€ category.php
β”‚   β”œβ”€β”€ favorites.php
β”‚   β”œβ”€β”€ recipe.php
β”‚   └── user.php
β”‚
β”œβ”€β”€ public/
β”‚   └── index.php
β”‚
β”œβ”€β”€ views/
β”‚   β”œβ”€β”€ auth/
β”‚   β”‚   └── login.php
β”‚   β”œβ”€β”€ css/
β”‚   β”‚   └── style.css
β”‚   β”œβ”€β”€ includes/
β”‚   β”‚   β”œβ”€β”€ footer.php
β”‚   β”‚   └── header.php
β”‚   β”œβ”€β”€ recipes/
β”‚   β”‚   β”œβ”€β”€ dashboard.php
β”‚   β”‚   β”œβ”€β”€ favorites.php
β”‚   β”‚   └── home.php
β”‚   └── index.php
β”‚
β”œβ”€β”€ schema.sql
└── README.md

🧩 Features (User Stories)

ID	Feature
US1	User Registration
Capture d’écran (11)
US2	User Login
Capture d’écran (10)
US3	Display my recipes
Capture d’écran (7)
US4	Create a recipe
Capture d’écran (12)
US5	Edit a recipe
US6	Delete a recipe
US7	Recipe categories
US8	Filter recipes by category
Capture d’écran (8) ``` Mes Favoris Page: ``` Capture d’écran (9) ``` Home Page: ``` Capture d’écran (4) Capture d’écran (5) Capture d’écran (6) ```

⭐ Bonus Favorites recipes

  • Recherche de Recettes : Ajouter une barre de recherche qui filtre les recettes par titre ou ingrΓ©dients.
  • Recettes Favorites : Permettre Γ  un utilisateur de marquer des recettes comme "favorites".

πŸ—ƒοΈ Database Design (Merise)

Capture d’écran (14)

Entities Users Recipes Categories Favorites (bonus) Relationships One User β†’ Many Recipes (1-N) One Category β†’ Many Recipes (1-N) Many Users ↔ Many Recipes (Favorites) MCD and MLD diagrams are included in this repository.

πŸ” Security Practices

PDO Prepared Statements password_hash() / password_verify() Strict form validation Foreign Keys for referential integrity

πŸ§ͺ SQL Deliverable

Full schema creation script Seeding: 3 users 10 recipes 4 categories

πŸ—ΊοΈ Agile Organization

Kanban board on Jira Daily standups Pair programming Retrospective completed

Screenshot of the final board included.

πŸ§‘β€πŸ’» Code Review Readiness

Each team member can explain:

The full MVC request flow The RecipeController SQL relations and JOINs Encapsulation and OOP structure

πŸ“Έ Included in Repository

MCD / MLD diagrams Jira board screenshot SQL script MVC structure This README

πŸš€ Learning Outcome

This project demonstrates a deep understanding of:

MVC from scratch Routing without frameworks SQL relational integrity Clean OOP design Agile teamwork

πŸ‘₯ Authors

##Pro-Joseph / wissalaitihya Developed in pair-programming mode as part of a backend developping training project.

About

Client: DigitalBite Agency Product Owner: Matbakhi A custom PHP MVC web application that allows cooking enthusiasts to create, organize, and manage their personal recipes.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors