Skip to content

cassi35/airbnb_site

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nome do projeto

airbnb clone

objetivo

Este projeto é um clone funcional do Airbnb, permitindo que usuários cadastrem acomodações, reservem estadias, filtrem locais por data e características, e realizem login com autenticação segura. O sistema oferece uma interface moderna, responsiva e interativa. O objetivo é aplicar boas práticas de engenharia de software com arquitetura MVC, React Router e TypeScript fullstack.

arquitetura

  • frontend: React + TypeScript + React Router DOM v7 + TailwindCSS + Axios
  • backend: Node.js + TypeScript + MVC + Express ou Fastify + MongoDB + Prisma + REST API
  • deploy: Vercel (frontend) + Render (backend)
  • database: MongoDB (principais entidades: User, Listing, Reservation, Conversation)
  • autenticação: JWT + OAuth (Google)
  • armazenamento de imagem: Cloudinary
  • validação: Zod
  • email: Nodemailer (confirmação e notificações)

Requisitos Funcionais

  1. Cadastro e login com e-mail/senha ou Google OAuth
  2. Criar listagens de acomodações
  3. Visualizar listagens com filtros (local, preço, tipo, data, hóspedes)
  4. Reservar acomodações disponíveis
  5. Ver histórico de reservas
  6. Editar e deletar próprias acomodações
  7. Entrar em contato com o anfitrião (mensagens)
  8. Receber confirmação de reserva por e-mail
  9. Login persistente via token JWT + cookies
  10. Logout com limpeza de cookies

Requisitos Não Funcionais

  • Desempenho
    • Tempo de resposta inferior a 2 segundos
    • Suporte a 500 usuários simultâneos
  • Usabilidade
    • Layout moderno e limpo
    • Responsivo (mobile, tablet e desktop)
    • Figma como base de design
  • Segurança
    • Criptografia de senhas com bcrypt
    • Validação de dados com Zod
    • Proteção contra XSS e CSRF
    • CORS configurado
  • Confiabilidade
    • Backup diário do banco
    • Logs de erro e monitoramento
  • Disponibilidade
    • API e frontend disponíveis 24h
    • Ambiente de staging para testes

Restrições

  • Prazos
    Organização via Trello
    • Semana 1: Setup backend MVC + autenticação
    • Semana 2: Frontend com React Router + pages principais
    • Semana 3: Integração frontend/backend + deploy
  • Custos
    • Cloudinary
    • Render
    • MongoDB Atlas
    • Vercel
  • Disponibilidade: 24h por dia
  • Segurança: HTTPS obrigatório + headers configurados

condição

  • Compatível com dispositivos móveis, tablets e desktops
  • Compatível com navegadores modernos (Chrome, Firefox, Safari)
  • Todos os testes funcionais e visuais devem ser executados antes de publicação
  • Imagens devem estar otimizadas via CDN
  • Cookies seguros e expirando corretamente
  • Backup e logging configurados no backend

Diagramas e Modelos

  • draw.io: Relacionamento de entidades (User, Listing, Reservation...)

Critérios de Aceitação

  • Usuário consegue se cadastrar, criar e reservar acomodações
  • Frontend responsivo e funcional
  • Backend estruturado com MVC
  • Login persistente e logout funcional
  • Integração entre frontend e backend testada

Regras de Negócio

  • Somente usuários autenticados podem criar reservas ou listagens
  • Usuário só pode editar/deletar listagens que criou
  • Não é permitido reservar acomodações com datas conflitantes
  • Listagens só aparecem se estiverem ativas
  • Reservas só são criadas se houver disponibilidade de datas
  • Mensagens entre usuário e anfitrião devem ser salvas e exibidas corretamente

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published