chitfund/README/DEPLOY_THESE_FIXES.md

297 lines
6.6 KiB
Markdown

# 🚀 Ready to Deploy - All Fixes
## Summary of Changes
Multiple fixes ready for production deployment!
---
## ✅ Changes to Deploy
### **Backend Fixes (3)**
1. **Notification API** - Fixed Mongoose → Sequelize
- File: `backend/src/routes/notifications.js`
- Error: 500 on `/api/notifications`
2. **Available Users API** - Added missing parentheses to subquery
- File: `backend/src/controllers/memberController.js`
- Error: 500 on `/api/members/users/available/:groupId`
3. **Updated ecosystem.config.js** - Fixed paths
- File: `backend/ecosystem.config.js`
- Changed script path to `./src/server.js`
### **Frontend Fixes (4)**
4. **Removed Demo Credentials** - Login screen clean
- File: `luckychit/lib/features/auth/views/login_screen.dart`
5. **Signup Navigation** - Auto-redirect to dashboard
- File: `luckychit/lib/features/auth/views/signup_screen.dart`
6. **Member Dashboard** - Removed hardcoded data
- File: `luckychit/lib/interfaces/member/member_dashboard.dart`
- Shows real data from API
- Empty state when no groups
- Fixed property name: `totalValue` (not `totalAmount`)
7. **Cache-Busting** - Fixed service worker issues
- File: `luckychit/web/index.html`
- Added cache control headers
- Auto-clears service workers
### **Infrastructure (2)**
8. **Consolidated Scripts** - All in `scripts/` folder
- `scripts/deploy.sh` - Unified deployment
- `scripts/diagnose.sh` - Diagnostics
- `scripts/backup-db.sh` - Database backup
- `scripts/restore-db.sh` - Database restore
- `scripts/fix-502.sh` - Fix 502 errors
9. **Consolidated Documentation** - Clean structure
- `README.md` - Main docs
- `QUICK_START.md` - Getting started
- `DEPLOYMENT.md` - Deployment guide
- `TROUBLESHOOTING.md` - All fixes
---
## 🚀 Deployment Steps
### Step 1: Commit All Changes
```bash
git add .
git commit -m "Production fixes: APIs, UI cleanup, cache-busting, consolidation"
git push origin prodnew
```
### Step 2: Deploy to Production
```bash
ssh luckychit@192.168.8.148
cd /home/luckychit/apps/chitfund
git pull origin prodnew
# Make scripts executable
chmod +x scripts/*.sh
# Deploy everything
./scripts/deploy.sh
```
### Step 3: Fix bcrypt Error (If Needed)
If you see "invalid ELF header" error:
```bash
cd /home/luckychit/apps/chitfund/backend
rm -rf node_modules package-lock.json
npm install
pm2 restart luckychit-api
```
### Step 4: Clear All Caches
```bash
# On server - already done by deploy script
pm2 restart all
# Clear nginx cache (if using separate proxy LXC)
ssh root@<nginx-proxy-ip>
sudo rm -rf /var/cache/nginx/*
sudo systemctl reload nginx
# In browser - Clear service worker
# F12 → Application → Service Workers → Unregister all
# Then: Ctrl + Shift + R (hard refresh)
```
### Step 5: Verify Everything Works
```bash
# Check PM2 status
pm2 status
# Check logs for errors
pm2 logs --lines 30
# Test backend APIs
curl http://localhost:3000/health
curl -H "Authorization: Bearer TOKEN" http://localhost:3000/api/notifications
# Test frontend
curl http://localhost:8080
# Test from domain
curl https://chitfund.deepteklabs.com/health
```
---
## 🧪 Testing Checklist
### Backend:
- [ ] API starts without bcrypt errors
- [ ] `/api/notifications` returns 200
- [ ] `/api/members/users/available/:groupId` returns 200
- [ ] No errors in `pm2 logs luckychit-api`
### Frontend:
- [ ] Login screen shows (no demo credentials)
- [ ] Signup redirects to dashboard
- [ ] Member dashboard shows empty state (if no groups)
- [ ] Member dashboard shows real data (if has groups)
- [ ] No console errors
- [ ] Service worker cleared
### Infrastructure:
- [ ] Deployment script works: `./scripts/deploy.sh`
- [ ] Diagnostics work: `./scripts/diagnose.sh`
- [ ] All scripts executable
---
## 🐛 Known Issues During Deployment
### Issue 1: bcrypt "invalid ELF header"
**Fix:**
```bash
cd /home/luckychit/apps/chitfund/backend
rm -rf node_modules package-lock.json
npm install
pm2 restart luckychit-api
```
### Issue 2: Frontend showing old version
**Fix:**
```bash
# Server side
./scripts/deploy.sh frontend --force
# Browser side
# F12 → Application → Service Workers → Unregister
# Ctrl + Shift + R (hard refresh)
```
### Issue 3: 502 Bad Gateway
**Fix:**
```bash
./scripts/fix-502.sh
```
---
## 📊 Expected Results
### Backend API:
```bash
# Should work now
curl https://chitfund.deepteklabs.com/api/notifications
# Response: { "success": true, "data": { "notifications": [], ... } }
curl https://chitfund.deepteklabs.com/api/members/users/available/GROUP_ID
# Response: { "success": true, "data": { "users": [...], ... } }
```
### Frontend:
- ✅ Login screen - No demo credentials
- ✅ Signup - Redirects to dashboard automatically
- ✅ Member dashboard - Shows empty state or real data
- ✅ No console errors
---
## 🎯 Quick Deploy Command
```bash
# One command to deploy everything
ssh luckychit@192.168.8.148 "cd /home/luckychit/apps/chitfund && git pull origin prodnew && chmod +x scripts/*.sh && ./scripts/deploy.sh"
```
Then clear browser cache and refresh!
---
## 📝 Post-Deployment
After successful deployment:
1. **Test in incognito** first (no cache)
2. **Verify APIs** work without errors
3. **Test user flows** (signup, login, dashboard)
4. **Check PM2 logs** for any warnings
5. **Monitor for a few minutes** to ensure stability
---
## 🆘 If Something Breaks
```bash
# Run diagnostics
./scripts/diagnose.sh
# Check logs
pm2 logs --lines 50
# Restart everything
pm2 restart all
# Still broken?
# See TROUBLESHOOTING.md
```
---
## 📋 Files Changed (Summary)
### Backend (3 files):
- `backend/src/routes/notifications.js`
- `backend/src/controllers/memberController.js`
- `backend/ecosystem.config.js`
### Frontend (4 files):
- `luckychit/lib/features/auth/views/login_screen.dart`
- `luckychit/lib/features/auth/views/signup_screen.dart`
- `luckychit/lib/interfaces/member/member_dashboard.dart`
- `luckychit/web/index.html`
### Scripts (5 new files):
- `scripts/deploy.sh`
- `scripts/diagnose.sh`
- `scripts/backup-db.sh`
- `scripts/restore-db.sh`
- `scripts/fix-502.sh`
### Documentation (4 core files):
- `README.md`
- `QUICK_START.md`
- `DEPLOYMENT.md`
- `TROUBLESHOOTING.md`
---
## 🎉 Benefits
After this deployment:
- ✅ All API 500 errors fixed
- ✅ Clean, professional UI (no demo data)
- ✅ Better user experience (signup navigation)
- ✅ Real data displayed (no hardcoded content)
- ✅ Cache issues resolved
- ✅ Clean project structure
- ✅ Easy deployment process
---
**Ready to deploy! Follow the steps above.** 🚀
**Estimated time**: 10-15 minutes (including bcrypt rebuild if needed)