Desenvolvedor Backend para Plataforma de Hotelaria

Job ID: 39671259

Budget: $250 – $750 USD

Olá! Estamos buscando um desenvolvedor backend experiente para construir a espinha dorsal da nossa nova plataforma de gestão (SaaS) para o setor de hotelaria (hostels, pousadas, etc.).
O frontend da aplicação já está 100% concluído e é bastante robusto. Ele foi desenvolvido em React/TypeScript e atualmente funciona com um backend simulado ("mockado") diretamente no navegador. Temos uma interface de administração completa, um portal do hóspede e um site público, todos já funcionais e com um design bem definido.
O Desafio Principal:
Sua principal missão será substituir nosso backend simulado, que hoje roda no frontend, por uma API RESTful real, robusta e escalável, usando Django (com Django REST Framework) e um banco de dados PostgreSQL. Você também será responsável pela configuração inicial do banco de dados e pelo deploy da aplicação em um ambiente de nuvem.

Pilha de Tecnologia (Tech Stack) Requerida:

Backend:
Python 3, Django, Django REST Framework (DRF)
Banco de Dados: PostgreSQL
Autenticação: JWT (JSON Web Tokens) para autenticação baseada em token.
Deploy: Heroku, DigitalOcean, AWS, ou outra plataforma similar (estamos abertos a sugestões).
(Contexto) Frontend: React, TypeScript.
Escopo e Responsabilidades Principais:
O escopo do projeto é muito bem definido, pois o frontend já dita todas as regras de negócio e estruturas de dados necessárias. Suas responsabilidades incluem:
1. Modelagem de Dados (Django Models):
Mapear nossos tipos de dados (atualmente definidos em TypeScript) para models do Django. A estrutura é complexa e inclui cerca de 40-50 modelos inter-relacionados. Os principais são:
PropertyInfo (informações da propriedade/cliente SaaS)
Room, Bed (quartos, camas, tipos, status)
Guest, Staff (usuários com diferentes perfis e permissões)
ooking, RatePlan, BookingRestriction (reservas, planos de tarifa, regras)
Product, Transaction (para o Ponto de Venda - PDV)
StaffTask, Project (gerenciamento de tarefas e projetos internos)
AdCampaign, ScheduledPost (módulos de marketing)
ChatConversation, ChatMessage (sistema de chat)
E muitos outros relacionados a reviews, eventos, guias locais, etc.
2. Desenvolvimento da API RESTful (Django REST Framework):
Criar endpoints (usando DRF ViewSets/APIViews) para todas as operações atualmente simuladas no frontend. Isso inclui:
Operações CRUD (Criar, Ler, Atualizar, Deletar) para a maioria dos modelos (ex: gerenciar quartos, hóspedes, produtos).
Lógica de negócio complexa para criar e gerenciar reservas, calcular preços e verificar disponibilidade.
Endpoints para gerenciar o fluxo de caixa (despesas e transações).
Endpoints para o sistema de chat omni-channel e interno.
3. Autenticação e Permissões:
Implementar um sistema de autenticação seguro via JWT.
Criar um sistema de permissões baseado em papéis (roles), diferenciando o que cada tipo de funcionário (Staff) e hóspede (Guest) pode acessar e modificar na API.
4. Integração com API Externa (Google Gemini):
O frontend já lida com a maior parte da lógica e chamadas para a API do Google Gemini. O backend precisará:
Armazenar de forma segura a chave da API do Google.
Criar alguns endpoints "proxy" que recebem dados do nosso frontend, enriquecem com informações do nosso banco de dados (ex: dados do hostel, perfil do hóspede), e então fazem a chamada para a API do Gemini.
Armazenar os resultados gerados pela IA no nosso banco de dados (ex: salvar um plano de marketing gerado).
5. Configuração do Banco de Dados e Migrations:
Configurar o esquema do banco de dados PostgreSQL com base nos models do Django, utilizando o sistema de migrations nativo.
6. Deploy:
Fazer o deploy inicial da API e do banco de dados em uma plataforma de nuvem (a ser definida em conjunto), garantindo que o ambiente seja seguro e escalável.

Para tornar seu trabalho mais fácil e preciso, forneceremos:
Documentação Completa da API (Contrato): Uma lista detalhada de TODAS as funções que o backend precisa expor (equivalente ao nosso arquivo apiService.ts), incluindo os parâmetros de entrada e os formatos de resposta JSON esperados.
Estrutura de Dados Detalhada: Uma lista completa de todos os modelos de dados necessários, seus campos e tipos (equivalente aos nossos arquivos types.ts).
Acesso a uma Versão Funcional do Frontend: Você terá acesso a uma versão de desenvolvimento do frontend para que possa testar seus endpoints em um ambiente real e garantir que tudo funcione perfeitamente.
Comunicação Direta e Constante: Acesso direto para tirar dúvidas e alinhar detalhes durante todo o projeto.