Β
Your one-stop destination for all pet needs.
A full-stack web platform connecting pet owners, sellers, breeders, and service providers in one unified ecosystem.
- Overview
- Features
- Tech Stack
- Project Structure
- Getting Started
- Environment Variables
- API Documentation
- Contributing
PetVerse is a comprehensive pet care platform that brings together every aspect of pet ownership into a single, seamless experience. Whether you are looking to adopt a new companion, shop for premium pet essentials, book professional grooming or veterinary services, find a suitable mate for your pet, or track a lost animal β PetVerse has you covered.
The platform supports three distinct user roles β Pet Owners, Sellers, and Service Providers β each with a dedicated dashboard, alongside a powerful Admin control panel for platform management.
- Pet Adoption β Browse and adopt pets from verified breeders and rescues
- Pet Mating β Find compatible mates for your pet in a safe, responsible environment
- Lost & Found β Report lost pets and submit claims for found animals
- Events β Discover and register for pet-friendly community events
- Product Shopping β Add items to cart, manage wishlists, and checkout securely
- Service Booking β Schedule appointments with vets, trainers, and groomers
- Digital Wallet β Manage funds and track transactions within the platform
- Order Tracking β View order history and detailed order status
- Reviews β Leave feedback on products and services
- Real-time Chat β Communicate directly with sellers and service providers via Socket.io
- Seller Dashboard β Manage product listings, inventory, and incoming orders
- Order Management β Process and update order statuses
- Real-time Notifications β Get instant updates on new orders via live chat
- Service Dashboard β List and manage services with pricing and descriptions
- Availability Manager β Define schedules and control booking slots
- Booking Management β Accept, update, or cancel appointment bookings
- Admin Dashboard β Full platform oversight including user management, approvals, and analytics
- OTP Verification β Email-based two-factor authentication for secure sign-up and login
- Forgot Password Flow β Secure password reset via email
- Search β Global search across pets, products, and services
- Responsive Design β Optimized for desktop and mobile using Tailwind CSS
| Technology | Purpose |
|---|---|
| React 19 | UI framework |
| Vite 7 | Build tool & dev server |
| Redux Toolkit | Global state management |
| React Router v7 | Client-side routing |
| Tailwind CSS 4 | Utility-first styling |
| Socket.io Client | Real-time bidirectional communication |
| Chart.js + react-chartjs-2 | Analytics and dashboard charts |
| Axios | HTTP client |
| Lucide React / React Icons | Icon libraries |
| Technology | Purpose |
|---|---|
| Node.js + Express | REST API server |
| MongoDB + Mongoose | Primary database & ODM |
| Socket.io | Real-time WebSocket server |
| Razorpay | Payment gateway |
| Nodemailer | Transactional email (OTP, password reset) |
| Helmet | HTTP security headers |
| express-rate-limit | API rate limiting |
| express-mongo-sanitize | NoSQL injection prevention |
| express-validator / Joi | Input validation |
| bcrypt | Password hashing |
| Multer | File uploads |
| Morgan | HTTP request logging |
| Swagger (swagger-jsdoc + swagger-ui-express) | API documentation |
PETVERSE/
βββ backend/
β βββ src/
β βββ app.js # Express app entry point
β βββ controllers/ # Route handler logic
β βββ middleware/ # Auth, error handling, rate limiting
β βββ models/ # Mongoose schemas
β βββ routes/ # API route definitions
β βββ scripts/ # Seed and utility scripts
β βββ utils/ # Shared helpers
β βββ docs/ # Swagger configuration
βββ frontend/
βββ src/
βββ pages/ # Full-page React components
βββ components/ # Reusable UI components
βββ redux/ # Redux slices and store
βββ services/ # Axios API service calls
βββ hooks/ # Custom React hooks
βββ utils/ # Frontend utilities
- Node.js v18 or higher
- MongoDB (local instance or Atlas URI)
- A Razorpay account (for payment features)
- An SMTP-capable email account (for OTP and password reset)
git clone https://github.com/your-username/petverse.git
cd petversecd backend
npm installCreate a .env file inside the backend/ directory (see Environment Variables below), then start the server:
npm run devThe API server will start on http://localhost:8080.
cd frontend
npm install
npm run devThe frontend dev server will start on http://localhost:3000.
Use the provided seed scripts to create the admin account and initialize wallets:
cd backend
npm run create:test-userSellers and service providers can be registered directly through the application UI.
Create a .env file in the backend/ directory with the following keys:
# Database
MONGODB_URI=<your_mongodb_connection_uri>
# Server
PORT=8080
NODE_ENV=development
FRONTEND_URL=http://localhost:3000
# Session
SESSION_SECRET=<a_long_random_secret_string>
# Email (Nodemailer β used for OTP and password reset)
EMAIL_USER=<your_smtp_email_address>
EMAIL_PASSWORD=<your_smtp_email_password>
# Payments (Razorpay)
RAZORPAY_KEY_ID=<your_razorpay_key_id>
RAZORPAY_KEY_SECRET=<your_razorpay_key_secret>Interactive API docs are available via Swagger UI once the backend server is running:
http://localhost:8080/api-docs
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name - Commit your changes:
git commit -m 'feat: add your feature' - Push the branch:
git push origin feature/your-feature-name - Open a Pull Request
Made with β€οΈ by the PetVerse Team
