A complete hotel reservation management system built with XML data structuring, XQuery for queries, and BaseX as the native XML database. The project includes a modern web interface for managing reservations, guests, and additional services.
- XML-based data structure with XSD schema validation
- XQuery queries for data manipulation and reporting
- BaseX native XML database integration
- RESTful API with CORS support
- Modern responsive web interface
- Real-time reservation management
- Guest information tracking
- Additional services management (Spa, Restaurant, Transport)
- MongoDB integration for analytics
- API documentation with Swagger
- XML - Data structuring
- XSD Schema - Data validation
- XQuery - Query language
- BaseX - Native XML database
- MongoDB - Analytics and reporting
- BaseX RESTXQ - RESTful API
- api_hotel.xqm - XQuery module for API endpoints
- HTML5 - Structure
- CSS3 - Styling with modern design
- JavaScript - Interactive features
- Vanilla JS - No framework dependencies
- Swagger - API documentation
- JSON - Data exchange format
XML/
├── reservas.xml # Reservations data
├── reservas.xsd # XML Schema validation
├── reservas.json # JSON export
├── api_hotel.xqm # XQuery API module
├── query1_reservas_hospede.xq # Guest reservations query
├── query2_reservas_por_unidade.xq # Unit reservations query
├── query3_total_servicos.xq # Services total query
├── consultas_mongodb.js # MongoDB queries
├── website/
│ ├── backend/ # BaseX configuration
│ └── frontend/ # Web interface
│ ├── index.html # Main interface
│ ├── app.js # Application logic
│ ├── update-form.js # Update functionality
│ ├── styles.css # Styling
│ └── swagger.html # API documentation
├── Relatorio-8240558_8240544.pdf # Project report
└── LICENSE
- Guest information (Client ID, Name, NIF, Email, Phone)
- Accommodation unit (LS, PO, CB, FR, BR)
- Check-in and check-out dates
- Total value
- Additional services (max 4 per reservation)
- Client number: 3 letters + 3 digits (e.g., ABC123)
- NIF: 9 digits
- Phone: 9 digits starting with 9
- Email: Standard email format
- Reservation number: R + 3 digits (e.g., R001)
Retrieves all reservations for a specific guest
Lists reservations grouped by accommodation unit
Calculates total revenue from additional services
- BaseX 9.0 or higher
- Modern web browser
- Optional: MongoDB for analytics
- Clone the repository
git clone https://github.com/ArpaoCeleste/xml.git
cd xml- Start BaseX server
basexserver- Import data to BaseX
basex
CREATE DB reservas reservas.xml-
Deploy API module Copy
api_hotel.xqmto BaseX webapp directory -
Open web interface Navigate to
website/frontend/index.htmlin your browser
List all reservations
Get specific reservation by ID
Create new reservation
Update existing reservation
Delete reservation
Full API documentation available at swagger.html
- Access
index.html - View current reservations
- Add new reservations using the form
- Update or delete existing reservations
- Filter by unit or guest
Execute queries directly in BaseX GUI or command line
The system includes MongoDB queries for:
- Reservation analytics
- Revenue reporting
- Guest statistics
- Service utilization
Website: xml-eight.vercel.app
This project is licensed under the MIT License - see LICENSE file for details.
- Student IDs: 8240558, 8240544
- ArpaoCeleste
Um sistema completo de gestão de reservas hoteleiras construído com estruturação de dados XML, XQuery para consultas e BaseX como base de dados nativa XML. O projeto inclui uma interface web moderna para gerir reservas, hóspedes e serviços adicionais.
- Estrutura de dados baseada em XML com validação de esquema XSD
- Consultas XQuery para manipulação e relatórios de dados
- Integração com base de dados nativa XML BaseX
- API RESTful com suporte CORS
- Interface web moderna e responsiva
- Gestão de reservas em tempo real
- Rastreamento de informações de hóspedes
- Gestão de serviços adicionais (Spa, Restaurante, Transporte)
- Integração com MongoDB para análise
- Documentação da API com Swagger
- XML - Estruturação de dados
- XSD Schema - Validação de dados
- XQuery - Linguagem de consulta
- BaseX - Base de dados nativa XML
- MongoDB - Análise e relatórios
- BaseX RESTXQ - API RESTful
- api_hotel.xqm - Módulo XQuery para endpoints da API
- HTML5 - Estrutura
- CSS3 - Estilização com design moderno
- JavaScript - Funcionalidades interativas
- Vanilla JS - Sem dependências de frameworks
- Swagger - Documentação da API
- JSON - Formato de troca de dados
XML/
├── reservas.xml # Dados das reservas
├── reservas.xsd # Validação do esquema XML
├── reservas.json # Exportação JSON
├── api_hotel.xqm # Módulo API XQuery
├── query1_reservas_hospede.xq # Consulta reservas por hóspede
├── query2_reservas_por_unidade.xq # Consulta reservas por unidade
├── query3_total_servicos.xq # Cálculo total de serviços
├── consultas_mongodb.js # Consultas MongoDB
├── website/
│ ├── backend/ # Configuração BaseX
│ └── frontend/ # Interface web
│ ├── index.html # Interface principal
│ ├── app.js # Lógica da aplicação
│ ├── update-form.js # Funcionalidade de atualização
│ ├── styles.css # Estilos
│ └── swagger.html # Documentação da API
├── Relatorio-8240558_8240544.pdf # Relatório do projeto
└── LICENSE
- Informações do hóspede (ID Cliente, Nome, NIF, Email, Telefone)
- Unidade de alojamento (LS, PO, CB, FR, BR)
- Datas de check-in e check-out
- Valor total
- Serviços adicionais (máximo 4 por reserva)
- Número de cliente: 3 letras + 3 dígitos (ex: ABC123)
- NIF: 9 dígitos
- Telefone: 9 dígitos começando por 9
- Email: Formato de email padrão
- Número de reserva: R + 3 dígitos (ex: R001)
Obtém todas as reservas de um hóspede específico
Lista reservas agrupadas por unidade de alojamento
Calcula a receita total dos serviços adicionais
- BaseX 9.0 ou superior
- Navegador web moderno
- Opcional: MongoDB para análise
- Clonar o repositório
git clone https://github.com/ArpaoCeleste/xml.git
cd xml- Iniciar servidor BaseX
basexserver- Importar dados para BaseX
basex
CREATE DB reservas reservas.xml-
Fazer deploy do módulo API Copiar
api_hotel.xqmpara o diretório webapp do BaseX -
Abrir interface web Navegar para
website/frontend/index.htmlno navegador
Listar todas as reservas
Obter reserva específica por ID
Criar nova reserva
Atualizar reserva existente
Eliminar reserva
Documentação completa da API disponível em swagger.html
- Aceder a
index.html - Visualizar reservas atuais
- Adicionar novas reservas usando o formulário
- Atualizar ou eliminar reservas existentes
- Filtrar por unidade ou hóspede
Executar consultas diretamente no GUI do BaseX ou linha de comandos
O sistema inclui consultas MongoDB para:
- Análise de reservas
- Relatórios de receita
- Estatísticas de hóspedes
- Utilização de serviços
Website: xml-eight.vercel.app
Este projeto está licenciado sob a Licença MIT - consultar ficheiro LICENSE para detalhes.
- IDs de Estudante: 8240558, 8240544
- ArpaoCeleste