O DormeAqui é uma aplicação web full stack de hospedagem, construída do zero com foco em experiência do usuário, segurança e boas práticas de desenvolvimento. A plataforma permite que usuários cadastrem acomodações, realizem reservas e efetuem pagamentos de forma segura — cobrindo todo o fluxo de uma plataforma real de hospedagem.
🚀 Deploy em produção no Render (backend) e Vercel (frontend)
| Funcionalidade | Detalhe |
|---|---|
| 🔐 Autenticação | JWT + Login social com Google e GitHub (OAuth2) |
| 🏡 Gestão de Acomodações | Criação, edição e remoção de imóveis |
| 🖼️ Upload de Imagens | Armazenamento via AWS S3 |
| 📅 Reservas | Sistema de reservas com seleção de datas e hóspedes |
| 💳 Pagamentos | Stripe · Mercado Pago (Checkout Transparente + PIX) |
| ⭐ Avaliações | Sistema de reviews por acomodação |
| 🔔 Notificações | Notificações em tempo real via WebSocket |
| Envio de e-mails transacionais com Nodemailer | |
| 🔑 Recuperação de Senha | Fluxo de reset de senha por e-mail |
Front-end
Back-end
Autenticação & Segurança
Pagamentos
Cloud & Ferramentas
- Node.js v18+
- MongoDB (local ou Atlas)
- Contas configuradas: AWS S3, Google OAuth2, GitHub OAuth2, Stripe ou Mercado Pago
git clone https://github.com/LeonardoMarques7/ProjetoDormeAqui.git
cd ProjetoDormeAquicd back-end
npm installCrie o arquivo .env na pasta back-end/ com as variáveis abaixo:
# Banco de dados
MONGO_URL=mongodb://localhost:27017/dormeaqui
# JWT
JWT_SECRET=sua_chave_secreta
# OAuth2 - Google
GOOGLE_CLIENT_ID=seu_google_client_id
GOOGLE_CLIENT_SECRET=seu_google_client_secret
# OAuth2 - GitHub
GITHUB_CLIENT_ID=seu_github_client_id
GITHUB_CLIENT_SECRET=seu_github_client_secret
# AWS S3
AWS_ACCESS_KEY_ID=sua_access_key
AWS_SECRET_ACCESS_KEY=sua_secret_key
AWS_REGION=us-east-1
AWS_BUCKET_NAME=nome_do_bucket
# E-mail (Nodemailer)
EMAIL_USER=seu_email@gmail.com
EMAIL_PASS=sua_senha_de_app
# Pagamentos
STRIPE_SECRET_KEY=sk_test_...
MERCADO_PAGO_ACCESS_TOKEN=TEST-...
MERCADO_PAGO_WEBHOOK_URL=https://suaapi.com/api/webhooks/mercadopago
# URLs
FRONTEND_URL=http://localhost:5173
NODE_ENV=developmentInicie o servidor em modo desenvolvimento:
npm run devO servidor estará disponível em http://localhost:4000.
cd ../front-end
npm installCrie o arquivo .env na pasta front-end/ com as variáveis abaixo:
VITE_API_URL=http://localhost:4000
VITE_GOOGLE_CLIENT_ID=seu_google_client_id
VITE_STRIPE_PUBLIC_KEY=pk_test_...Inicie a aplicação:
npm run devA aplicação estará disponível em http://localhost:5173.
ProjetoDormeAqui/
├── back-end/
│ ├── config/ # Configurações de banco, Stripe e Mercado Pago
│ ├── domains/ # Módulos por domínio (users, places, bookings, payments, reviews)
│ ├── middleware/ # Middlewares de autenticação e validação
│ ├── routes/ # Rotas principais da API
│ ├── webhooks/ # Handlers de webhooks (Mercado Pago, Stripe)
│ └── index.js # Ponto de entrada do servidor
└── front-end/
└── src/
├── components/ # Componentes reutilizáveis
├── context/ # Contextos React (auth, notificações)
├── hooks/ # Hooks customizados
├── pages/ # Páginas da aplicação
└── services/ # Integrações com a API
| Serviço | Plataforma |
|---|---|
| Frontend | Vercel |
| Backend | Render |
| Banco de dados | MongoDB Atlas |
| Imagens | AWS S3 |