Back to list

PlateMate Social

Date

March 2025 - April 2025

Service

Object Oriented Programming

Client

University Project

Stack

JavaHTML5CSS3JavaScriptSpring BootMongoDB
PlateMate Social

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.