We Recipe
WEB
Detailed Description
“We Recipe” is a small social networking platform designed for cooking enthusiasts to share recipes, dish photos, comments, and interact with one another. The main goal is to build a simple and user-friendly platform that runs reliably on legacy technologies (pure PHP), allowing a deeper understanding of system architecture without relying on modern frameworks.
📌 System Architecture
-
Custom-built MVC architecture
- Model: Handles MySQL queries and maps results into structured objects.
- View: Pure HTML and CSS with embedded PHP variables.
- Controller: Manages requests, validates sessions, calls models, and renders views.
-
Manual Routing
- A single
index.phpfile processes all incoming requests, reads theactionparameter, and routes to the appropriate controller.
- A single
-
Session-based Authentication
- Login, logout, and user state stored using
$_SESSION. - Custom middleware to verify user permissions for recipe management pages.
- Login, logout, and user state stored using
-
Media Upload
- Recipe images uploaded to the
/uploadsdirectory. - File validation for MIME type and file size.
- Recipe images uploaded to the
-
Pagination & Search
- Search recipes by dish name or ingredients.
- Pagination implemented to improve performance when listing large sets of recipes.
📌 Technologies Used
- Backend: Pure PHP (no framework)
- Frontend: HTML5, CSS3, Vanilla JavaScript
- Database: MySQL
- Architecture: Custom MVC, manual routing
- Authentication: PHP Session
- Other: File uploads, PDO prepared statements, modular PHP components
📌 Key Features
- User registration, login, logout (session-based)
- Create recipe posts (title, ingredients, method, image)
- Comment on recipes
- Manage recipes: create, update, delete
- Recipe search by name or ingredients
- User profile pages
- Pagination for recipe listings
📌 Future Enhancements
- Upgrade to Laravel or Next.js + REST API for a more modern architecture
- Add features such as likes, saved recipes, and user following
- Implement real-time notifications using WebSocket
- Use Redis for caching and reducing load on MySQL
- Switch from session-based auth to JWT or OAuth2
- Integrate a CDN to accelerate image loading
- Add AI features to recommend recipes and classify dish images
Created at: 11/1/2025



