Sistema backend para gestão de pedidos de coquetéis em tempo real
Backend Node.js + Express + Socket.io que fornece APIs REST e comunicação em tempo real para o sistema de pedidos de coquetéis. Desenvolvido para trabalhar com o frontend Next.js.
- API Health: https://cocktail-backend-production.up.railway.app/health
- API Test: https://cocktail-backend-production.up.railway.app/api/test
- Socket.io: wss://cocktail-backend-production.up.railway.app
- Node.js - Runtime JavaScript
- Express.js - Framework web
- Socket.io - WebSocket em tempo real
- CORS - Cross-Origin Resource Sharing
- Helmet - Segurança HTTP
- Compression - Compressão de respostas
# Clone o repositório
git clone https://github.com/Hanksx/Cocktail-Backend.git
cd Cocktail-Backend
# Instale as dependências
npm install
# Configure as variáveis de ambiente
cp .env.example .env
# Execute em modo desenvolvimento
npm run dev
# Execute em produção
npm start# .env
PORT=3002
NODE_ENV=development
FRONTEND_URL=http://localhost:3000
# Para produção
NODE_ENV=production
PORT=3002
FRONTEND_URL=https://monkeybeer.pedetech.com.br
RAILWAY_STATIC_URL=https://cocktail-backend-production.up.railway.appGET /healthRetorna status do servidor e tempo de funcionamento.
GET /api/testEndpoint de teste para verificar conectividade.
GET /api/orders # Listar todos os pedidos
POST /api/orders # Criar novo pedido
PUT /api/orders/:id # Atualizar pedido
DELETE /api/orders/:id # Excluir pedidoGET /api/tables # Listar status das mesas
POST /api/tables/:id # Atualizar status da mesa// Cliente conecta
io.on('connection', (socket) => {
console.log('Cliente conectado:', socket.id);
});
// Novo pedido criado
socket.emit('newOrder', orderData);
// Pedido atualizado
socket.emit('orderUpdated', orderData);
// Status da mesa alterado
socket.emit('tableStatusChanged', tableData);
// Cliente desconecta
socket.on('disconnect', () => {
console.log('Cliente desconectado');
});import io from 'socket.io-client';
const socket = io('https://cocktail-backend-production.up.railway.app');
// Escutar novos pedidos
socket.on('newOrder', (order) => {
console.log('Novo pedido:', order);
});
// Emitir pedido
socket.emit('createOrder', {
mesa: 1,
items: [{ name: 'Caipirinha', quantity: 2 }]
});Cocktail-Backend/
├── 📄 server.js # Servidor principal
├── 📄 package.json # Dependências
├── 📁 controllers/ # Controladores das rotas
│ ├── orderController.js # Lógica dos pedidos
│ └── tableController.js # Lógica das mesas
├── 📁 models/ # Modelos de dados
│ ├── Order.js # Modelo de pedido
│ └── OrderRepository.js # Repositório de pedidos
├── 📄 railway.json # Configuração Railway
├── 📄 Procfile # Comando de start
└── 📄 README.md # Documentação
# O projeto já inclui:
# - railway.json (configuração)
# - Procfile (comando de start)
# - package.json (scripts)NODE_ENV=production
PORT=3002
FRONTEND_URL=https://monkeybeer.pedetech.com.br- Conecte repositório ao Railway
- Configure variáveis de ambiente
- Deploy automático a cada push
Documentação completa: RAILWAY-DEPLOY.md
# Desenvolvimento
npm run dev # Executa com nodemon
npm run start # Executa em produção
npm test # Executa testes (se houver)
# Instalação
npm install # Instala dependências
./install.sh # Script de instalação automatizadahttps://monkeybeer.pedetech.com.br(Produção)https://www.pedetech.com.br(Site principal)http://localhost:3000(Desenvolvimento)
- Helmet.js para security headers
- CORS restritivo
- Rate limiting (se implementado)
Solução: Verificar se URL do frontend está na lista de origens permitidas em server.js.
Solução: Verificar se URL do backend está correta no frontend e se WebSocket está habilitado.
Solução: Verificar logs do Railway ou console local para detalhes do erro.
railway logs # Ver logs em tempo real- URL:
/health - Resposta: Status do servidor, uptime, timestamp
- Número de conexões WebSocket ativas
- Total de pedidos processados
- Status das mesas
- Frontend: https://github.com/Hanksx/Cocktail-Manager
- Sistema Completo: https://github.com/Hanksx/Cocktail-Manager/blob/main/Coquetel.zip
Este projeto é uma adaptação do Cocktail-Manager original por Jo Gross.
- Projeto original: GNU AGPL v3 com Common Clause
- Esta adaptação: Mantém a mesma licença
Versão: 1.0.0
Status: ✅ Funcional em produção
Demo: https://cocktail-backend-production.up.railway.app
Uptime: Monitorado via Railway
npm installnpm run dev- Testar: http://localhost:3002/health
- Conectar frontend: Socket.io na porta 3002
Desenvolvido com ❤️ para sistema de pedidos em tempo real