ResvEase is a modern booking platform that allows users to search, filter, and reserve accommodations seamlessly. Built with Vue.js, Go, Fiber, and MongoDB, it provides a fast and intuitive experience with secure payment processing via Stripe.
- Search & Filter: Find hotels and properties based on location, date range, and number of guests.
- Advanced Filtering: Refine search results by price range, amenities, and rating.
- Room Availability: View available rooms in a selected property along with their availability count.
- Secure Booking: Reserve a room by filling out a form and completing payment via Stripe.
- Booking Management: Check your booking history and details on the "My Bookings" page.
- Date-Based Availability: Book rooms based on date range, ensuring availability if not already booked by another user.
- Frontend: Vue.js
- Backend: Go, Fiber
- Database: MongoDB
- Payment Processing: Stripe
- Node.js
- Go
- MongoDB
-
Clone the repository:
git clone https://github.com/Gedion-01/ResvEase cd ResvEase/server
-
Install dependencies:
go mod tidy
-
Set up environment variables in
.env
:MONGO_URI=your_mongo_connection_string STRIPE_SECRET_KEY=your_stripe_secret_key HTTP_LISTEN_ADDRESS=your_http_listen_address e.g :5000 JWT_SECRET=your_jwt_secret MONGO_DB_NAME=your_db_Name MONGO_TEST_DB_NAME=test_db_name MONGO_DB_URL=your_mongo_db_url STRIPE_SECRET_KEY=your_stripe_secret_key DOMAIN=your_domain e.g http://localhost:5173 STRIPE_WEBHOOK_SECRET=your_stripe_webhook_secret
-
Run the server:
make run
-
For testing, add sample data by running:
make seed
- Navigate to the client directory:
cd ../client
- Install dependencies:
npm install
- Set up environment variables in
.env
:VITE_API_ENDPOINT=your_back_end_api_endpoint e.g http://localhost:5000/api/v1
- Start the development server:
npm run dev
For handling Stripe payments and ensuring proper event processing, you need to set up a webhook:
- Install the Stripe CLI.
- Run the following command to forward events to your local server:
stripe listen --forward-to localhost:5000/api/v1/stripe/webhook
- Set up your webhook endpoint in the Stripe dashboard to receive real-time event notifications.
- Ensure your backend is configured to handle Stripe webhook events securely.
- Search for accommodations by entering a location, check-in/out dates, and number of guests.
- Filter results based on price, amenities, and ratings.
- Select a property to view available rooms and their availability.
- Reserve a room by filling out the form and completing payment through Stripe.
- Book rooms based on a date range if they are available and not already booked by another user.
- View and manage your bookings under the "My Bookings" section.
Feel free to fork the repository and submit pull requests. Contributions are welcome!
This project is licensed under the MIT License.