M & C 2025 is a fully functional wedding website built using the MERN stack (MongoDB, Express, React, Node.js) with Cloudinary for cloud-based image storage. The website is designed to provide an interactive and seamless experience for wedding guests, offering features such as RSVP functionality, a photo gallery, and event details.
- RSVP Form: Guests can RSVP directly on the website, with email notifications sent to the couple.
- Photo Gallery: A dynamic gallery showcasing wedding photos, categorized for easy navigation.
- Image Upload: Guests can upload photos, which are stored in Cloudinary and metadata is saved in MongoDB.
- Event Details: Comprehensive information about the wedding, including venue, timeline, and FAQs.
- Optimized Performance: JSON caching for faster image metadata retrieval and reduced database load.
Visit the live site: M & C 2025
Follow these steps to set up the project locally:
- Node.js (v16 or higher)
- MongoDB (local or cloud instance)
- Cloudinary account for image storage
-
Clone the Repository
git clone https://github.com/wedding-2025/MandC2025-frontend.git cd mandc2025
-
Install Dependencies
npm install
-
Set Up Environment Variables Create a
.env
file in the root directory and add the following:VITE_RECAP_BACKEND_URL=http://localhost:4000 VITE_CLOUDINARY_CLOUD_NAME=your-cloudinary-cloud-name
-
Start the Development Server
npm run dev
-
Backend Setup Ensure the backend server is running. Refer to the backend repository for setup instructions.
-
Access the Application Open your browser and navigate to
http://localhost:5173
.
- Navigate to the Recap section.
- Use the dropdown to select a category (e.g., "Church" or "Traditional").
- Click the Upload button to add images. Images are stored in Cloudinary, and metadata is saved in MongoDB.
- Browse categorized photos in the Recap section.
- Click on any image to view it in a carousel.
- Go to the RSVP page to confirm attendance.
- Fill out the form, and an email notification will be sent to the couple.
src/
├── pages/ # Main pages (Home, RSVP, Recap, Details)
├── wed-components/ # Reusable components for each section
├── assets/ # Static assets (images, fonts, etc.)
├── App.jsx # Main application entry point
└── main.jsx # React DOM rendering
- Frontend: React, Vite, TailwindCSS
- Backend: Node.js, Express.js
- Database: MongoDB
- Cloud Storage: Cloudinary
- Other Tools: Axios, React Helmet, React Toastify
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch (
feature/your-feature-name
). - Commit your changes.
- Open a pull request.
For inquiries or support, contact the developer:
- WhatsApp: Message Me
- Email: raphaelumeh21@gmail.com
- X: Formally Twitter
- GitHub: Check out my repos
This project is licensed under the MIT License.