Sobre este projeto
it-programming / mobile-development
Aberto
Contexto Geral do Projeto
Visão Geral do Projeto Este documento descreve o escopo, requisitos, arquitetura e plano de desenvolvimento para um aplicativo móvel cross-platform (Android e iOS) de gestão hoteleira. O app integra funcionalidades de reservas, financeiro, lançamento de despesas via cartão de crédito e checklists de quartos/áreas comuns. Ele se conecta a um banco de dados MySQL existente para autenticação, dados de usuários, reservas e finanças. O app será desenvolvido usando Flutter (framework cross-platform do Google) para garantir compatibilidade com Android e iOS a partir de uma única base de código. Isso reduz custos e tempo de desenvolvimento. A publicação será feita nas lojas Google Play Store e Apple App Store, seguindo as diretrizes de cada plataforma. Objetivos Principais: Permitir gestão remota de hotéis via mobile. Integrar com banco de dados MySQL para dados em tempo real. Garantir segurança, incluindo hash de senhas (usando password_hash em PHP ou equivalente no backend). Fornecer telas intuitivas com filtros, dashboards e uploads de arquivos/fotos. Incluir checklists inspirados em apps como MOKI para coleta de dados operacionais. Público-Alvo: Funcionários de hotéis (níveis de acesso: 1 para admin/financeiro, 4 para acesso limitado, outros restritos). Gerentes para aprovações financeiras e visualização de reservas. Equipes de limpeza para checklists. Requisitos Não Funcionais: Plataformas: Android (min. SDK 21) e iOS (min. 12.0). Idioma: Português (br), com suporte a moeda brl (r$). Segurança: Senhas criptografadas com hash (ex: bcrypt). Dados sensíveis criptografados em trânsito (HTTPS). Performance: Carregamento rápido de dados via API; offline parcial para checklists (sync ao reconectar). Acessibilidade: Suporte a leitores de tela; tamanhos de fonte ajustáveis. Publicação: App deve passar revisões da Google e Apple; incluir ícones, splash screens e descrições otimizadas. Fases de Desenvolvimento e Pagamento: Fase 1: Planejamento e Design (wireframes, API mockups). Fase 2: Desenvolvimento Backend/Frontend. Fase 3: Testes (unitários, integração, usuário). Fase 4: Publicação nas lojas e suporte inicial. Pagamento liberado apenas após aprovação de cada fase e publicação bem-sucedida. Arquitetura do Sistema Frontend: Flutter para ui/ux cross-platform. Bibliotecas: Dio (HTTP), Provider (estado), ImagePicker (fotos/anexos), Intl (formatação de moeda/data). Backend: API RESTful em PHP/Node.js para conectar ao MySQL. Endpoints para login, reservas, financeiro, uploads. Use password_hash e password_verify para autenticação. Banco de Dados: MySQL existente. Tabelas mencionadas: Funcionário (usuários, níveis, IDs), Reservas, Acomodacao, Cliente, AprovacaoApagar, ContaAPagar, ParcelaContaAPagar, CC (centro de custo), CC_Rateio. Integração: api segura com jwt para sessões logadas. Uploads salvos em servidor (ex: AWS S3 ou local). Segurança: HTTPS, validação de inputs, rate limiting. Senhas hashed no banco. Armazenamento Local: SharedPreferences para "ficar logado" no primeiro acesso. Checklists: Inspirado em MOKI: Upload de fotos/comentários, salvos em tabela dedicada (ex: Checklist com campos para quarto, área, fotos, obs). Diagrama de Alto Nível (Texto): textUsuário Mobile (Flutter App) ↓ (https api calls) backend api (php/node.js) ↓ (Queries) MySQL DB (Tabelas: Funcionário, Reservas, etc.) ↑ (Uploads) Servidor de Arquivos (Fotos/Notinhas) Telas e Fluxos do App 1. Tela de Login Campos: Usuário (username) e Senha. Funcionalidade: Autenticação via API contra tabela Funcionário. Hash de senha com password_hash. Opção: "Ficar logado" (salvar token localmente, apenas no primeiro acesso). Validação: Verificar nível de acesso (apenas 1 e 4 permitidos; redirecionar outros). Redirecionamento: Para Dashboard de Reservas após login bem-sucedido. Erros: Mensagens como "Credenciais inválidas" ou "Acesso negado". 2. Dashboard de Reservas Acesso: Todos os usuários logados. Elementos: Cards: Capacidade Total, Ocupados, Disponíveis, Taxa de Ocupação (%). Filtro: Multiselect de hotéis (carrega de tabela Acomodacao ou similar). Inicialmente full; soma dados ao selecionar. Dados: Puxados de tabelas Reservas, Acomodacao, Funcionário. Interatividade: Atualização em tempo real ao filtrar. 3. Tela de Reservas Acesso: Todos os usuários logados. Visualização: Lista de cards com Check-in, Check-out. Clique abre detalhes completos (de Reservas, Cliente, Acomodacao, Funcionário). Filtro: Campo de busca para digitar (ex: nome cliente, data). Funcionalidade: Paginação para grandes listas. 4. Seção Financeira (Apenas Nível 1) Aprovação de Contas Pendentes: Lista de contas de AprovacaoApagar, ContaAPagar. Opções: Aprovar/Reprovar com campo de obs (salva em tabela). Dados: Incluir parcelas de ParcelaContaAPagar, cliente de Cliente, cc de cc e cc_rateio. Visualizar Todas as Contas a Pagar: Lista filtrável (data, fornecedor, status). Filtros: Dropdowns ou campos de texto. 5. Lançamento de Cartão de Crédito Acesso: Usuários logados (recupera ID de Funcionário para rastrear quem lançou). Campos: Data da Despesa (datepicker). Fornecedor/Descrição (texto livre). Valor Total (numérico, formato BRL ex: R$ 1.234,56). Tipo (dropdown: À Vista, 2x, 3x, ..., 60x). Valor da Parcela (auto-calculado: Total / Parcelas; exibe readonly). Centro de Custo (dropdown carregado de tabela CC). Obs (texto livre). Anexar Notinha (ImagePicker para foto; upload para servidor via API). Funcionalidade: Salvar em tabela dedicada (ex: LancamentoCC), com ID do usuário. Telas Adicionais: Ver Notinhas Lançadas por Usuário: Lista filtrada pelo ID logado. Ver Todas as Notinhas (Apenas Admin/Nível 1): Lista completa com filtros. 6. Checklists Diários Acesso: Usuários logados (equipes de limpeza). Funcionalidades: Inspirado em MOKI. Seções: Quartos, Áreas Comuns, Arrumação. Para cada item: Checklist (sim/não), upload de fotos, comentários. Salvar: Em tabela Checklist com campos para tipo, fotos (multiplos uploads), obs, data, usuário ID. Análise: Dashboard simples com resumo (ex: % concluído).
Categoria TI e Programação
Subcategoria Programação de Apps para Android, iOS e outros
Qual é o alcance do projeto? Bug ou alteração pequena
Isso é um projeto ou uma posição de trabalho? Um projeto
Tenho, atualmente Eu tenho uma ideia geral
Disponibilidade requerida Conforme necessário
Plataformas exigidas Android, iPhone, iPad
Eu preciso Criar um app
Tipo de aplicativo Utilidade - Aplicativo para utilidade (flash,calculadora,etc)
Precisa de back-end Sim
Gateway de pagamento Não
Prazo de Entrega: 01 de Outubro de 2025
Habilidades necessárias