Skip to content

gabrielmaialva33/innkeeper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

86 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏨 Innkeeper

A Modern Multi-Tenant Hotel Management System

License GitHub top language Repository size GitHub last commit

English Β· Portuguese

AboutΒ Β Β |Β Β Β  FeaturesΒ Β Β |Β Β Β  TechnologiesΒ Β Β |Β Β Β  InstallationΒ Β Β |Β Β Β  License

πŸ”– About

Innkeeper is a comprehensive multi-tenant hotel management system designed to streamline and modernize hotel operations. Built on a robust foundation of AdonisJS v6 backend and React 19 with Inertia.js frontend, it provides a complete solution for managing multiple hotel properties from a single platform.

This system addresses the complex needs of modern hospitality businesses, from small boutique hotels to large hotel chains. With its multi-tenant architecture, each hotel property maintains complete data isolation while benefiting from shared infrastructure and centralized management capabilities.

πŸ—οΈ Architecture Overview

graph TB
    subgraph "πŸ–₯️ Frontend"
        UI["🌐 React + Inertia.js<br/>Guest Portal | Staff Dashboard | Admin Panel"]
    end

    subgraph "πŸ”§ Backend Services"
        API[AdonisJS API]
        AUTH[Multi-Tenant Auth]
        BOOKING[Booking Engine]
        PMS[Property Management]
    end

    subgraph "πŸ’Ύ Data Layer"
        DB[(PostgreSQL)]
        CACHE[(Redis)]
    end

    UI --> API
    API --> AUTH
    API --> BOOKING
    API --> PMS

    AUTH --> DB
    BOOKING --> DB
    PMS --> DB

    BOOKING --> CACHE
    AUTH --> CACHE

    style UI fill:#e1f5fe
    style API fill:#f3e5f5
    style DB fill:#e8f5e8
    style CACHE fill:#fff3e0
Loading

πŸ—„οΈ Database Schema

For a detailed view of the database structure, you can access our interactive database diagram:

πŸ“Š Interactive Database Diagram

erDiagram
    ORGANIZATIONS {
        int id PK
        string name
        string slug
        string email
        string timezone
        string currency
    }

    HOTELS {
        int id PK
        int organization_id FK
        string name
        string address
        int star_rating
        int total_rooms
        time check_in_time
        time check_out_time
    }

    ROOMS {
        int id PK
        int hotel_id FK
        int room_type_id FK
        string room_number
        string status
        string housekeeping_status
    }

    ROOM_TYPES {
        int id PK
        int hotel_id FK
        string name
        int max_occupancy
        decimal base_price
        string bed_type
    }

    GUESTS {
        int id PK
        int organization_id FK
        string first_name
        string last_name
        string email
        string phone
        string document_number
    }

    RESERVATIONS {
        int id PK
        int organization_id FK
        int hotel_id FK
        int room_id FK
        int guest_id FK
        string confirmation_code
        string status
        date check_in_date
        date check_out_date
        decimal total_amount
    }

    PAYMENTS {
        int id PK
        int reservation_id FK
        int guest_id FK
        string transaction_id
        string method
        string status
        decimal amount
        string currency
    }

    ORGANIZATIONS ||--o{ HOTELS : "owns"
    ORGANIZATIONS ||--o{ GUESTS : "manages"
    HOTELS ||--o{ ROOMS : "contains"
    HOTELS ||--o{ ROOM_TYPES : "defines"
    HOTELS ||--o{ RESERVATIONS : "receives"
    ROOM_TYPES ||--o{ ROOMS : "categorizes"
    GUESTS ||--o{ RESERVATIONS : "makes"
    ROOMS ||--o{ RESERVATIONS : "assigned_to"
    RESERVATIONS ||--o{ PAYMENTS : "generates"
Loading

✨ Features

Core Hotel Management

  • 🏒 Multi-Tenant Architecture: Manage multiple hotel properties with complete data isolation
  • πŸ›οΈ Room Management: Comprehensive room inventory, types, amenities, and pricing
  • πŸ“… Reservation System: Advanced booking engine with real-time availability
  • πŸ‘₯ Guest Management: Complete guest profiles, preferences, and history
  • πŸ’Ό Front Desk Operations: Check-in/out, room assignments, and walk-ins
  • 🧹 Housekeeping: Room status tracking, cleaning schedules, and maintenance
  • πŸ’° Billing & Invoicing: Flexible pricing, taxes, discounts, and payment processing

Advanced Features

  • πŸ“Š Analytics Dashboard: Real-time occupancy, revenue, and performance metrics
  • πŸ”„ Channel Manager: Integration with OTAs (Booking.com, Expedia, etc.)
  • πŸ“± Mobile-Responsive: Full functionality across all devices
  • 🌐 Multi-Language Support: Internationalization for global operations
  • πŸ‘· Staff Management: Roles, permissions, schedules, and task assignments
  • πŸ“§ Communication Hub: Automated emails, SMS notifications, and guest messaging
  • 🎯 Revenue Management: Dynamic pricing and yield optimization
  • πŸ”— Third-Party Integrations: POS systems, door locks, and accounting software

Technical Features

  • πŸ” Role-Based Access Control: Granular permissions for different user types
  • πŸš€ Real-Time Updates: WebSocket-powered live updates across the platform
  • πŸ“ˆ Scalable Architecture: Built to handle properties of any size
  • πŸ”’ Data Security: End-to-end encryption and compliance with hospitality standards
  • πŸ”„ API-First Design: RESTful API for easy integrations
  • πŸ“± Progressive Web App: Installable on mobile devices
  • 🎨 Customizable UI: Theming system for brand consistency

πŸš€ Technologies

Backend

  • AdonisJS v6: Enterprise-grade Node.js framework
  • PostgreSQL: Robust relational database with multi-tenant support
  • Redis: High-performance caching and session management
  • Bull Queue: Background job processing
  • JWT: Secure authentication

Frontend

DevOps & Tools

πŸ› οΈ Installation

Prerequisites

  • Node.js (v18 or higher)
  • pnpm (recommended) or npm/yarn
  • PostgreSQL (v14 or higher)
  • Redis (v6 or higher)
  • Docker (optional, for containerized setup)

Quick Start

  1. Clone the repository:

    git clone https://github.com/gabrielmaialva33/innkeeper.git
    cd innkeeper
  2. Install dependencies:

    pnpm install
  3. Set up environment variables:

    cp .env.example .env

    Configure your database, Redis, and other settings in the .env file.

  4. Run database migrations:

    node ace migration:run
  5. Seed initial data (optional):

    node ace db:seed
  6. Start the development server:

    pnpm dev

    Your application will be available at http://localhost:3333

Docker Setup

For a containerized environment:

docker-compose up -d
pnpm docker

Production Deployment

  1. Build the application:

    pnpm build
  2. Run migrations in production:

    node ace migration:run --force
  3. Start the production server:

    pnpm start

πŸ“š Documentation

For detailed documentation, visit our Wiki or check the /docs folder.

API Documentation

API documentation is available at /api/docs when running in development mode.

🀝 Contributing

Contributions are welcome! Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.

πŸ“ License

This project is licensed under the MIT License. See the LICENSE file for details.


Built with ❀️ for the hospitality industry

Releases

No releases published

Packages

 
 
 

Contributors

Languages