{"id":30018236,"url":"https://github.com/gabrielmaialva33/innkeeper","last_synced_at":"2026-04-13T03:03:21.661Z","repository":{"id":307417910,"uuid":"1029369451","full_name":"gabrielmaialva33/innkeeper","owner":"gabrielmaialva33","description":"Modern multi-tenant hotel management system built with AdonisJS and React","archived":false,"fork":false,"pushed_at":"2025-07-31T05:49:58.000Z","size":267,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-07-31T06:37:21.972Z","etag":null,"topics":["adonisjs","adonisjs-framework","adonisjs6","boilerplate","bull","inertiajs","inertiajs-react","jwt","management","multi-tenant","postgresql","rbac","react","react19","redis","tailwind","web"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gabrielmaialva33.png","metadata":{"files":{"readme":"README-pt.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-31T00:19:35.000Z","updated_at":"2025-07-31T05:50:03.000Z","dependencies_parsed_at":"2025-07-31T06:55:50.178Z","dependency_job_id":null,"html_url":"https://github.com/gabrielmaialva33/innkeeper","commit_stats":null,"previous_names":["gabrielmaialva33/innkeeper"],"tags_count":null,"template":false,"template_full_name":"gabrielmaialva33/adonis-web-kit","purl":"pkg:github/gabrielmaialva33/innkeeper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielmaialva33%2Finnkeeper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielmaialva33%2Finnkeeper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielmaialva33%2Finnkeeper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielmaialva33%2Finnkeeper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gabrielmaialva33","download_url":"https://codeload.github.com/gabrielmaialva33/innkeeper/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielmaialva33%2Finnkeeper/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268994657,"owners_count":24341578,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-05T02:00:12.334Z","response_time":2576,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adonisjs","adonisjs-framework","adonisjs6","boilerplate","bull","inertiajs","inertiajs-react","jwt","management","multi-tenant","postgresql","rbac","react","react19","redis","tailwind","web"],"created_at":"2025-08-06T00:01:15.265Z","updated_at":"2026-04-13T03:03:21.606Z","avatar_url":"https://github.com/gabrielmaialva33.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  🏨 Innkeeper\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eUm Sistema Moderno de Gerenciamento Hoteleiro Multi-Tenant\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/license/gabrielmaialva33/innkeeper?color=00b8d3\u0026style=flat-square\" alt=\"Licença\" /\u003e\n  \u003cimg src=\"https://img.shields.io/github/languages/top/gabrielmaialva33/innkeeper?style=flat-square\" alt=\"Linguagem principal do GitHub\" \u003e\n  \u003cimg src=\"https://img.shields.io/github/repo-size/gabrielmaialva33/innkeeper?style=flat-square\" alt=\"Tamanho do repositório\" \u003e\n  \u003ca href=\"https://github.com/gabrielmaialva33/innkeeper/commits/main\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/last-commit/gabrielmaialva33/innkeeper?style=flat-square\" alt=\"Último commit do GitHub\" \u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"README.md\"\u003eInglês\u003c/a\u003e\n    ·\n    \u003ca href=\"README-pt.md\"\u003ePortuguês\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#bookmark-sobre\"\u003eSobre\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#sparkles-funcionalidades\"\u003eFuncionalidades\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#rocket-tecnologias\"\u003eTecnologias\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#hammer_and_wrench-instalação\"\u003eInstalação\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#memo-licença\"\u003eLicença\u003c/a\u003e\n\u003c/p\u003e\n\n## :bookmark: Sobre\n\n**Innkeeper** é um sistema completo de gerenciamento hoteleiro multi-tenant projetado para otimizar e modernizar as\noperações hoteleiras. Construído sobre uma base robusta de backend **AdonisJS v6** e frontend **React 19** com \\*\n\\*Inertia.js\\*\\*, fornece uma solução completa para gerenciar múltiplas propriedades hoteleiras a partir de uma única\nplataforma.\n\nEste sistema atende às necessidades complexas dos negócios de hospitalidade modernos, desde pequenos hotéis boutique até\ngrandes cadeias hoteleiras. Com sua arquitetura multi-tenant, cada propriedade hoteleira mantém isolamento completo de\ndados enquanto se beneficia de infraestrutura compartilhada e recursos de gerenciamento centralizado.\n\n### 🏗️ Visão Geral da Arquitetura\n\n```mermaid\ngraph TB\n    subgraph \"🖥️ Frontend\"\n        UI[\"🌐 React + Inertia.js\u003cbr/\u003ePortal do Hóspede • Painel da Equipe • Painel Admin\"]\n    end\n\n    subgraph \"🔧 Serviços Backend\"\n        API[AdonisJS API]\n        AUTH[Auth Multi-Tenant]\n        BOOKING[Motor de Reservas]\n        PMS[Gestão de Propriedades]\n    end\n\n    subgraph \"💾 Camada de Dados\"\n        DB[(PostgreSQL)]\n        CACHE[(Redis)]\n    end\n\n    UI --\u003e API\n    API --\u003e AUTH\n    API --\u003e BOOKING\n    API --\u003e PMS\n\n    AUTH --\u003e DB\n    BOOKING --\u003e DB\n    PMS --\u003e DB\n\n    BOOKING --\u003e CACHE\n    AUTH --\u003e CACHE\n\n    style UI fill:#e1f5fe\n    style API fill:#f3e5f5\n    style DB fill:#e8f5e8\n    style CACHE fill:#fff3e0\n```\n\n### 🗄️ Esquema do Banco de Dados\n\nPara uma visão detalhada da estrutura do banco de dados, você pode acessar nosso diagrama interativo:\n\n**[📊 Diagrama Interativo do Banco de Dados](https://dbdiagram.io/d/innkeeper-diagram-688adda9cca18e685c90b3f7)**\n\n```mermaid\nerDiagram\n    ORGANIZATIONS {\n        int id PK\n        string name\n        string slug\n        string email\n        string timezone\n        string currency\n    }\n\n    HOTELS {\n        int id PK\n        int organization_id FK\n        string name\n        string address\n        int star_rating\n        int total_rooms\n        time check_in_time\n        time check_out_time\n    }\n\n    ROOMS {\n        int id PK\n        int hotel_id FK\n        int room_type_id FK\n        string room_number\n        string status\n        string housekeeping_status\n    }\n\n    ROOM_TYPES {\n        int id PK\n        int hotel_id FK\n        string name\n        int max_occupancy\n        decimal base_price\n        string bed_type\n    }\n\n    GUESTS {\n        int id PK\n        int organization_id FK\n        string first_name\n        string last_name\n        string email\n        string phone\n        string document_number\n    }\n\n    RESERVATIONS {\n        int id PK\n        int organization_id FK\n        int hotel_id FK\n        int room_id FK\n        int guest_id FK\n        string confirmation_code\n        string status\n        date check_in_date\n        date check_out_date\n        decimal total_amount\n    }\n\n    PAYMENTS {\n        int id PK\n        int reservation_id FK\n        int guest_id FK\n        string transaction_id\n        string method\n        string status\n        decimal amount\n        string currency\n    }\n\n    ORGANIZATIONS ||--o{ HOTELS : \"possui\"\n    ORGANIZATIONS ||--o{ GUESTS : \"gerencia\"\n    HOTELS ||--o{ ROOMS : \"contém\"\n    HOTELS ||--o{ ROOM_TYPES : \"define\"\n    HOTELS ||--o{ RESERVATIONS : \"recebe\"\n    ROOM_TYPES ||--o{ ROOMS : \"categoriza\"\n    GUESTS ||--o{ RESERVATIONS : \"faz\"\n    ROOMS ||--o{ RESERVATIONS : \"atribuído_a\"\n    RESERVATIONS ||--o{ PAYMENTS : \"gera\"\n```\n\n## :sparkles: Funcionalidades\n\n### Gerenciamento Hoteleiro Principal\n\n- **🏢 Arquitetura Multi-Tenant**: Gerencie múltiplas propriedades hoteleiras com isolamento completo de dados\n- **🛏️ Gestão de Quartos**: Inventário completo de quartos, tipos, comodidades e preços\n- **📅 Sistema de Reservas**: Motor de reservas avançado com disponibilidade em tempo real\n- **👥 Gestão de Hóspedes**: Perfis completos de hóspedes, preferências e histórico\n- **💼 Operações de Recepção**: Check-in/out, atribuição de quartos e walk-ins\n- **🧹 Governança**: Rastreamento do status dos quartos, cronogramas de limpeza e manutenção\n- **💰 Faturamento e Cobrança**: Preços flexíveis, impostos, descontos e processamento de pagamentos\n\n### Funcionalidades Avançadas\n\n- **📊 Painel de Análises**: Métricas de ocupação, receita e desempenho em tempo real\n- **🔄 Gerenciador de Canais**: Integração com OTAs (Booking.com, Expedia, etc.)\n- **📱 Mobile-Responsive**: Funcionalidade completa em todos os dispositivos\n- **🌐 Suporte Multi-Idiomas**: Internacionalização para operações globais\n- **👷 Gestão de Equipe**: Papéis, permissões, horários e atribuição de tarefas\n- **📧 Central de Comunicação**: E-mails automatizados, notificações SMS e mensagens para hóspedes\n- **🎯 Gestão de Receita**: Preços dinâmicos e otimização de rendimento\n- **🔗 Integrações de Terceiros**: Sistemas POS, fechaduras de portas e software de contabilidade\n\n### Funcionalidades Técnicas\n\n- **🔐 Controle de Acesso Baseado em Papéis**: Permissões granulares para diferentes tipos de usuários\n- **🚀 Atualizações em Tempo Real**: Atualizações ao vivo via WebSocket em toda a plataforma\n- **📈 Arquitetura Escalável**: Construída para lidar com propriedades de qualquer tamanho\n- **🔒 Segurança de Dados**: Criptografia ponta a ponta e conformidade com padrões hoteleiros\n- **🔄 Design API-First**: API RESTful para integrações fáceis\n- **📱 Progressive Web App**: Instalável em dispositivos móveis\n- **🎨 UI Personalizável**: Sistema de temas para consistência de marca\n\n## :rocket: Tecnologias\n\n### Backend\n\n- **[AdonisJS v6](https://adonisjs.com/)**: Framework Node.js de nível empresarial\n- **[PostgreSQL](https://www.postgresql.org/)**: Banco de dados relacional robusto com suporte multi-tenant\n- **[Redis](https://redis.io/)**: Cache de alto desempenho e gerenciamento de sessões\n- **[Bull Queue](https://github.com/OptimalBits/bull)**: Processamento de jobs em background\n- **[JWT](https://jwt.io/)**: Autenticação segura\n\n### Frontend\n\n- **[React 19](https://react.dev/)**: Biblioteca moderna de UI\n- **[Inertia.js](https://inertiajs.com/)**: Experiência SPA sem a complexidade\n- **[TypeScript](https://www.typescriptlang.org/)**: Desenvolvimento type-safe\n- **[Tailwind CSS](https://tailwindcss.com/)**: Estilização utility-first\n- **[shadcn/ui](https://ui.shadcn.com/)**: Componentes bonitos e acessíveis\n- **[Recharts](https://recharts.org/)**: Visualização de dados\n\n### DevOps \u0026 Ferramentas\n\n- **[Docker](https://www.docker.com/)**: Containerização\n- **[Vite](https://vitejs.dev/)**: Desenvolvimento ultrarrápido\n- **[ESLint](https://eslint.org/)** \u0026 **[Prettier](https://prettier.io/)**: Qualidade de código\n- **[Japa](https://japa.dev/)**: Framework de testes\n\n## :hammer_and_wrench: Instalação\n\n### Pré-requisitos\n\n- **Node.js** (v18 ou superior)\n- **pnpm** (recomendado) ou npm/yarn\n- **PostgreSQL** (v14 ou superior)\n- **Redis** (v6 ou superior)\n- **Docker** (opcional, para configuração containerizada)\n\n### Início Rápido\n\n1. **Clone o repositório:**\n\n   ```bash\n   git clone https://github.com/gabrielmaialva33/innkeeper.git\n   cd innkeeper\n   ```\n\n2. **Instale as dependências:**\n\n   ```bash\n   pnpm install\n   ```\n\n3. **Configure as variáveis de ambiente:**\n\n   ```bash\n   cp .env.example .env\n   ```\n\n   Configure seu banco de dados, Redis e outras configurações no arquivo `.env`.\n\n4. **Execute as migrações do banco de dados:**\n\n   ```bash\n   node ace migration:run\n   ```\n\n5. **Popule dados iniciais (opcional):**\n\n   ```bash\n   node ace db:seed\n   ```\n\n6. **Inicie o servidor de desenvolvimento:**\n\n   ```bash\n   pnpm dev\n   ```\n\n   Sua aplicação estará disponível em `http://localhost:3333`\n\n### Configuração com Docker\n\nPara um ambiente containerizado:\n\n```bash\ndocker-compose up -d\npnpm docker\n```\n\n### Deploy em Produção\n\n1. **Compile a aplicação:**\n\n   ```bash\n   pnpm build\n   ```\n\n2. **Execute as migrações em produção:**\n\n   ```bash\n   node ace migration:run --force\n   ```\n\n3. **Inicie o servidor de produção:**\n   ```bash\n   pnpm start\n   ```\n\n## :books: Documentação\n\nPara documentação detalhada, visite nossa [Wiki](https://github.com/gabrielmaialva33/innkeeper/wiki) ou verifique a\npasta `/docs`.\n\n### Documentação da API\n\nA documentação da API está disponível em `/api/docs` quando executada em modo de desenvolvimento.\n\n## :handshake: Contribuindo\n\nContribuições são bem-vindas! Por favor, leia nosso [Guia de Contribuição](CONTRIBUTING.md) para detalhes sobre nosso\ncódigo de conduta e o processo para enviar pull requests.\n\n## :memo: Licença\n\nEste projeto está licenciado sob a **Licença MIT**. Veja o arquivo [LICENSE](LICENSE) para mais detalhes.\n\n---\n\n\u003cp align=\"center\"\u003e\n  Feito com ❤️ para a indústria hoteleira\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabrielmaialva33%2Finnkeeper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgabrielmaialva33%2Finnkeeper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabrielmaialva33%2Finnkeeper/lists"}