A full-stack, mobile-responsive website enabling users to book photographers for various occasions based on available schedule slots. Additionally, users can purchase popular canvases from the photographers.
- Frontend: React, Redux, Tailwind Css, Framer Motion, Flowbite, HTML, CSS, Javascript, React Spinner, React icons, Toastify, Swiper, Font Awesome,
- Backend: Node.js, Express, MongoDB, Firebase
- Authentication: JWT Token , Firebase Auth
- State Management: RTK Query, Redux
- Complex Booking Functionality: Allows users to book photographers for specific time slots.
- Booking Management: Users can cancel, confirm, or check their booking status via the user dashboard.
- Three Daily Schedules: Morning, afternoon, and night slots available every day.
- Slot Reservation: Once a user books a photographer for a specific period, that slot is reserved and unavailable to others until the user cancels the booking, ensuring no double bookings. This is managed globally through the MongoDB database.
- Mobile-Friendly Design: Users can edit profiles, check booking statuses, and manage their carts.
- Interactive Interface: Designed for ease of use on both mobile and desktop devices.
- Data Fetching and Storage: Utilized RTK Query for efficient data fetching and storage in MongoDB.
- Action Management: Redux is used for managing actions such as opening modals and displaying cart/booking icons.
live site : here.
Client : here.
Server : here.
- Node.js
- MongoDB
- Firebase account for authentication
To set up the frontend locally, follow these steps:
-
Clone the repository:
git clone https://github.com/rasel-gannicus/A-Photographer-Booking-Website-.git
-
Navigate to the project directory:
cd photographer-booking-website
-
Install dependencies:
npm install
-
Set up environment variables: Create a .env file in the root directory and add the necessary environment variables (e.g., MongoDB URI, Firebase credentials, JWT secret).
-
Start the development server:
npm run dev
-
Access the application at
http://localhost:3000
in your web browser.
To set up the backend locally, follow these steps:
-
Clone the repository:
git clone
-
Navigate to the project directory:
cd 'folder directory name'
-
Install dependencies:
npm install
-
Configure the
.env
file with your personal settings. -
Start the server:
node index.js
-
The backend server will start running at the specified
http://localhost:5002
.
- Booking a Photographer: Navigate to the booking section, select a time slot, and confirm the booking.
- Managing Bookings: Access the user dashboard to view, confirm, or cancel bookings.
- Purchasing Canvases: Browse and purchase canvases from the photographer's collection.
We welcome contributions to improve the project. Please fork the repository and submit pull requests with your enhancements.
This project is licensed under the MIT License - see the LICENSE file for details.