229 lines
5.0 KiB
Markdown
229 lines
5.0 KiB
Markdown
|
|
# 🚀 MongoDB System - Quick Reference
|
||
|
|
|
||
|
|
## ✅ System Status
|
||
|
|
|
||
|
|
**Database:** MongoDB Community Server (Local)
|
||
|
|
**Backend:** Flask + PyMongo
|
||
|
|
**Status:** ✅ OPERATIONAL
|
||
|
|
|
||
|
|
**Data:**
|
||
|
|
|
||
|
|
- 39 Songs
|
||
|
|
- 5 Profiles
|
||
|
|
- Cross-device access enabled
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🌐 Access URLs
|
||
|
|
|
||
|
|
### PC/Desktop
|
||
|
|
|
||
|
|
- **Frontend:** <http://localhost:3000>
|
||
|
|
- **Backend API:** <http://localhost:5000>
|
||
|
|
|
||
|
|
### Mobile/Tablet (Same WiFi)
|
||
|
|
|
||
|
|
- **Frontend:** <http://192.168.10.178:3000>
|
||
|
|
- **Backend API:** <http://192.168.10.178:5000>
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ⚡ Quick Commands
|
||
|
|
|
||
|
|
### Start Backend
|
||
|
|
|
||
|
|
```powershell
|
||
|
|
cd "E:\Documents\Website Projects\Church_SongLyric\backend"
|
||
|
|
.\venv\Scripts\python.exe app.py
|
||
|
|
```
|
||
|
|
|
||
|
|
### Check MongoDB Service
|
||
|
|
|
||
|
|
```powershell
|
||
|
|
Get-Service MongoDB
|
||
|
|
```
|
||
|
|
|
||
|
|
### Start MongoDB (if stopped)
|
||
|
|
|
||
|
|
```powershell
|
||
|
|
Start-Service MongoDB
|
||
|
|
```
|
||
|
|
|
||
|
|
### Test API
|
||
|
|
|
||
|
|
```powershell
|
||
|
|
Invoke-RestMethod http://localhost:5000/api/health
|
||
|
|
```
|
||
|
|
|
||
|
|
### Check Data Count
|
||
|
|
|
||
|
|
```powershell
|
||
|
|
cd backend
|
||
|
|
.\venv\Scripts\python.exe check_mongo_data.py
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🔧 Troubleshooting
|
||
|
|
|
||
|
|
### Frontend shows "Offline"
|
||
|
|
|
||
|
|
Open browser console (F12) and run:
|
||
|
|
|
||
|
|
```javascript
|
||
|
|
localStorage.setItem("api_settings", JSON.stringify({
|
||
|
|
protocol: "http",
|
||
|
|
hostname: "localhost", // or "192.168.10.178" for mobile
|
||
|
|
port: "5000",
|
||
|
|
useLocalStorage: false
|
||
|
|
}));
|
||
|
|
location.reload(true);
|
||
|
|
```
|
||
|
|
|
||
|
|
### Backend not responding
|
||
|
|
|
||
|
|
```powershell
|
||
|
|
# Check if backend is running
|
||
|
|
Get-Process python -ErrorAction SilentlyContinue
|
||
|
|
|
||
|
|
# Restart backend
|
||
|
|
cd "E:\Documents\Website Projects\Church_SongLyric\backend"
|
||
|
|
.\venv\Scripts\python.exe app.py
|
||
|
|
```
|
||
|
|
|
||
|
|
### MongoDB not running
|
||
|
|
|
||
|
|
```powershell
|
||
|
|
# Check service
|
||
|
|
Get-Service MongoDB
|
||
|
|
|
||
|
|
# Start if stopped
|
||
|
|
Start-Service MongoDB
|
||
|
|
|
||
|
|
# If service doesn't exist, reinstall MongoDB Community Server
|
||
|
|
```
|
||
|
|
|
||
|
|
### Data missing
|
||
|
|
|
||
|
|
```powershell
|
||
|
|
# Re-run migration (safe, skips duplicates)
|
||
|
|
cd "E:\Documents\Website Projects\Church_SongLyric\backend"
|
||
|
|
.\venv\Scripts\python.exe migrate_to_mongodb.py
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📁 Important Files
|
||
|
|
|
||
|
|
### Configuration
|
||
|
|
|
||
|
|
- `backend/.env` - Database connection settings
|
||
|
|
- `backend/mongodb_models.py` - Database schema
|
||
|
|
|
||
|
|
### Backups (in `backend/._archived_sqlite/`)
|
||
|
|
|
||
|
|
- `app.db` - Original SQLite database
|
||
|
|
- `models.py` - Old SQLAlchemy models
|
||
|
|
- `app_sqlite_backup.py` - Pre-migration backend
|
||
|
|
|
||
|
|
### Documentation
|
||
|
|
|
||
|
|
- `MONGODB_MIGRATION_COMPLETE.md` - Full migration details
|
||
|
|
- `MONGODB_ATLAS_SETUP.md` - Cloud setup guide (future)
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🎯 Key Features
|
||
|
|
|
||
|
|
✅ **Cross-Device Sync** - All devices use same database
|
||
|
|
✅ **Real-Time Updates** - Changes visible immediately
|
||
|
|
✅ **Connection Pooling** - Handles multiple devices
|
||
|
|
✅ **Automatic Indexes** - Fast song search
|
||
|
|
✅ **Data Safety** - Old SQLite backed up
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📊 API Endpoints
|
||
|
|
|
||
|
|
All endpoints working with MongoDB:
|
||
|
|
|
||
|
|
| Endpoint | Methods | Purpose |
|
||
|
|
|----------|---------|---------|
|
||
|
|
| `/api/health` | GET | Health check |
|
||
|
|
| `/api/profiles` | GET, POST | List/create profiles |
|
||
|
|
| `/api/profiles/<id>` | PUT, DELETE | Edit/delete profile |
|
||
|
|
| `/api/songs` | GET, POST | List/create songs (search with ?q=) |
|
||
|
|
| `/api/songs/<id>` | GET, PUT, DELETE | View/edit/delete song |
|
||
|
|
| `/api/plans` | GET, POST | List/create plans |
|
||
|
|
| `/api/profiles/<id>/songs` | GET, POST | Profile song library |
|
||
|
|
| `/api/search_external` | GET | Search ChartLyrics |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🔄 If You Need to Rollback
|
||
|
|
|
||
|
|
**(Only if something goes wrong - not recommended)**
|
||
|
|
|
||
|
|
```powershell
|
||
|
|
cd "E:\Documents\Website Projects\Church_SongLyric\backend"
|
||
|
|
|
||
|
|
# Stop current backend (Ctrl+C or close window)
|
||
|
|
|
||
|
|
# Restore old files
|
||
|
|
Copy-Item "._archived_sqlite\app.db" "app.db" -Force
|
||
|
|
Copy-Item "._archived_sqlite\app_sqlite_backup.py" "app.py" -Force
|
||
|
|
Copy-Item "._archived_sqlite\models.py" "models.py" -Force
|
||
|
|
|
||
|
|
# Restart backend with SQLite
|
||
|
|
.\venv\Scripts\python.exe app.py
|
||
|
|
```
|
||
|
|
|
||
|
|
**Note:** Rollback will lose any data added after migration!
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 💡 Tips
|
||
|
|
|
||
|
|
1. **Keep MongoDB Service Running**
|
||
|
|
- Set to start automatically (already configured)
|
||
|
|
- Don't stop MongoDB service
|
||
|
|
|
||
|
|
2. **Backend Must Run for Access**
|
||
|
|
- PC must have backend running
|
||
|
|
- Mobile/tablet connect to PC's backend
|
||
|
|
|
||
|
|
3. **Same WiFi Required**
|
||
|
|
- All devices need same network
|
||
|
|
- Use 192.168.10.178 for LAN access
|
||
|
|
|
||
|
|
4. **Future: Migrate to Cloud**
|
||
|
|
- Follow `MONGODB_ATLAS_SETUP.md`
|
||
|
|
- Enables access without PC running
|
||
|
|
- Works from anywhere with internet
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📞 Need Help?
|
||
|
|
|
||
|
|
Check these in order:
|
||
|
|
|
||
|
|
1. Is MongoDB service running? `Get-Service MongoDB`
|
||
|
|
2. Is backend running? `Get-Process python`
|
||
|
|
3. Can you access API? `Invoke-RestMethod http://localhost:5000/api/health`
|
||
|
|
4. Check browser console (F12) for errors
|
||
|
|
5. Review `MONGODB_MIGRATION_COMPLETE.md` for detailed info
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ✅ Success Checklist
|
||
|
|
|
||
|
|
- [x] MongoDB installed and running
|
||
|
|
- [x] 39 songs in database
|
||
|
|
- [x] 5 profiles in database
|
||
|
|
- [x] Backend API working
|
||
|
|
- [x] Old files archived safely
|
||
|
|
- [ ] Frontend tested (check now!)
|
||
|
|
- [ ] Mobile tested (try on phone)
|
||
|
|
|
||
|
|
**Your MongoDB migration is complete and operational!** 🎉
|