Welcome to PetLoversHub! This platform aims to create a user-friendly interface for individuals to search for, connect with, and adopt pets in need of loving homes. Built using the MERN stack, PetLoversHub strives to make pet adoption as seamless and efficient as possible.
-
Navbar:
- Website logo
- Links: Home, Pet Listing, Donation Campaigns, Login/Register
- Profile picture dropdown with links to dashboard and logout
-
Banner Section:
- Normal slider
-
Pets Category Section:
- Buttons/cards/links for pet categories: Cats, Dogs, Rabbits, Fish, etc.
-
Call to Action Section:
- Inspirational images and text encouraging pet adoption
-
About Us Section:
- Short introduction about the website's purpose
-
Additional Sections:
- Relevant sections to enhance the theme (e.g., Success Stories, Volunteer Opportunities)
- Display all non-adopted pets in a 3-column grid layout with cards.
- Sort pets by date in descending order.
- Search field to filter pets by name and category.
- Each card displays:
- Pet image
- Pet name
- Pet age
- Pet location
- View Details button
- Implement infinite scrolling using Tanstack Query and React Intersection Observer.
- Show detailed information of the pet with an
Adopt
button. - Adoption form modal with fields:
- Pet information (auto-filled and non-editable)
- User information (auto-filled and non-editable)
- Phone number
- Address
- Submit button
- Save adoption requests to the database.
- Display all donation campaigns in a 3-column grid layout.
- Sort campaigns by date in descending order.
- Each card displays:
- Pet name
- Pet image
- Maximum donation amount
- Donated amount
- View Details button
- Implement infinite scrolling.
- Display all details of the donation with a
Donate Now
button. - Donation modal with:
- Donation amount input field
- Credit Card element by Stripe
- Save donation details and display the donation in the campaign.
- Email and password authentication with error handling.
- Registration with additional fields for image and full name.
- Use Firebase to update profile image and name.
- Implement two additional login methods (e.g., Google, Facebook, GitHub).
- Save user information to the database with a default role of 'user'.
- Admins can promote users to admin role.
- Implement JWT for login and store the access token securely.
- Sidebar and top navbar layout.
- Pages:
- Add a Pet
- My Added Pets
- Adoption Requests
- Create Donation Campaign
- My Donation Campaigns
- My Donations
- Access all user pages plus additional admin pages.
- Pages:
- Users
- All Pets
- All Donations
- Use modern UI libraries (e.g., Shadcn-UI, Flowbite, Material-Tailwind).
- Show skeletons as loaders using
react-loading-skeleton
. - Implement infinite scrolling in the Pet Listing page.
- Use WYSIWYG text editors for long descriptions (e.g., Tiptap, Slate, React-Quill).
- Admins can access user routes on the dashboard.
- Ensure responsive design for all screens.
- Implement dark and light modes.
- Do not copy design elements from previous projects.
- Follow best coding practices.
- Write meaningful git commit messages.
- Assignment Category/variant:
- Admin Email:
- Admin Password:
- Front-end Live Site Link: PetLoversHub
- Client-Side GitHub Repository Link: Client Repo
- Server-Side GitHub Repository Link: Server Repo
Join us in our mission to unite pets with their forever families!