PG Finder is a full-stack web application designed to make discovering, booking, and managing Paying Guest (PG) accommodations seamless. With secure payments, AI-powered assistance, and role-based access, PG Finder provides both users and admins with a smooth and reliable experience.
- 🔑 Secure Authentication – Firebase signup/login with Google Sign-In support.
- 👨💼 Role-Based Access – Admins manage PG listings & payments, users explore & book accommodations.
- 💬 AI-Powered Chatbot – Built with Qdrant, Groq Cloud API, and Meta-LLaMA to answer queries.
- 💳 Payments & Invoicing – Razorpay INR payments with auto-generated PDF invoices (sent to both user & PG owner).
- 🏘 PG Listings & Favorites – Users can search, filter, and save their favorite PGs.
- 💬 Community Comments – Comment & reply system with user ownership.
- ☁️ Optimized Storage – Cloudinary for image handling.
- 📧 Smart Notifications – Nodemailer for booking confirmations.
- ⚡ High Performance – Redis caching with Upstash for optimized backend ops.
- Frontend: React, Vite, Redux, Tailwind CSS, React Hook Form (deployed via Vercel)
- Backend: Node.js, Express, Docker, Redis (deployed via Render)
- Database: MongoDB Atlas
- Authentication: Firebase
- Payments: Razorpay
- File Handling: Cloudinary, PDFKit
- AI & Chatbot: Qdrant, Groq Cloud API, Xenova Transformers
- APIs & Services: REST APIs, Nodemailer
- Git
- Node.js (LTS) & npm/yarn
- Docker & Docker Compose (recommended)
- MongoDB Atlas account
- Firebase project setup
- Razorpay API keys
git clone https://github.com/glenjaysondmello/pgfinder.git
cd pgfinderdocker-compose up --buildFrontend → http://localhost:5173 Backend → http://localhost:5000
cd backend
npm install
npm run devCreate a .env file in /backend:
PORT=5000
FIREBASE_ADMIN_SDK_PATH="./serviceAccount.json"
MONGO_URI=""
CLOUDINARY_CLOUD_NAME=""
CLOUDINARY_API_KEY=""
CLOUDINARY_API_SECRET=""
RAZORPAY_KEY_ID=""
RAZORPAY_KEY_SECRET=""
EMAIL_USER=""
EMAIL_PASS=""
GROQ_API_KEY=""
UPSTASH_REDIS_REST_URL=""
UPSTASH_REDIS_REST_TOKEN=""
REDIS_URL=""
QDRANT_URL=""
QDRANT_API_KEY=""
FRONTEND_URL="http://localhost:5173"cd frontend
npm install
npm run devCreate a .env file in /frontend:
VITE_FIREBASE_API_KEY=""
VITE_FIREBASE_AUTH_DOMAIN=""
VITE_FIREBASE_PROJECT_ID=""
VITE_FIREBASE_STORAGE_BUCKET=""
VITE_FIREBASE_MESSAGING_SENDER_ID=""
VITE_FIREBASE_APP_ID=""
VITE_FIREBASE_MEASUREMENT_ID=""
VITE_RAZORPAY_KEY_ID=""
VITE_BACKEND_URL="http://localhost:5000"- Sign up or log in via Firebase/Google.
- Browse available PG listings.
- Select a PG and proceed to booking.
- Make payment securely via Razorpay.
- Receive booking confirmation & invoice by email.
- Manage PG listings.
- Track and view user payments.
- Send notifications to users.
- 🔐 User authentication with advanced role permissions.
- 📝 Custom template-based PG listings.
- 📊 Analytics dashboard for owners.
- ☁️ Cloud deployment automation.
- 🤝 Real-time collaboration & chat support.
-
Fork the repo & create a branch:
feature/your-feature -
Follow coding standards:
- Frontend: ESLint + Prettier
- Backend: ESLint + standard commit messages
-
Write tests (Jest / Mocha / Pytest equivalents).
-
Submit PR with clear description & issue references.
This project is licensed under the MIT License.
Author: Glen Jayson Dmello 📩 Email: glendmello04@gmail.com
🚀 PG Finder – Making PG accommodation booking seamless, secure, and smarter with AI.
