Aplicação full-stack para gestão de festas e serviços, com foco em experiência do usuário, regras de negócio reais e arquitetura moderna para deploy cloud.
Ideal para portfólio técnico de:
- Desenvolvimento Full-Stack JavaScript
- Integração React + Node + MongoDB
- Boas práticas de testes e deploy serverless
O Party Time Events permite criar e gerenciar eventos (festas) e serviços associados (buffet, decoração, etc.), validando regras importantes como:
- orçamento da festa
- soma dos custos dos serviços
- restrições de atualização quando o orçamento é insuficiente
A solução foi estruturada em monorepo com frontend e backend separados, facilitando evolução e manutenção.
- ✅ Criar festa
- ✅ Listar festas
- ✅ Buscar festa por ID
- ✅ Atualizar festa
- ✅ Remover festa
- ✅ Validação de orçamento vs. custo total de serviços
- ✅ Criar serviço
- ✅ Listar serviços
- ✅ Buscar serviço por ID
- ✅ Atualizar serviço
- ✅ Remover serviço
- ✅ Navegação com
react-router-dom - ✅ Tratamento de erros com
ErrorBoundary - ✅ Notificações visuais
- ✅ Telas dedicadas para criação/edição/visualização
- React + Vite
- Componentização por rotas e componentes reutilizáveis
- Consumo de API com
axios
- Node.js + Express
- Controllers por domínio (
partyController,serviceController) - Rotas RESTful
- Persistência em MongoDB com
mongoose
- MongoDB Atlas (ou instância local)
- Modelagem com Schemas Mongoose:
PartyService
- Preparado para Vercel com:
- frontend estático (
frontend/dist) - backend serverless (
api/index.js) - roteamento central em
vercel.json
- frontend estático (
party-time-events-main/
├── api/
│ └── index.js # entrypoint serverless (Vercel)
├── backend/
│ ├── app.js # bootstrap local (connect + listen)
│ ├── server.js # app Express exportável
│ ├── controllers/
│ ├── db/
│ │ └── conn.js
│ ├── models/
│ ├── routes/
│ └── tests/ # Jest + Supertest + MongoMemoryServer
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ ├── routes/
│ │ ├── axios/
│ │ └── test/ # setup Vitest + Testing Library
│ ├── vite.config.js
│ └── package.json
├── vercel.json
├── TEST_REPORT.md
└── README.md- React
- Vite
- React Router DOM
- Axios
- React Toastify
- Node.js
- Express
- Mongoose
- CORS / Morgan / Body-Parser / Method-Override
- Jest
- Supertest
- mongodb-memory-server
- Vitest
- Testing Library (
react,jest-dom,user-event)
- Node.js 18+
- npm 9+
- MongoDB Atlas (recomendado) ou Mongo local
git clone <URL_DO_REPO>
cd party-time-events-mainCrie backend/.env:
MONGODB_URI=sua_string_de_conexao_mongodbcd backend
npm install
cd ../frontend
npm installcd backend
npm startBackend local em: http://localhost:3000
cd frontend
npm run devFrontend local (Vite): normalmente http://localhost:5173
Base URL local:
http://localhost:3000/api
POST /servicesGET /servicesGET /services/:idPUT /services/:idDELETE /services/:id
POST /partiesGET /partiesGET /parties/:idPUT /parties/:idDELETE /parties/:id
{
"name": "Buffet Premium",
"description": "Cardápio completo para 100 pessoas",
"price": 3500,
"image": "https://url-da-imagem.com/buffet.jpg"
}{
"title": "Aniversário 30 anos",
"author": "João",
"description": "Festa temática com DJ",
"budget": 8000,
"image": "https://url-da-imagem.com/festa.jpg",
"services": [
{
"name": "Buffet Premium",
"description": "Cardápio completo",
"price": 3500,
"image": "https://url-da-imagem.com/buffet.jpg"
}
]
}Frameworks:
- Jest + Supertest + mongodb-memory-server
Cobertura implementada:
- criação/listagem de services
- criação de parties (sucesso e orçamento insuficiente)
- busca por id (200/404)
- update de party
Executar:
cd backend
npm testFrameworks:
- Vitest + Testing Library
Testes implementados:
- Navbar
- ErrorBoundary
- Home
- CreateParty
- Party
- EditParty
Executar:
cd frontend
npm run testProjeto preparado para deploy com:
vercel.json(roteamento + builds)api/index.js(backend serverless)frontend/dist(build estático)
- Importar repositório na Vercel
- Definir variável de ambiente:
MONGODB_URI
- Confirmar build command do frontend (via static build)
- Deploy
- Autenticação e autorização (JWT/OAuth)
- Upload real de imagens (Cloudinary/S3)
- Paginação e filtros avançados
- Painel admin com métricas
- Cobertura de testes com relatório HTML/CI
- Pipeline CI/CD com GitHub Actions
João Pedro
Projeto desenvolvido como destaque de portfólio Full-Stack.
- GitHub:
https://github.com/SEU_USUARIO - LinkedIn:
https://linkedin.com/in/SEU_PERFIL
Dica: substitua os links acima pelos seus links reais antes de publicar.
Este projeto está sob licença ISC (conforme package.json do backend).
Sinta-se à vontade para adaptar para uso pessoal/educacional.