Petopia is a MERN (MongoDB, Express, React, Node.js) stack application dedicated to connecting pet owners with loving caretakers and helping animals in need. It provides a seamless experience for pet owners and pet sitters to connect and build a community that cherishes all types of animals.
-
Sign up and log in with email or Google account.
-
User profiles with reviews, bookings, and pet profiles.
-
Availability management to display available dates from calendar.
-
Search for pets and pet sitters in our search pages based on name or postal code .
-
Save and delete pet sitter's profiles from favorites.
-
Edit user and pet profile to update information.
-
Book a service inside sitter's profile.
-
Add a review for a pet sitter and edit it,or delete it.
-
Upload your own images in pet and sitter profiles.
-
Admin's page for Profile's managment.
-
Visit the Petopia homepage.
-
Click on the "Sign Up" button to create a new account.
-
Alternatively, you can choose to log in with your Google account by clicking on the "Log In with Google" button.
- After logging in, you will be redirected to your user profile page.
- Update your profile information, including your name, profile picture, and contact details.
- Add information about the pets you own, such as their names, breeds, and descriptions.
- Manage your available dates for pet sitting by setting the dates when you are available to take care of pets.
- Use the search feature to find pets available for sitting or pet sitters in your area.
- Filter your search by pet type, location, availability, and other criteria.
- Browse through the search results to view detailed profiles of pets and pet sitters.
- When you find a pet sitter you like, click on the "heart " button on their profile.
- The pet sitter will be added to your favorites list for easy access in the future.
- As a user, you can edit your own profile details at any time.
- Update your pet information, add new pets, or make changes to your available dates for pet sitting.
- To book a pet sitting service, visit the profile page of the desired pet sitter.
- Contact the pet sitter directly through the contact information provided on their profile.
- After a pet sitting experience, you can leave a review and rating for the pet sitter based on your experience.
- As a pet sitter, you can manage your bookings through your user profile.
- View upcoming bookings and add available dates.
- Communicate with pet owners to coordinate pet sitting services.
- To log out of your Petopia account, click on the "Logout" button in the navigation menu.
We hope you enjoy using Petopia and have a pawsome time caring for pets and connecting with pet owners!
- Node.js with Express: Backend server framework
- MongoDB with Mongoose: Database and data modeling
- JSON Web Tokens (JWT): Authentication and user sessions
- Nodemon: Development server with hot-reloading
- dotenv: Environment variables management
- CORS: Cross-Origin Resource Sharing
- Use Passport for implementing Google authedication.
- React Calendar
- React Avatar Editor
- Cloudinary
To run Petopia backend server locally, please follow these steps:
-
Clone the repository from GitHub:
git clone https://github.com/natko22/pet-project-backend
-
Install the necessary dependencies using npm:
cd petopia npm install
-
Run the development server:
npm start
-
The backend server will be running on http://localhost:5005.
-
Set up the MongoDB database:
- Install MongoDB if you haven't already (https://docs.mongodb.com/manual/installation/).
- Configure the MongoDB connection in the app's configuration file.
-
Open your browser and go to http://localhost:3000 to access Petopia locally.
- Frontend: The frontend is deployed on Netlify and will automatically deploy when changes are pushed to the main branch.
- Backend: The backend is hosted on Adaptable and will automatically deploy when changes are pushed to the main branch.
Contributing We welcome contributions from the community! If you find any bugs or have ideas for new features, please open an issue or submit a pull request.
MIT License
For any questions or inquiries, please contact Yo-Jia Chen and Natassa Tsapanidou-Kornilaki.