01 Project Synopsis
One-time Payment
- PDF & Word Formats
- Project Introduction & Objectives
- Problem Statement & Methodology
- System Architecture Diagram included
- Structured for Review & Customization
Get structured M.E. AI Based Photography Portfolio Final Year Project Report Final Year Project Report and Documentation with project objectives, methodology, system design, diagrams, implementation details, testing and complete project explanations. Suitable as a learning, documentation and project-presentation resource for students working on related final year projects.
Need a customized report? Chat on WhatsAppSimple pricing. Instant access. Every package includes PDF & Word format.
01 Project Synopsis
One-time Payment
02 Detailed Project Report
One-time Payment
03 Customized Project Report
One-time Payment
04 Customized Plagiarism-Free Report
One-time Payment
Abstract
Table of Content
Introduction
Problem Statement
Existing System
Proposed System
Objectives
System Architecture
Major Functional Modules
Hardware Requirements
Software Requirements
Future Enhancement
Conclusion
References
Abstract
Table of Content
Chapter 1 — Introduction
Chapter 2 — Literature Review / System Study
Chapter 3 — System Analysis
Chapter 4 — System Design
Chapter 5 — System Implementation
Chapter 6 — Testing
Chapter 7 — Results and Discussion
Chapter 8 — Conclusion and Future Enhancements
Chapter 9 — References
AI Based Photography Portfolio is a complete MERN Stack photography studio management and portfolio platform combining a professional public photography website, online photography-session booking, client management, quotations, invoices, manual payment tracking, private galleries, photo proofing, portfolio management, CMS functionality, analytics, and optional OpenAI-powered tools.
The platform is designed to help a photography business manage its complete workflow from marketing and booking to billing and final photo delivery. Visitors can browse the studio portfolio, services, blog, FAQs, before/after work, videos and other media, while registered clients can manage bookings, quotations, invoices, payments, private galleries, photo selections, favourites, album drafts, AI assistance, enquiries, and notifications.
A major part of the system is its private client gallery and photo-proofing workflow. Administrators can create private albums, assign clients, upload photographs, optionally protect galleries with passwords, and allow clients to select, reject, favourite, or comment on photographs before submitting their final selection.
The project also includes optional OpenAI-powered tools for conversational assistance, photography preparation checklists, photography package recommendations, natural-language portfolio search, and Admin-side image-analysis assistance. OpenAI is the only documented external API and the main platform can operate without it.
This project is suitable for B.Tech, M.Tech, BCA, MCA, BE, ME, BSc, MSc, Computer Science, IT, Artificial Intelligence, Web Development, Photography, and MERN Stack students searching for a practical final year project, major project, minor project, source code, and project report related to photography portfolio management, studio booking, client galleries, photo proofing, invoicing, AI assistance, and digital photography-business management.
| Field | Value |
|---|---|
[email protected] |
|
| Password | Admin@123 |
| Field | Value |
|---|---|
[email protected] |
|
| Password | User@123 |
The Admin AI functionality also includes optional image-analysis assistance for photography management.
Admin can manage:
AI feature flags
AI prompts
Usage limits
AI settings
AI usage logs
The OpenAI API key is stored through the environment configuration rather than exposed in the frontend.
The documented application includes:
AI route rate limiting
Daily/feature usage controls through settings
AI usage logs
AI routes are rate limited to 30 requests per minute.
Admin can:
Create photography category
View categories
Edit category
Delete category
Organize portfolio photographs
Admin can:
Upload photograph
View portfolio grid
Search by title
Search by location
Edit metadata
Edit flags
Delete photograph
Assign category
Configure featured status
Use AI categorization assistance
Admin can:
Create album
View album list
Search album
Open album workspace
Edit album
Delete album
Assign clients
Upload gallery photos
Admin can:
View all bookings
Search bookings
Filter bookings
Update status
Confirm booking
Reschedule booking
Cancel booking
Add notes
Manage workflow statuses
Admin can:
Manage calendar availability
Block dates
Unblock dates
Configure time slots
Admin can:
View clients
Search clients
Activate account
Deactivate account
Deactivated accounts cannot access protected client functionality.
Admin can:
Create blog post
Edit blog post
Delete blog post
Publish/unpublish blog post
Manage blog categories
Public users can read published posts.
Admin can:
Create FAQ
View FAQ
Edit FAQ
Delete FAQ
Activate/deactivate FAQ
Public users can submit enquiries.
Clients can view their enquiry threads.
Admin can:
View enquiries
Reply
Update status
Visitors can submit testimonials.
Admin can:
View submissions
Approve testimonial
Reject testimonial
Filter by moderation status
The public website includes dedicated before/after photography content.
This is useful for showcasing:
Photo retouching
Editing results
Colour correction
Creative editing
Studio post-production work
The platform supports dedicated video media views.
Supported uploads include formats such as:
MP4
WebM
A public virtual-gallery experience is part of the documented frontend feature set.
The public website includes a specialized photography timeline view.
The system supports internal notifications for workflow changes.
Clients can:
View notifications
Mark notifications read
Use notification bell
Access full notification page
There are no wired email, SMS, or push-notification providers in the current application.
The Admin Panel includes an activity/audit log.
Admin can:
View activity history
Search activity
Filter logs
This improves traceability of studio operations.
The Admin dashboard provides:
KPI metrics
Operational statistics
Booking information
Client-related indicators
Finance-related information
Quick links
The application uses Recharts for analytics.
Admin analytics can present charts and key metrics related to studio operations.
Admin analytics can be exported as CSV.
Endpoint:
GET /api/v1/admin/analytics/export.csv
The implementation uses json2csv.
Admin can update:
Brand information
Homepage hero content
Website sections
Policy text
Booking policy
Watermark configuration
Site settings
Security functionality includes:
JWT authentication
HTTP-only cookies
bcrypt password hashing
Hashed security answers
Role-based access control
Client-only routes
Admin-only routes
Active/inactive account validation
Login rate limiting
AI rate limiting
Album assignment validation
Optional gallery password
Short-lived gallery unlock cookie
Helmet
CORS protection
Authentication routes are rate limited to 100 requests per 15 minutes.
The portfolio module allows visitors to explore the studio's photography work.
Features include:
Photo grid/list
Category filters
Text search
Recent sorting
View-based sorting
Infinite scrolling
Lightbox viewing
Photo detail
Metadata display
Like/favourite support
Shareable photo URL
Conditional photo download
AI-powered natural-language search
The project supports natural-language portfolio search using optional OpenAI functionality.
Instead of relying only on basic keywords, an AI-enabled search request can be parsed server-side to help interpret the user's search intent.
Example searches may conceptually relate to:
Wedding photography
Portrait styles
Outdoor shoots
Event photography
Location-oriented portfolio discovery
The exact results remain based on the actual portfolio content.
Uploaded photography assets can pass through an image-processing pipeline.
The documented image workflow includes:
Photo Upload
↓
Sharp Processing
↓
Thumbnail Generation
↓
Preview Generation
↓
Optional Watermark
↓
EXIF Extraction
↓
Portfolio Storage
The application uses Sharp for image processing and exifr for EXIF metadata extraction.
Administrator site settings can configure optional watermark behaviour for photography assets.
This is particularly useful when showcasing proofing images or public portfolio media.
Logged-in clients can:
Favourite portfolio photos
View favourites
Remove favourites
This helps clients save photography styles or images they like.
A photo can be downloadable when the configured allowDownload rule permits it.
The download endpoint applies authenticated rules where required.
The photography studio can publish active services such as studio-defined photography offerings.
Admin can manage:
Services
Packages
Add-ons
Pricing
Activation status
Packages can be associated with photography services and used during booking and quotation workflows.
Admin can:
Create package
Edit package
Delete package
Activate/deactivate package
Configure pricing
The system includes CustomPricingRule data for more flexible photography pricing logic.
This supports the project’s built-in estimate workflow.
The public services area includes a custom estimate feature.
Potential workflow:
Choose Photography Service
↓
Choose Package / Requirements
↓
Apply Pricing Rules
↓
Generate Estimate
This helps clients understand approximate studio pricing before a booking or quotation.
Authenticated clients can book a photography session.
The booking process includes:
Select service
Select package
Select date
Select available time slot
Submit booking
Track booking status
Admin can manage studio availability through:
Calendar
Available slots
Blocked dates
Availability records
This prevents the studio booking process from being limited to a static enquiry form.
A typical studio workflow is:
Visitor Browses Services
↓
Client Books Session
↓
Admin Reviews Booking
↓
Confirm / Reschedule / Cancel
↓
Create Quotation
↓
Client Accepts / Rejects
↓
Generate Invoice
↓
Record Payment
↓
Photography Session
↓
Private Album
↓
Client Proofing
↓
Final Selection
The documented workflow connects booking, quotation, invoice, payment, gallery delivery, and client selection in one application.
The client dashboard includes:
Overview widgets
Recent notifications
Booking information
Quick navigation
Client account tools
Clients can manage:
Name
Mobile
Address
Profile photo
Password
Client registration includes:
Name
Mobile
Password
Security question
Security answer
Security answers are stored in hashed form.
The system uses:
Email/password login
JWT authentication
HTTP-only cookie
Role-based access
Client/Admin redirects
Active/inactive account restrictions
Both Admin and Client use the same login interface, with role-based routing after successful authentication.
The project includes a self-service password recovery workflow using a security question.
Workflow:
Enter Account
↓
Display Security Question
↓
Verify Security Answer
↓
Set New Password
No email reset link is required.
The platform includes quotation management.
Clients can:
Request quotation
View quotations
Accept quotation
Reject quotation
Admin can manage quotation records through the back office.
Admin can create invoices linked to studio operations.
Clients can:
View invoice list
View invoice details
Download invoice PDF
Admin can:
Create invoice
Update invoice status
View invoices
Record payment
Download PDF
The application uses:
PDFKit
for invoice PDF generation.
Invoice endpoint:
GET /api/v1/invoices/:id/pdf
Payments are manually recorded.
The system can maintain payment history for methods such as:
Cash
Bank payment
UPI
Other manually recorded methods configured by the workflow
The application does not process the payment automatically through Razorpay, Stripe, or PayPal.
A major feature is private photography delivery.
Admin can:
Create album
Assign client
Upload photographs
Configure album
Add password protection
Manage gallery contents
Clients can view only galleries assigned to them.
Private albums can optionally require a password.
The project uses:
Album password
Short-lived unlock cookie
Assigned-client access rules
This provides an additional layer of access control for sensitive client photographs.
Inside private galleries, clients can review photography proofs.
Proofing functionality includes:
Select photo
Reject photo
Comment on photo
Favourite photo
Review selections
Submit final selection
This makes the platform suitable for wedding, event, portrait, fashion, product, and other photography workflows where clients need to approve images.
Clients can view the selection status for assigned albums.
This gives both the studio and client a clear view of the proofing process.
The project includes an Album Builder workflow.
Clients can:
Add draft items
View draft
Save draft
Submit album draft to studio
This can support the process of preparing photo-album layouts or selection instructions.
The authenticated Client Dashboard includes optional OpenAI-powered assistance.
The AI tools are controlled through Admin settings and usage limits.
Clients can use conversational AI for photography-related assistance where the feature is enabled.
The AI functionality is implemented server-side through the official OpenAI SDK.
The project includes an AI-powered preparation checklist tool.
This can assist clients with planning for their upcoming photography session based on the information submitted to the tool.
The platform includes AI-based photography package recommendation functionality.
This can help guide users toward suitable studio packages based on their requirements.
OpenAI can help interpret natural-language portfolio searches before applying them to the photography catalog.
The public side can include:
Homepage
Photography portfolio
Photo detail
Photography categories
Search portfolio
Sort portfolio
Infinite scroll
Lightbox
Services
Photography packages
Photography booking
Custom estimate tool
Blog
FAQs
Contact
Testimonials
Before/After gallery
Photography videos
Photography timeline
Virtual gallery
Terms
Privacy
Booking policy
Login
Registration
Forgot password
| Layer | Technology |
|---|---|
| Frontend | React 19 |
| Build Tool | Vite 8 |
| Routing | React Router 7 |
| Backend | Node.js |
| Framework | Express 4 |
| Database | MongoDB |
| ODM | Mongoose 8 |
| Authentication | JWT + HTTP-only Cookies |
| Password Security | bcryptjs |
| HTTP Client | Axios |
| Server Data | TanStack Query 5 |
| Styling | Tailwind CSS 4 |
| UI Components | Headless UI |
| Notifications UI | React Hot Toast |
| Analytics | Recharts |
| Lightbox | yet-another-react-lightbox |
| Forms | React Hook Form |
| Dates | date-fns |
| Uploads | Multer |
| Image Processing | Sharp |
| EXIF | exifr |
| PDFKit | |
| CSV | json2csv |
| AI | OpenAI API |
| Security | Helmet, CORS, express-rate-limit |
| Architecture | MERN Stack |
cd "AI Based Photography Portfolio"
npm install
npm install --prefix client
npm install --prefix server
Windows:
copy .env.example .env
Important variables include:
MONGODB_URI=mongodb://127.0.0.1:27017/photography_portfolio
JWT_SECRET=change_to_a_long_random_secret
JWT_EXPIRES_IN=7d
OPENAI_API_KEY=
CLIENT_URL=http://localhost:5173
SERVER_URL=http://localhost:5000
PORT=5000
UPLOAD_MAX_MB=20
OpenAI can remain unconfigured if the AI functionality is not required.
Ensure MongoDB is running and accessible through MONGODB_URI.
Full demonstration data:
npm run seed
Minimal Admin:
npm run seed:admin
Refresh seed-tagged demonstration data:
npm run seed:reset
npm run dev
Frontend:
http://localhost:5173
API:
http://localhost:5000/api/v1
| Field | Value |
|---|---|
[email protected] |
|
| Password | Admin@123 |
| Field | Value |
|---|---|
[email protected] |
|
| Password | User@123 |