Vintage Portfolio
Description
### Client - Vintage-themed Home page, about, services, and portfolio sections - Dynamic portfolio gallery with auto-generated category filters - Dedicated portfolio details page with an image viewer - Services and portfolio content fetched from the database via REST APIs (no hardcoded mock data) - WhatsApp-integrated contact form — messages are sent through the WhatsApp Cloud API and stored in MongoDB in the background (non-blocking via `after()`) - Fully responsive, styled with Tailwind CSS + daisyUI ### Admin - Email/password authentication with hashed credentials (bcrypt) and JWT sessions - Password recovery flow: account lookup → emailed verification code → reset - Dashboard overview with stats and a donut chart - Full CRUD for portfolio items and services - Image uploads to Cloudinary (10 MB max, type-validated) with Cloudinary-side deletion on record removal - Inbox for visitor messages and a notification system - Global search across content
Project Media Gallery



