0% found this document useful (0 votes)
15 views8 pages

Project Summary T

Uploaded by

Rajneesh Rana
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views8 pages

Project Summary T

Uploaded by

Rajneesh Rana
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 8

Project Summary: Gift Printing and Photo/Video Booking Platform

Overview

This project is a comprehensive platform built on the MERN stack (MongoDB, Express.js, React.js,
Node.js) that allows users to book photo and video services, manage their bookings, order custom
photo albums, and print personalized gift items like mugs, bottles, and T-shirts. The platform is
designed to provide a seamless user experience with a modern, responsive design powered by
Tailwind CSS, secure payment processing via Razorpay, efficient media management through
Cloudinary, and reliable email communication using Google SMTP.

Key Features

1. User Registration and Authentication

- Custom authentication system with OTP verification for enhanced security.

- Password reset via email-based OTP using Google SMTP.

- OTP sent via email or phone before completing user registration.

2. Photo/Video Upload

- Users can upload and manage media files through Cloudinary.

- Metadata and URLs for uploaded media are stored in MongoDB.

3. Booking System

- Integration with Razorpay for secure payment processing.

- Users have the option to pay in full or with a partial deposit for booking services.

- Booking details and statuses are tracked in MongoDB.

4. Album Printing Service

- Users can upload photos or videos shot elsewhere and choose from various album printing
options.

- Fully integrated with the booking and payment systems.

5. Gift Item Printing

- Users can select from a variety of gift items like mugs, bottles, and T-shirts for custom printing.
- Photos for printing are uploaded and managed via Cloudinary.

- Customization options allow users to preview and adjust the placement of images on items.

- Orders are integrated with the booking and payment systems.

6. Admin Dashboard

- An intuitive admin interface for managing bookings, updating statuses, and handling content.

- Additional tools for managing gift printing orders and tracking inventory.

7. Brand Page

- A customizable page that showcases the platform's services and portfolio, enhancing brand
visibility.

8. Notification System

- Automated email notifications for various events using Google SMTP, such as booking
confirmations and status updates.

- Option for phone notifications as well.

9. User Profile Management

- Users can view and manage their profiles, including booking history and gift printing orders.

10. Reviews and Ratings

- Users can leave reviews and ratings for the services they have availed.

11. Dynamic Pricing

- Prices adjust dynamically based on factors such as demand and timing, ensuring competitive
pricing for users.

12. Promotions and Discounts

- Promotional codes and discounts are available for users to enhance customer engagement.

13. Social Media Integration

- Users can share their experiences on social media and log in via social media accounts.
14. Multilingual Support

- The platform supports multiple languages, making it accessible to a broader audience.

15. Advanced Search and Filtering

- Users can easily find specific services or packages through advanced search and filtering options.

16. Customer Support Chatbot

- A real-time chatbot provides customer support, answering user queries and guiding them
through the platform.

17. Referral Program

- Users can earn rewards by referring new customers to the platform.

18. Customizable Service Packages

- Users have the flexibility to create and customize their service packages according to their needs.

19. Calendar Integration

- Booking dates and reminders can be synced with users' calendars for better scheduling and
reminders.

20. Push Notifications

- Notifications are sent for bookings, updates, and promotions, keeping users informed in real-
time.

Technologies Used

- Frontend: React.js, Tailwind CSS for styling.

- Backend: Node.js, Express.js, MongoDB for database management.

- Payment Processing: Razorpay.

- Media Storage: Cloudinary.

- Email Communication: Google SMTP.


Project Objectives

- User Experience: To create a platform that offers a seamless, user-friendly experience for booking
services and customizing orders.

- Scalability: The project is structured to support scalability, allowing for future growth and the
addition of new features.

- Security: Ensures secure user authentication, media management, and payment processing.

- Flexibility: Offers customizable services and products to meet diverse user needs.

Potential Impact

This platform aims to simplify the process of booking photo/video services and ordering personalized
gift items, making it a valuable tool for users seeking convenience and customization. The integration
of dynamic pricing, promotions, and multilingual support ensures that the platform can cater to a
wide range of users, enhancing its reach and effectiveness in the market.
backend/

├── config/ # Configuration files (e.g., database, environment variables)

│ ├── db.js # MongoDB connection setup

│ ├── cloudinary.js # Cloudinary configuration

│ ├── razorpay.js # Razorpay configuration

│ └── smtp.js # Google SMTP configuration

├── controllers/ # Controllers to handle the business logic

│ ├── authController.js # User authentication and registration logic

│ ├── bookingController.js# Booking-related logic

│ ├── mediaController.js # Media upload and management logic

│ ├── giftController.js # Gift item printing logic

│ └── adminController.js # Admin-related logic (manage bookings, users, etc.)

├── models/ # Mongoose models for MongoDB collections

│ ├── User.js # User model

│ ├── Booking.js # Booking model

│ ├── Media.js # Media model

│ ├── Gift.js # Gift item model

│ └── Review.js # Reviews and ratings model

├── routes/ # API routes

│ ├── authRoutes.js # Routes for authentication

│ ├── bookingRoutes.js # Routes for booking operations

│ ├── mediaRoutes.js # Routes for media upload and management

│ ├── giftRoutes.js # Routes for gift item operations

│ └── adminRoutes.js # Routes for admin operations

├── middlewares/ # Custom middleware for authentication, error handling, etc.

│ ├── authMiddleware.js # Middleware to protect routes


│ ├── errorMiddleware.js # Error handling middleware

│ └── uploadMiddleware.js # Middleware for handling file uploads

├── utils/ # Utility functions and helpers

│ ├── sendEmail.js # Utility for sending emails

│ ├── paymentHelper.js # Helper functions for payment processing

│ └── responseHelper.js # Helper functions for standardized API responses

├── views/ # Email templates or any view-related files

│ ├── registrationEmail.ejs # EJS template for registration emails

│ └── resetPasswordEmail.ejs # EJS template for password reset emails

├── .env # Environment variables (e.g., database URL, API keys)

├── app.js # Main entry point of the backend application

├── package.json # NPM dependencies and scripts

└── README.md # Documentation for the backend


frontend/

├── public/ # Public assets

│ ├── index.html # Main HTML file

│ ├── favicon.ico # Favicon

│ └── manifest.json # Web app manifest

├── src/ # Main source code for the frontend

│ ├── assets/ # Images, fonts, and other static assets

│ │ ├── images/ # Images used in the project

│ │ └── styles/ # Global styles (e.g., Tailwind CSS configurations)

│ │ └── tailwind.css # Tailwind CSS file

│ │

│ ├── components/ # Reusable components

│ │ ├── Navbar.js # Navigation bar component

│ │ ├── Footer.js # Footer component

│ │ ├── Sidebar.js # Sidebar component for dashboards

│ │ ├── Notification.js # Notification component

│ │ └── Loader.js # Loading spinner component

│ │

│ ├── pages/ # Main pages of the application

│ │ ├── HomePage.js # Home page

│ │ ├── LoginPage.js # Login page

│ │ ├── RegisterPage.js # User registration page

│ │ ├── Dashboard.js # User dashboard

│ │ ├── BookingPage.js # Booking system page

│ │ ├── MediaUploadPage.js # Media upload and management page

│ │ ├── AlbumPage.js # Album printing page

│ │ ├── GiftPage.js # Gift item customization page

│ │ ├── ProfilePage.js # User profile management page


│ │ └── AdminDashboard.js # Admin dashboard

│ │

│ ├── contexts/ # Context API for global state management

│ │ ├── AuthContext.js # Authentication context

│ │ ├── BookingContext.js # Booking context

│ │ └── NotificationContext.js # Notification context

│ │

│ ├── hooks/ # Custom hooks for reusing logic

│ │ ├── useAuth.js # Hook for authentication logic

│ │ └── useBooking.js # Hook for booking logic

│ │

│ ├── services/ # API service functions

│ │ ├── authService.js # Service for authentication-related API calls

│ │ ├── bookingService.js # Service for booking-related API calls

│ │ ├── mediaService.js # Service for media upload and management API calls

│ │ ├── giftService.js # Service for gift item operations API calls

│ │ └── notificationService.js # Service for notification-related API calls

│ │

│ ├── App.js # Main App component

│ ├── index.js # Entry point for React

│ ├── router.js # React Router configuration

│ └── tailwind.config.js # Tailwind CSS configuration file

├── package.json # NPM dependencies and scripts

└── README.md # Documentation for the frontend

You might also like