Skip to content

PetLink is a full-stack web application that connects people with pets in need of a loving home. Users can browse adoptable pets, submit adoption requests, and contribute to donation campaigns that support pet shelters and rescue initiatives.

Notifications You must be signed in to change notification settings

ArunRoy404/PetLink-Client

Repository files navigation

PetLink - Pet Adoption Platform (Client)

πŸš€ Live Link

Frontend Live URL: https://pet-link-client.vercel.app/


🌈 Overview

PetLink is a full-featured pet adoption platform where users can explore and adopt pets, start donation campaigns, manage pets, and perform other pet and donation-related activities. It aims to bridge the gap between pet givers and pet seekers through an easy-to-use, visually engaging platform.

This repository contains the frontend/client-side code for the PetLink platform.


πŸ“ Key Features

  • Beautiful, responsive design using TailwindCSS and Material Tailwind
  • Authentication with Firebase (Email/Password + Social logins)
  • JWT Authentication
  • Role-based dashboard: Admin and User
  • Infinite scroll for Pet and Donation listings
  • Protected routes with JWT authentication
  • Donation with Stripe Payment Integration
  • Adoption request and donation refund system
  • Modern editor support (TipTap)
  • TanStack React Query for efficient data fetching
  • Recharts for data visualization
  • Fully responsive on all screen sizes
  • Dark & Light theme toggle

πŸ† Tech Stack

Core Technologies

  • React 19
  • Vite
  • Tailwind CSS
  • Material Tailwind
  • Firebase Authentication
  • React Router v7

Dependencies and Libraries

  • React Hook Form
  • TanStack Query
  • React Select
  • React Day Picker
  • Lucide React
  • Swiper
  • TipTap & Slate (WYSIWYG Editors)
  • Axios
  • Stripe (Payment Integration)
  • React Hot Toast
  • Recharts

πŸ”— Main Pages

🏠 Home Page

  • Logo, navigation, and profile dropdown
  • Banner, pet categories, call-to-action, about us
  • Custom sections related to adoption and donation

🐾 Pet Listing & Details

  • Infinite scroll for pet cards
  • Filter by name and category
  • Adoption modal with user & pet info autofilled

πŸ’Ό Dashboard (User & Admin)

  • Sidebar + top navbar layout
  • Role-based views and permissions
  • Add/Update Pets with image upload
  • Donation Campaign creation
  • My Donations, My Pets, Adoption Requests

πŸ’Έ Donation System

  • Donation campaigns listing with infinite scroll
  • Payment with Stripe modal
  • Campaign editing, pausing, and donator lists

πŸ‘€ Authentication

  • Email/password + social login (e.g., Google)
  • JWT tokens stored securely
  • Firebase profile updates & role management

πŸ“† Admin Functionalities

  • View & manage all users, pets, and donations
  • Make users admin
  • Force update/delete records

πŸ‘¨β€πŸ’Ό Developer Guidelines

  • Firebase keys are securely stored in environment variables
  • Responsive design for mobile/tablet/desktop
  • All GET requests use TanStack Query
  • Reusable UI with component-based structure
  • Commit messages are meaningful and descriptive

🌐 Deployment

  • Client hosted on Vercel
  • Ensure routes do not throw 404/CORS on reload
  • Firebase auth domains configured for Vercel
  • Private routes persist after reload (JWT validated)


πŸ“¦ Packages Used

@material-tailwind/react, @stripe/react-stripe-js, @stripe/stripe-js, @tanstack/react-query, @tanstack/react-table,
@tiptap/*, axios, date-fns, firebase, ldrs, lucide-react, react, react-countup,
react-day-picker, react-dom, react-hook-form, react-hot-toast, react-intersection-observer,
react-router, react-select, recharts, slate, swiper, tiptap

DevDependencies include: eslint, tailwindcss, vite, postcss, autoprefixer, etc.



⚑ Built with love to connect pets to their forever families.

Tech Stack πŸ› οΈ

Frontend

React Vite TypeScript Tailwind CSS React Query React Hook Form

Backend Integration

Firebase Stripe

UI Libraries

Material Tailwind Lucide Icons Swiper

Text Editors

Tiptap Slate



πŸͺœ PetLink - Local Development Setup Guide

Follow these steps to run the PetLink project on your local machine.

Prerequisites

  • Node.js (v16 or higher recommended)
  • npm or yarn
  • Git

Step-by-Step Installation

  1. Clone the repository

    git clone https://github.com/ArunRoy404/PetLink-Client.git
    cd petlink-Client
  2. Set up environment variables Create a .env file in the root directory and add the following variables with your own credentials:

        VITE_apiKey=YOUR_FIREBASE_API_KEY
        VITE_authDomain=YOUR_FIREBASE_AUTH_DOMAIN
        VITE_projectId=YOUR_FIREBASE_PROJECT_ID
        VITE_storageBucket=YOUR_FIREBASE_STORAGE_BUCKET
        VITE_messagingSenderId=YOUR_FIREBASE_MESSAGING_SENDER_ID
        VITE_appId=YOUR_FIREBASE_APP_ID
        VITE_imgbb_apiKey=YOUR_IMGBB_API_KEY
        VITE_payment_key=YOUR_STRIPE_PUBLIC_KEY

    You'll need to:

  3. Install dependencies

         npm install
         # or
         yarn install
  4. Run The Development Server

         npm run dev
         # or
         yarn dev
  5. Access the application Open your browser and visit: http://localhost:5173


πŸ–ΌοΈ ScreenShot

About

PetLink is a full-stack web application that connects people with pets in need of a loving home. Users can browse adoptable pets, submit adoption requests, and contribute to donation campaigns that support pet shelters and rescue initiatives.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published