A web application that captures photos, applies filters, and generates receipt-style PDFs with QR codes for sharing.
- Camera capture with live preview
- Photo filters (vintage, warm, cool, black & white, sepia, vibrant, pastel)
- Up to 3 photos per receipt
- Automatic PDF generation in receipt format
- QR code generation for photo sharing
- Cloudinary integration for photo storage
- Photo viewer accessible via QR code
- Next.js 16
- React 19
- TypeScript
- Tailwind CSS
- Cloudinary (image storage)
- jsPDF (PDF generation)
- QRCode (QR code generation)
- Install dependencies:
cd web-app
npm install- Configure environment variables:
Create a
.env.localfile in theweb-appdirectory with:
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME=your_cloud_name
NEXT_PUBLIC_CLOUDINARY_UPLOAD_PRESET=your_upload_preset
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
- Run the development server:
npm run devweb-app/app/page.tsx- Main photobooth interfaceweb-app/app/api/photos/route.ts- API endpoint for photo metadataweb-app/app/photo/[id]/- Photo viewer pagesweb-app/app/api/cloudinary-fetch/- Cloudinary fetch endpoint
The project is configured for Vercel deployment. See vercel.json for configuration.
- Photo metadata is stored in-memory (use a database for production, Firebase?)
- Camera access requires HTTPS in production