PetConnect is a full-stack MERN (MongoDB, Express.js, React.js, Node.js) web application designed to connect pets in need with loving families. Users can search for adoptable pets, request adoptions, run or contribute to donation campaigns, and manage pet profiles. The platform empowers both pet owners and adopters while supporting rescue efforts and animal welfare causes.
- Client: GitHub Link
- Server: GitHub Link
- Email/password auth with Firebase
- Google, GitHub login integrations
- Role-based access: User / Admin
- JWT-based secure API communication
- Route protection & persistence after reload
- Responsive Home page with Banner, Categories, About, and CTAs
- Pet Listings with search, filter, infinite scroll, and category filter
- Detailed Pet Info with Adoption request form
- Donation Campaigns with infinite scroll and donation details
- Donation via Stripe modal with amount and card info
- Recommended donations section on detail pages
- Add Pet (with Cloudinary/ImgBB image upload)
- View/Edit/Delete My Pets with sortable & paginated TanStack Table
- Submit & Manage Adoption Requests
- Create & Manage Donation Campaigns
- View & request refund for Donations
- Make user Admin
- View/Edit/Delete any Pet or Donation
- Pause/unpause donations
- Fully responsive across mobile, tablet, and desktop
- Dark Mode / Light Mode toggle support
- Skeleton Loaders instead of spinners
- WYSIWYG Editor (React Quill) for long text inputs
- Clean UI using TailwindCSS
- Infinite scrolling with TanStack Query + Intersection Observer
expresscorsjsonwebtokendotenvmongoosestripe
reactreact-domreact-router-domfirebaseaxiosreact-hook-formzod/yup(optional schema validation)react-select@tanstack/react-query@tanstack/react-tablereact-toastifyreact-hot-toastreact-loading-skeletonreact-iconsreact-intersection-observerreact-quillclsxtailwindcssshadcn/ui(or alternative:flowbite,material-tailwind)jwt-decodereact-stripe-js&@stripe/stripe-js
- MongoDB credentials and Firebase config are securely stored using
.envfiles in both server and client - Stripe public & secret keys are also stored securely
- Client: Netlify
- Server: Vercel
- Database: MongoDB Atlas
- Image Upload: ImgBB API
- Payment: Stripe