G3 Group 5
Community cat welfare in Singapore relies heavily on the goodwill of our residents. Still, current practices do not utilise technology much: handwritten notes in void decks, informal WhatsApp, etc. These efforts, while sincere, often lack structure and continuity. For example, one group of residents may update each other via WhatsApp about feeding times, but the information rarely extends beyond the chat. Similarly, spotters of injured cats may post a picture online, but without a centralised log, the follow-up care depends on chance visibility. There is no consistent system for logging on feeding schedules or medical emergencies, no transparent way to coordinate among multiple volunteers, and no simple platform to sustain community engagement beyond the few who already commit time and money. Also, opportunities for broader participation like crowdfunding are scattered, inaccessible to the wider public who may wish to contribute. Our project addresses these issues by providing a unified Community Cat Welfare Tracker that empowers volunteers and our communities to help these felines. In doing so, it transforms fragmented, low-tech practices into a sustainable, transparent, and community-driven system of shared responsibility for Singapore’s beloved community cats.
- Community Cat Volunteers
- Cat Lovers
- Prospective Cat Adopters
Explain the core features and the benefit each provides.
| Feature | Description | User Benefit |
|---|---|---|
| Volunteer Signup & Login | Signup/login | Secure access for volunteers to submit cat profiles |
| Map Page | Identify cat profiles on a map | Easily locate cats and their details in a specific area |
| Cat Profile | Contains personal information (name, breed, etc) | Users can view detailed information about each cat |
| Volunteer Profile | Contains volunteer information and services | Users can view detailed information about the volunteer and the services they may provide |
| Cat Profile Submission | Only available for volunteers | Enables volunteers to contribute cat data safely |
| Forum Page | View list of discussions | Central hub for community engagement and information sharing |
| News/Report Feed | Reports on missing, found, or RIP cats | Keep community informed of important events |
| AI Camera Cat Identification | Identify cat breed via camera | Helps users recognize and learn about different breeds |
| Cat Breed Guidebook | Provide information on cat breeds | Educates users and promotes breed awareness |
| Services | Provide Service Offerings from volunteers | Allow users to engage the services of volunteers e.g. pet sitting |
| Adoption Page | List cat profile summaries on map | Helps potential adopters easily find cats for adoption |
| Donation Page | Stripe popup/aside for donations | Simplifies contribution process for supporting cats |
Provide screenshots and captions showing how users interact with your app.
-
- Displays the landing page, an entry point for all users
-
- Register as an volunteer to access the features
-
- Shows the logged in user's profile
- Ability to edit profile (e.g change contact, add services etc)
-
- Displays the list of volunteers who have services offered
- Ability to filter by region and type of service
- Clicking on it will go to the volunteer profile page
-
- Displays the public profile of a volunteer
- Displays cat listings available for adoption
- Volunteers can apply to adopt cats of their choosing
Comprehensive steps to help other developers or evaluators run and test your project.
git clone https://github.com/ashmewz/is216-project.git
cd Pawsitive
npm installTo start the development server:
npm run devThe project will run on http://localhost:5173 by default.
This project uses a 2nd server (backend) to run the Stripe embedding. We have to run a server using Node.
All these needs to be run in the Pawsitive directory (so make sure you are in that folder, else cd to Pawsitive/ directory)
- Check if Node & npm are installed on your machine.
node -vandnpm -vseparately - Node modules are required locally too. Run
npm install - In Pawsitive directory, run
node server/server.jswhich will run in port 4242 - Open another powershell/terminal using '+' and run
npm run devto run the frontend site in port 5173
In the donations page, select the donation amount, then "Continue".
Your 2nd server would have a log something like: 💰 Received donation amount: 12
Testing card numbers can be found from this stripe documentation: https://docs.stripe.com/testing
Card number: 4242 4242 4242 4242
Card expiry: 12/34
Card CVC: 567
Upon "Donate Now" success, you will currently be directed to a blank page, with the following browser path pattern:
http://localhost:5173/donate/success?payment_intent=pi_3SI1WnA4UE4DKmEO0KHD04IZ&payment_intent_client_secret=pi_3SI1WnA4UE4DKmEO0KHD04IZ_secret_g26E0UQS8m7bJ1aUh70EQcleP&redirect_status=succeeded
In future this should redirect back to some other page. But this has yet to be implemented. (CAA 14 Oct 2025)
You must have a VITE_GEMINI_API_KEY value in your .env file. ENV files are git ignored. Please get the gemini API key from Kevan. The key allows for up to 50 per day and resets.
To test:
- Load the page.
- Grab a random cat image from google and upload it.
- Click "Run cat prediction". You will see a prediction of what cat breed the image is with a probability/confidence percentage. And then afterwards you will also see the generated care tips from Gemini API.












