A web-based application for managing property bookings, customer reservations, invoices, and payments. Built with Ruby on Rails, it provides functionality for both administrators and customers.
- Dashboard: Access a summary of bookings, customers, and properties.
- Manage Bookings:
- View, add, edit, or delete bookings.
- Change booking statuses such as Unpaid, Confirm Payment, Paid, and Canceled.
- Property Management:
- Create, update, and delete properties.
- Set availability, price, and other property details.
- Calendar Management:
- Manage availability and pricing for properties.
- Add, edit, and delete availability for specific dates using the calendar.
- Customer Management:
- View customer details.
- Add or remove customers.
- Payments:
- Add and manage payment methods (Stripe, Pay on Arrival, Bank Transfer).
- Process and track payments for bookings.
- Add descriptions to payment methods, which display when selected.
- Settings:
- Configure company details (name, address, VAT number, etc.).
- Manage enabled payment methods and their descriptions.
- Configure taxes and payment options for properties.
- Set weekly and monthly discounts.
- Invoice Management:
- Generate and manage invoices.
- Display company details and payment status in the invoice layout.
- View detailed breakdowns of invoice amounts, including taxes.
- Reservation Management:
- Book properties based on availability.
- View booking details and status.
- Payment Options:
- Choose from multiple payment methods (Stripe, Pay on Arrival, Bank Transfer).
- Customer Profile:
- Manage customer information, including contact details.
- Framework: Ruby on Rails
- Database: PostgreSQL
- Front-end:
- HTML, CSS (Tailwind CSS)
- JavaScript (FullCalendar.js for calendar management)
- Authentication: Devise
- Payment Integration: Stripe API
- Invoices: Includes company branding and detailed payment breakdowns.
- Ruby 3.2.x
- Rails 8.x
- PostgreSQL
- Node.js & npm (for asset precompilation)
-
Clone the repository:
git clone https://github.com/NickArm/RailsReservationSystem.git cd villa-booking-system -
Install dependencies:
bundle install yarn install
-
Configure the database:
- Set up your database credentials in
config/database.yml. - Create and migrate the database:
rails db:create db:migrate
- Set up your database credentials in
-
Seed the database:
rails db:seed
-
Start the server:
rails server
-
Access the application at http://localhost:3000.
This project is licensed under the MIT License. See the LICENSE file for details.
The application provides API endpoints for integration and external system access.
- Endpoint:
GET /api/v1/search - Description: Search for available properties within a date range and guest count.
- Example:
http://localhost:3000/api/v1/search?start_date=2025-02-01&end_date=2025-02-05&guest_count=4
- Endpoint:
GET /api/v1/customers - Description: Fetch all customers.
- Example:
http://localhost:3000/api/v1/customers
- Endpoint:
GET /api/v1/customers/search_by_email - Description: Fetch a specific customer by their email.
- Example:
http://localhost:3000/api/v1/customers/search_by_email?email=armenisnick@hotmail.com
- Additional API endpoints will be added in subsequent updates.