Skip to content

Dhyanesh18/PETVERSE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

381 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

PetVerse Homepage

Β 

🐾 PetVerse

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.

Node.js React MongoDB Vite TailwindCSS License: MIT


Table of Contents


Overview

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.


Features

For Pet Owners

  • 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

For Sellers

  • 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

For Service Providers

  • 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

Platform-wide

  • 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

Tech Stack

Frontend

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

Backend

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

Project Structure

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

Getting Started

Prerequisites

  • 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)

1. Clone the repository

git clone https://github.com/your-username/petverse.git
cd petverse

2. Set up the backend

cd backend
npm install

Create a .env file inside the backend/ directory (see Environment Variables below), then start the server:

npm run dev

The API server will start on http://localhost:8080.

3. Set up the frontend

cd frontend
npm install
npm run dev

The frontend dev server will start on http://localhost:3000.

4. Seed initial data

Use the provided seed scripts to create the admin account and initialize wallets:

cd backend
npm run create:test-user

Sellers and service providers can be registered directly through the application UI.


Environment Variables

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>

API Documentation

Interactive API docs are available via Swagger UI once the backend server is running:

http://localhost:8080/api-docs

Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/your-feature-name
  3. Commit your changes: git commit -m 'feat: add your feature'
  4. Push the branch: git push origin feature/your-feature-name
  5. Open a Pull Request

Made with ❀️ by the PetVerse Team

About

FFSD project PETVERSE, a website for everything related to pets

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors