A full-stack MERN application where users can discover, adopt, or raise donation campaigns for pets in need. Built with ❤️ to unite loving humans with their future furry, feathered, or finned family members.
- Client: GitHub → KindPaws Client
- Server: GitHub → KindPaws Server
This platform empowers users to:
- Find and adopt pets in need
- Launch donation campaigns for pets
- Make secure donations via Stripe
- Manage pet listings, adoption requests, and donations via a dynamic dashboard
Built to demonstrate real-world fullstack skills, secure authentication, admin controls, and responsive, accessible UI — perfect for production and recruiters alike.
- Firebase email/password auth
- Google & GitHub OAuth
- JWT-based secure access (stored in HTTP-only cookies)
- Role-based access control (
admin/user) - Ban mechanism (optional)
- Homepage with categories, calls-to-action, inspirational sections
- Pet Listing with infinite scroll, filters, search
- Pet Detail modal with adopt form
- Donation Campaigns with infinite scroll
- Donation Detail with Stripe-powered payment & recommendations
- Add, edit, and manage pets (Formik + Yup + Imgbb API)
- View adoption requests & accept/reject
- Create and manage donation campaigns
- Track own donations & refund if needed
- TanStack Table + Pagination + Sorting + Modals
- View/manage all users, pets, and donations
- Promote to admin, ban users
- Pause/edit/delete any donation campaign or pet
| Frontend | Backend | Others |
|---|---|---|
| React.js | Node.js + Express | Stripe API for donations |
| Vite + Shadcn UI | MongoDB + Mongoose | TanStack Query + Infinite Scroll |
| Firebase Auth | JWT Auth | Imgbb API for image upload |
| React Router | CORS Config | TipTap WYSIWYG Editor |
| React Hook Form / Formik | RESTful APIs | Axios + Secure Axios Instance |
| React-Intersection-Observer | Cookie-based auth | Framer Motion Animations |
Fully optimized for:
- ✅ Mobile
- ✅ Tablet
- ✅ Laptop
- ✅ Desktop
With proper alignment, spacing, and color contrast for a clean, recruiter-attractive UI.
| Role | Password | |
|---|---|---|
| Admin | admin@gmail.com |
123456 |
| User | user@gmail.com |
123456 |
VITE_API_BASE_URL=your-server-url
VITE_IMGBB_API_KEY=your-imgbb-key
VITE_FIREBASE_API_KEY=...PORT=5000
MONGODB_URI=your-mongodb-uri
JWT_SECRET=your-jwt-secret
CLIENT_URL=your-client-site-url@tanstack/react-queryfirebaseaxiosreact-router-domreact-hook-form&formik,yupshadcn/uireact-loading-skeletonreact-intersection-observertiptapstripe-js,@stripe/react-stripe-jslucide-react,clsx,framer-motion,date-fns,many more
expressmongoosecorscookie-parserjsonwebtokenstripedotenv
- Server deployed on Vercel
- Client deployed on Firebase Hosting
- Firebase authorized domains added
- CORS configured correctly
- No CORS / 404 / 504 errors
- Reload-safe routing (SPA compatible)
- Protected route access using JWT + Cookies
- Firebase & MongoDB secured via
.env
- Implementing full JWT-based auth in Firebase + Express
- Advanced data fetching using TanStack Query
- Dynamic routing with protected layouts
- Stripe integration for secure payments
- Reusable form components with real-time validation
- Managing large-scale state without Redux
- Add real-time chat between adopters and pet owners
- Email notifications for adoption status
- PWA support
- Analytics dashboard for admins
Built with care by Md. Jubayer Shikder — a Full-Stack developer on a mission to connect paws with people. 🐶🐱🐰 🐦 Twitter (X) • 📧 Email • 💼 LinkedIn • 💻 GitHub
Feel free to reach out if you'd like to collaborate or need help using the project!
This project is licensed under the MIT License — free to use, modify, and fork..