A comprehensive web application for managing pet grooming appointments, built with Node.js, Express, MongoDB, and EJS templates.
- User Authentication: Secure registration and login using Passport.js
- Pet Management: Add, edit, and manage your pets' profiles
- Service Catalog: Browse available grooming services with pricing and details
- Appointment Booking: Book appointments for your pets at convenient times
- Appointment Management: View, edit, and cancel your appointments
- Responsive Design: Mobile-friendly interface using Materialize CSS framework
- Backend: Node.js, Express.js
- Frontend: Vanilla JavaScript, HTML, CSS, Materialize CSS
- Database: MongoDB with Mongoose ODM
- Authentication: Passport.js with bcrypt for password hashing
- Templating: EJS (Embedded JavaScript)
- Session Management: express-session with MongoDB store
- Node.js (v14 or higher)
- MongoDB (local installation or MongoDB Atlas)
- Clone the repository:
git clone https://github.com/kyriesk/pet-pat.git
cd pet-pat
- Install dependencies:
npm install
- Set up environment variables:
Create a
.envfile in the root directory with the following variables:
PORT=3000
MONGODB_URI=mongodb://localhost:27017/pet-pat
SESSION_SECRET=your_secret_key
- Seed the database with initial services:
npm run seed
- Start the application:
npm start
For development with automatic restarts:
npm run dev
- Access the application at http://localhost:3000
pet-pat/
├── config/ # Configuration files
│ └── passport.js # Passport.js authentication config
│ └── paths.js # Paths.js path config
├── controllers/ # Route controllers
├── middleware/ # Custom middleware
│ └── auth.js # Authentication middleware
│ └── setting.js # Setting middleware
│ └── upload.js # Upload middleware
├── models/ # MongoDB models
│ ├── Appointment.js # Appointment schema
│ ├── Pet.js # Pet schema
│ ├── Service.js # Service schema
│ └── User.js # User schema
│ └── Feedback.js # Feedback schema
│ └── Gallery.js # Gallery schema
│ └── Setting.js # Setting schema
├── public/ # Static assets
│ ├── css/ # CSS files
│ ├── js/ # Client-side JavaScript
│ └── img/ # Images
│ └── uploads/ # The file uploaded by Multer
├── routes/ # Express routes
│ ├── appointments.js # Appointment routes
│ ├── index.js # Main routes
│ ├── pets.js # Pet management routes
│ ├── services.js # Service catalog routes
│ └── users.js # Authentication routes
│ └── admin.js # Admin panel routes
├── views/ # EJS templates
│ ├── appointments/ # Appointment views
│ ├── layouts/ # Page layouts
│ ├── partials/ # Reusable components
│ ├── pets/ # Pet management views
│ ├── services/ # Service catalog views
│ └── users/ # Authentication views
│ └── admin/ # admin panel views
├── app.js # Application entry point
├── package.json # Project dependencies
├── seed.js # Database seeding script
├── LICENSE # Open source license (MIT)
└── .env # Environment variables
-
Admin dashboard for service providers
-
Email notifications for booking confirmations and reminders
-
Pet health records and grooming history
-
Loyalty program for regular customers
This project is licensed under the MIT License.