Pawfect Match strives to simplify the pet adoption process by allowing both pet lovers and shelters to easily navigate the necessary procedures in one single place. Pawfect Match can be used by animal shelters to list the animals they have for adoption and follow up on any adoption application. Pet lovers can easily browse the existing listings from the shelter and express their interest in adopting the pet of their dreams. The scope for this application MVP (minimum viable product) is a single animal shelter listing their existing pets. The scope can be extended in future MVP’s to multiple listings for multiple animal shelters.
To them you are their world: finding a forever home for those without a collar
- Shelter User Role: Only one shelter role exists (admin).
- Login: Shelter employees can login with the shelter role.
- Create a Pet Listing:
- Mandatory Fields:
- Picture(s) of the animal
- Name of the animal
- Type of animal: dog, cat, turtle, rabbit
- Age: in years
- Description: text description about the animal
- Optional Fields:
- Breed: Balinese, Siamese, ragdoll, etc.
- Location: city where the shelter or foster family is located
- Multiple Tags:
- neutered (if animal is neutered, else none)
- outside (animal is allowed to go outside)
- smallChildren (animal is used to small children)
- otherAnimals (animal is used to other animals)
- Published: boolean (default false)
- Mandatory Fields:
- Manage Listings:
- Save changes
- Publish listing (makes it available for viewing)
- Delete listing
- Edit listing
- View Listings: Pet lovers can visit the page and view all animals up for adoption.
- Filter Search:
- Type of animal
- Age ranges:
- 0-1 year
- 2-5 years
- 5 years or more
- View Animal Details: See all details made available in the listing (name, description, etc).
- Ask Questions via Chat:
- Registration/Login Required: Pet lovers must register (email & password) or login (email & password) to use chat.
- Chat Interaction:
- Send questions about a specific pet
- Questions are received in the shelter user’s inbox
- Shelter user can answer immediately or asynchronously
- Answers are sent to the pet lover user’s inbox
- Save to Favorites: Logged-in users can save specific animals to a favorites list.
- Express Interest in Adopting: Pet lovers can express their interest in adopting a pet of their choice.
To be deployed...
- Clone this project locally
- Run
npm install
in your bash/command line - Run
npm run dev
in your bash/command line
- axios (^1.7.2)
- bootstrap (^5.3.3)
- dotenv (^16.4.5)
- firebase (^10.12.1)
- prop-types (^15.8.1)
- react (^18.2.0)
- react-bootstrap (^2.10.2)
- react-dom (^18.2.0)
- react-router-dom (^6.23.1)
- uuid (^9.0.1)
- @types/react (^18.3.3)
- @types/react-dom (^18.3.0)
- @types/uuid (^9.0.8)
- @typescript-eslint/eslint-plugin (^7.2.0)
- @typescript-eslint/parser (^7.2.0)
- @vitejs/plugin-react (^4.2.1)
- eslint (^8.57.0)
- eslint-plugin-react-hooks (^4.6.0)
- eslint-plugin-react-refresh (^0.4.6)
- typescript (^5.4.5)
- vite (^5.2.0)
- @prisma/client (^5.14.0)
- bcrypt (^5.1.1)
- cors (^2.8.5)
- dotenv (^16.4.5)
- express (^4.19.2)
- express-session (^1.18.0)
- helmet (^7.1.0)
- memorystore (^1.6.7)
- morgan (^1.10.0)
- passport (^0.7.0)
- passport-local (^1.0.0)
- pg (^8.11.5)
- @types/node (^20.12.12)
- nodemon (^3.1.0)
- prisma (^5.14.0)
- ts-node (^10.9.2)
- typescript (^5.4.5)
- BACKLOG
- TEAM DECISION LOG: A list of helpful documents, tutorials and links that made the structure of this code rich and well organized:
- Amina Hargitai
- Carlos Morais
- Cristiano Valente
- Andra Mertilos: GitHub / LinkedIn
- Austine Uwumwonse