How hirashakeel00/purr-fect-homes works
This repository is the backend for a pet-adoption service. The main workflow is that a user registers or logs in, lists a pet, and an authenticated user can submit adopter details to mark that pet adopted; public routes expose available pets and adoption records. Admin statistics are a separate capability. The route and model excerpts support these connections, but the client is not represented in the supplied tree, and the database is configured through an environment variable.
Main entry points: server.js Express server · admin.js Admin stats · adoptions.js Adoption routes · auth.js Auth middleware
Components 11
HTTP API
- Express server
backend/server.js - Admin stats
backend/routes/admin.js
Identity
- Auth routes
backend/routes/auth.js - Auth middleware
backend/middleware/auth.js
Pet Adoption
- Pet routes
backend/routes/pets.js - Adoption routes
backend/routes/adoptions.js
Persistence
- User model
backend/models/User.js - Pet model
backend/models/pet.js - Adopter model
backend/models/Adopter.js
Other components
- API client
- MongoDB
Connections 19
- API client → Express server: sends HTTP requests
- Express server → API client: returns responses
- Express server → Auth routes: mounts /api/auth
- Express server → Pet routes: mounts /api/pets
- Express server → Adoption routes: mounts /api/adoptions
- Express server → Admin stats: mounts /api/admin
- Auth routes → User model: finds and saves
- Pet routes → Auth middleware: invokes protection
- Adoption routes → Auth middleware: invokes protection
- Admin stats → Auth middleware: invokes protection
- Auth middleware → User model: loads user
- Pet routes → Pet model: queries and saves
- Adoption routes → Pet model: finds and updates
- Adoption routes → Adopter model: creates and queries
- Admin stats → Pet model: counts pets
- Admin stats → Adopter model: counts adopters
- User model → MongoDB: persists user data
- Pet model → MongoDB: persists pet data
- Adopter model → MongoDB: persists adopter data