TK

PlateMate - Recipe Sharing Social Website

Date

March 2025 - April 2025

Service

Object Oriented Programming

Client

University Project

Stack

JavaHTML5CSS3JavaScriptSpring BootMongoDB
PlateMate - Recipe Sharing Social Website

Introduction

Managing and sharing recipes online often feels clunky, outdated, or overly complicated. Many existing platforms lack secure user management, scalable APIs, or a focused social experience around food. PlateMate was developed to rethink recipe management—not just as a database, but as a minimalist social platform for food lovers.

The Challenge

The goal was to build a full-stack recipe management system that allows users to:

  • Browse and filter recipes

  • Create and update their own entries

  • Favorite recipes they like

  • Securely register, login, and manage sessions

  • Share and discover new dishes through a feed-like structure

On top of functionality, we aimed to implement:

  • A clear, modular backend structure (OOP principles)

  • Secure authentication using JWT

  • A clean frontend interface that communicates via REST API

  • Scalability and maintainability using modern frameworks

The Solution

Backend (Java + Spring Boot + MongoDB)

  • Layered architecture (Controller → Service → Repository) following SOLID principles

  • User and Recipe models stored in MongoDB using document-based schema

  • Spring Security + JWT: authenticated access to protected endpoints

  • DTOs and Mappers for clean separation between internal data and exposed API

  • Global exception handling with descriptive error responses

  • Pagination, filtering, and CRUD endpoints for recipes

  • Favorites system per user (many-to-many logic)

Frontend (React or your tech stack, optional)

  • Minimal UI to create, read, and browse recipes

  • Auth-integrated user flow (register/login/logout with JWT storage)

  • Recipe feed with filtering by name, category, and cooking time

Key Features

  • 🔐 JWT-based Authentication: Secure access to protected routes and user data

  • 🗂️ MongoDB Integration: Flexible storage of nested recipe data and user relations

  • 💾 Favorites System: Users can like/save recipes and view personal collections

  • ⚙️ Modular OOP Design: Service/repo interfaces, clean separation of concerns

  • 🧪 Global Exception Handling: Centralized error management for cleaner UX

Conclusion

PlateMate isn’t just a CRUD project—it’s a testbed for building production-grade backend systems with security, scalability, and user experience in mind. It taught us how to think beyond features and into system design, modular development, and clean, testable code.