Skip to content

pan-k15/pawfect-dogcare-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🐾 DogCare Center – API

This is the backend REST API for the DogCare Center β€” a full-service pet care platform for dog owners. It supports dog management, grooming/bath appointments, snack ordering, laundry bookings, dog runs, and more.


πŸš€ Getting Started

Prerequisites

  • Node.js
  • MongoDB
  • Postman (for testing)

Setup

git clone https://github.com/yourusername/dogcare-center-api.git
cd dogcare-center-api
npm install
npm run dev
  • .env file setup:
PORT=5000
MONGO_URI=mongodb://localhost:27017/dogcare
JWT_SECRET=your-secret-key

πŸ” Authentication

Authentication is required for most endpoints via JWT.

Login

POST /api/auth/login

{
  "username": "john123",
  "password": "password"
}

Register

POST /api/auth/register

{
  "username": "john123",
  "password": "password",
  "email": "john@example.com"
}

πŸ‘€ Member APIs

Create Member

POST /api/members

{
  "userId": "userObjectId",
  "name": "John Doe",
  "fname": "John",
  "lname": "Doe",
  "dateOfBirth": "1990-05-10",
  "gender": "Male"
}

Get Member by Username

GET /api/members/user/:username


🐢 Dog APIs

Add Dog

POST /api/dogs

{
  "name": "Lucky",
  "breed": "Shih Tzu",
  "age": 4,
  "weight": 5,
  "notes": "Allergic to beef",
  "userId": "userObjectId"
}

Get Dogs by User

GET /api/dogs/member/:userId


🧺 Laundry Service

Book Laundry

POST /api/laundry

{
  "dogName": "Lucky",
  "items": [
    { "item": "Dog Clothes", "quantity": 2 },
    { "item": "Towel", "quantity": 1 }
  ],
  "notes": "Use hypoallergenic detergent",
  "status": "Pending",
  "paid": false,
  "totalCost": 120
}

βœ‚οΈ Grooming & Bath

Book Service

POST /api/grooming

{
  "userId": "userObjectId",
  "dogId": "dogObjectId",
  "services": ["Haircut", "Basic Bath"],
  "preferredDate": "2025-07-20"
}

🧼 Wash & Dry

Book Service

POST /api/wash-dry

{
  "userId": "userObjectId",
  "dogId": "dogObjectId",
  "type": "Assisted Service",
  "preferredDate": "2025-07-22"
}

πŸƒβ€β™‚οΈ Dog Run

Book Dog Run

POST /api/dog-run

{
  "userId": "userObjectId",
  "dogId": "dogObjectId",
  "preferredDate": "2025-07-19"
}

πŸ– Snack Orders

Create Snack Order

POST /api/snacks

{
  "userId": "userObjectId",
  "dogId": "dogObjectId",
  "items": [
    { "name": "Dried Beef Strips", "quantity": 2, "unitPrice": 50 }
  ],
  "totalCost": 100
}

β˜• Cafe Orders

Create Cafe Order

POST /api/cafe

{
  "userId": "userObjectId",
  "dogId": "dogObjectId",
  "items": [
    { "name": "Dogccino", "quantity": 1, "unitPrice": 50 }
  ],
  "totalCost": 50,
  "notes": "Serve chilled"
}

πŸ“ Folder Structure

β”œβ”€β”€ models/
β”‚   β”œβ”€β”€ Dog.js
β”‚   β”œβ”€β”€ Member.js
β”‚   β”œβ”€β”€ User.js
β”‚   └── ...
β”œβ”€β”€ controllers/
β”œβ”€β”€ routes/
β”œβ”€β”€ middleware/
β”œβ”€β”€ app.js
└── server.js

πŸ“Œ Notes

  • All POST endpoints require Content-Type: application/json and a valid Authorization: Bearer <token> header.
  • Use Postman Collection (coming soon) for easy testing.

πŸ“¬ Contact

For questions or contributions, please contact Pan or open an issue.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors