369 lines
12 KiB
Markdown
369 lines
12 KiB
Markdown
# 🏨 Hotel Pi - Complete Project Index
|
|
|
|
## 📚 Documentation Structure
|
|
|
|
Start here based on your role:
|
|
|
|
### 👨💼 **Project Manager / Stakeholder**
|
|
1. [README.md](README.md) - Project overview
|
|
2. [COMPLETION.md](COMPLETION.md) - What's been delivered
|
|
3. [QUICK_REFERENCE.md](QUICK_REFERENCE.md) - Key concepts
|
|
|
|
### 👨💻 **Developer (Getting Started)**
|
|
1. [GETTING_STARTED.md](GETTING_STARTED.md) - 5-minute setup
|
|
2. [frontend/README.md](frontend/README.md) - Frontend development
|
|
3. [control-service/README.md](control-service/README.md) - Control service development
|
|
4. [ARCHITECTURE.md](ARCHITECTURE.md) - How it all works together
|
|
|
|
### 🏗️ **DevOps / System Administrator**
|
|
1. [DEPLOYMENT.md](DEPLOYMENT.md) - Raspberry Pi deployment
|
|
2. [docker-compose.yml](docker-compose.yml) - Services configuration
|
|
3. [.env.example](.env.example) - Configuration options
|
|
4. [scripts/](scripts/) - Automation & operations
|
|
|
|
### 🗄️ **CMS / Content Manager**
|
|
1. [directus/README.md](directus/README.md) - CMS setup
|
|
2. [API.md](API.md) - Data structure (Restaurants/Attractions collections)
|
|
3. [GETTING_STARTED.md#directus-cms-setup](GETTING_STARTED.md#directus-cms-setup) - Step-by-step CMS guide
|
|
|
|
### 📚 **API / Integration Developer**
|
|
1. [API.md](API.md) - Complete API reference
|
|
2. [control-service/README.md#websocket-protocol](control-service/README.md#websocket-protocol) - WebSocket protocol
|
|
3. [frontend/README.md#api-integration](frontend/README.md#api-integration) - Frontend API usage
|
|
|
|
---
|
|
|
|
## 🗂️ File Organization
|
|
|
|
### Root Level
|
|
|
|
```
|
|
Hotel_Pi/
|
|
├── 📖 Documentation
|
|
│ ├── README.md ← Start here
|
|
│ ├── GETTING_STARTED.md ← Quick setup guide
|
|
│ ├── DEPLOYMENT.md ← Production deployment
|
|
│ ├── ARCHITECTURE.md ← Technical design
|
|
│ ├── API.md ← API reference
|
|
│ ├── QUICK_REFERENCE.md ← Cheat sheet
|
|
│ ├── COMPLETION.md ← What was delivered
|
|
│ └── INDEX.md ← This file
|
|
│
|
|
├── 🎨 Frontend Application
|
|
│ ├── frontend/
|
|
│ │ ├── src/
|
|
│ │ │ ├── App.svelte ← Root component
|
|
│ │ │ ├── main.js ← Entry point
|
|
│ │ │ ├── components/ ← UI components
|
|
│ │ │ │ ├── IdleScreen.svelte
|
|
│ │ │ │ ├── HomeScreen.svelte
|
|
│ │ │ │ ├── RestaurantsPage.svelte
|
|
│ │ │ │ ├── AttractionsPage.svelte
|
|
│ │ │ │ └── Clock.svelte
|
|
│ │ │ └── lib/ ← Utilities
|
|
│ │ │ ├── store.js ← State management
|
|
│ │ │ ├── api.js ← API client
|
|
│ │ │ ├── websocket.js ← WebSocket client
|
|
│ │ │ └── qrcode.js ← QR generation
|
|
│ │ ├── index.html ← HTML template
|
|
│ │ ├── vite.config.js ← Build config
|
|
│ │ ├── package.json ← Dependencies
|
|
│ │ ├── README.md ← Frontend guide
|
|
│ │ └── Dockerfile ← Container image
|
|
│
|
|
├── 🎮 Control Service
|
|
│ ├── control-service/
|
|
│ │ ├── src/
|
|
│ │ │ ├── server.js ← Main server
|
|
│ │ │ ├── cec-handler.js ← CEC input
|
|
│ │ │ └── commands.js ← System control
|
|
│ │ ├── package.json ← Dependencies
|
|
│ │ ├── README.md ← Service guide
|
|
│ │ ├── Dockerfile ← Container image
|
|
│ │ └── .eslintrc.json ← Linting config
|
|
│
|
|
├── 🗄️ CMS Configuration
|
|
│ ├── directus/
|
|
│ │ ├── schema.js ← Schema definitions
|
|
│ │ ├── seed-data.sql ← Sample data
|
|
│ │ └── README.md ← CMS guide
|
|
│
|
|
├── 🐳 Docker Orchestration
|
|
│ ├── docker-compose.yml ← Main composition
|
|
│ ├── docker-compose.dev.yml ← Dev overrides
|
|
│
|
|
├── 🚀 Automation Scripts
|
|
│ ├── scripts/
|
|
│ │ ├── launch-kiosk.sh ← Start kiosk
|
|
│ │ ├── launch-plex.sh ← Launch Plex
|
|
│ │ ├── return-to-kiosk.sh ← Back to kiosk
|
|
│ │ ├── init-system.sh ← Pi setup
|
|
│ │ ├── rebuild.sh ← Docker rebuild
|
|
│ │ ├── stop.sh ← Stop services
|
|
│ │ ├── logs.sh ← View logs
|
|
│ │ └── control.sh ← Control CLI
|
|
│
|
|
├── ⚙️ Configuration
|
|
│ ├── .env.example ← Config template
|
|
│ ├── .gitignore ← Git ignore rules
|
|
│ └── package.json ← Root scripts
|
|
```
|
|
|
|
---
|
|
|
|
## 🎯 Key Components
|
|
|
|
### Frontend (`frontend/`)
|
|
|
|
**Framework:** Vite + Svelte
|
|
**Purpose:** Kiosk UI
|
|
**Key Files:**
|
|
- `App.svelte` - Main router and state management
|
|
- `src/components/*.svelte` - Page components
|
|
- `src/lib/*.js` - Utilities and integrations
|
|
**Ports:** 5173 (dev), 3000+ (prod)
|
|
|
|
### Control Service (`control-service/`)
|
|
|
|
**Framework:** Node.js
|
|
**Purpose:** Remote control + system commands
|
|
**Key Files:**
|
|
- `src/server.js` - WebSocket server
|
|
- `src/cec-handler.js` - HDMI-CEC input
|
|
- `src/commands.js` - System command execution
|
|
**Ports:** 3001
|
|
|
|
### Directus CMS (`directus/`)
|
|
|
|
**Framework:** Directus
|
|
**Purpose:** Content management
|
|
**Key Files:**
|
|
- `schema.js` - Collection definitions
|
|
- `seed-data.sql` - Sample data
|
|
**Ports:** 8055
|
|
**Database:** PostgreSQL (port 5432)
|
|
|
|
---
|
|
|
|
## 🔄 Quick Navigation
|
|
|
|
### I want to...
|
|
|
|
**Start developing immediately**
|
|
→ [GETTING_STARTED.md](GETTING_STARTED.md#quick-start-5-minutes)
|
|
|
|
**Deploy to Raspberry Pi**
|
|
→ [DEPLOYMENT.md](DEPLOYMENT.md#raspberry-pi-deployment)
|
|
|
|
**Understand the architecture**
|
|
→ [ARCHITECTURE.md](ARCHITECTURE.md)
|
|
|
|
**Learn the API**
|
|
→ [API.md](API.md)
|
|
|
|
**Find a specific command**
|
|
→ [QUICK_REFERENCE.md](QUICK_REFERENCE.md#common-commands)
|
|
|
|
**Develop the frontend**
|
|
→ [frontend/README.md](frontend/README.md)
|
|
|
|
**Develop the control service**
|
|
→ [control-service/README.md](control-service/README.md)
|
|
|
|
**Set up the CMS**
|
|
→ [directus/README.md](directus/README.md)
|
|
|
|
**Troubleshoot an issue**
|
|
→ [QUICK_REFERENCE.md#troubleshooting-cheat-sheet](QUICK_REFERENCE.md#troubleshooting-cheat-sheet)
|
|
|
|
**Configure the system**
|
|
→ [.env.example](.env.example)
|
|
|
|
---
|
|
|
|
## 📊 Project Statistics
|
|
|
|
| Metric | Value |
|
|
|--------|-------|
|
|
| **Total Files** | 50+ |
|
|
| **Lines of Code** | ~4,000 |
|
|
| **Documentation Pages** | 8 |
|
|
| **Frontend Components** | 6 |
|
|
| **Service Modules** | 3 |
|
|
| **Docker Services** | 4 |
|
|
| **Automation Scripts** | 8 |
|
|
| **Configuration Options** | 15+ |
|
|
|
|
---
|
|
|
|
## 🚀 Deployment Quick Links
|
|
|
|
### Development Environment
|
|
```bash
|
|
docker-compose up -d
|
|
# Frontend: http://localhost:5173
|
|
# Directus: http://localhost:8055
|
|
# Control: ws://localhost:3001
|
|
```
|
|
|
|
### Production (Raspberry Pi)
|
|
```bash
|
|
./scripts/init-system.sh
|
|
docker-compose up -d
|
|
./scripts/launch-kiosk.sh
|
|
```
|
|
|
|
### View Logs
|
|
```bash
|
|
./scripts/logs.sh all # All services
|
|
./scripts/logs.sh frontend # Frontend only
|
|
./scripts/logs.sh control # Control service
|
|
```
|
|
|
|
---
|
|
|
|
## 📚 Documentation Map
|
|
|
|
```
|
|
Start
|
|
↓
|
|
README.md (Project Overview)
|
|
├─→ GETTING_STARTED.md (Setup)
|
|
│ ├─→ frontend/README.md (UI Development)
|
|
│ ├─→ control-service/README.md (Control Development)
|
|
│ └─→ directus/README.md (CMS Setup)
|
|
│
|
|
├─→ DEPLOYMENT.md (Production)
|
|
│ └─→ scripts/ (Automation)
|
|
│
|
|
├─→ ARCHITECTURE.md (Design)
|
|
│ └─→ API.md (Integration)
|
|
│
|
|
└─→ QUICK_REFERENCE.md (Cheat Sheet)
|
|
└─→ COMPLETION.md (What's Done)
|
|
```
|
|
|
|
---
|
|
|
|
## 🎓 Learning Path by Role
|
|
|
|
### **Full Stack Developer**
|
|
1. README.md (5 min)
|
|
2. GETTING_STARTED.md (10 min)
|
|
3. ARCHITECTURE.md (20 min)
|
|
4. frontend/README.md (15 min)
|
|
5. control-service/README.md (15 min)
|
|
6. Start coding!
|
|
|
|
### **Frontend Developer**
|
|
1. GETTING_STARTED.md (10 min)
|
|
2. frontend/README.md (30 min)
|
|
3. API.md - Frontend section (10 min)
|
|
4. Start in `frontend/src/`
|
|
|
|
### **Backend Developer**
|
|
1. GETTING_STARTED.md (10 min)
|
|
2. control-service/README.md (30 min)
|
|
3. API.md - WebSocket section (10 min)
|
|
4. Start in `control-service/src/`
|
|
|
|
### **DevOps Engineer**
|
|
1. DEPLOYMENT.md (30 min)
|
|
2. docker-compose.yml (10 min)
|
|
3. .env.example (5 min)
|
|
4. scripts/ (10 min)
|
|
5. Monitor with health checks
|
|
|
|
### **Project Manager**
|
|
1. README.md (5 min)
|
|
2. COMPLETION.md (5 min)
|
|
3. ARCHITECTURE.md (15 min)
|
|
4. Understand the tech stack
|
|
|
|
---
|
|
|
|
## ✅ Verification Checklist
|
|
|
|
Ensure you have everything:
|
|
|
|
- [ ] All 50+ files present
|
|
- [ ] `frontend/` directory with components
|
|
- [ ] `control-service/` directory with modules
|
|
- [ ] `directus/` configuration
|
|
- [ ] `scripts/` automation scripts
|
|
- [ ] `docker-compose.yml` file
|
|
- [ ] Documentation (all 8 .md files)
|
|
- [ ] `.env.example` configuration
|
|
- [ ] `.gitignore` file
|
|
- [ ] Root `package.json`
|
|
|
|
---
|
|
|
|
## 🔗 External Resources
|
|
|
|
### Technologies Used
|
|
- [Svelte Documentation](https://svelte.dev)
|
|
- [Vite Guide](https://vitejs.dev)
|
|
- [Node.js API](https://nodejs.org/docs/)
|
|
- [Directus Docs](https://docs.directus.io)
|
|
- [PostgreSQL Manual](https://www.postgresql.org/docs/)
|
|
- [Docker Documentation](https://docs.docker.com)
|
|
|
|
### Tools
|
|
- [Raspberry Pi Documentation](https://www.raspberrypi.com/documentation/)
|
|
- [Git Basics](https://git-scm.com/doc)
|
|
- [npm Reference](https://docs.npmjs.com)
|
|
- [Docker Hub](https://hub.docker.com)
|
|
|
|
---
|
|
|
|
## 📞 Support Resources
|
|
|
|
### Common Issues → Solutions
|
|
See [QUICK_REFERENCE.md#troubleshooting-cheat-sheet](QUICK_REFERENCE.md#troubleshooting-cheat-sheet)
|
|
|
|
### How-To Guides
|
|
1. **Add new restaurant?** → See [GETTING_STARTED.md](GETTING_STARTED.md#add-new-restaurant)
|
|
2. **Deploy to Pi?** → See [DEPLOYMENT.md](DEPLOYMENT.md#raspberry-pi-deployment)
|
|
3. **Test WebSocket?** → See [QUICK_REFERENCE.md](QUICK_REFERENCE.md#test-websocket)
|
|
4. **View logs?** → See [QUICK_REFERENCE.md](QUICK_REFERENCE.md#startsstop-services)
|
|
|
|
### Debugging Help
|
|
1. Check logs: `./scripts/logs.sh all`
|
|
2. Health check: `curl http://localhost:3001/health`
|
|
3. Test API: `curl http://localhost:8055/items/restaurants`
|
|
4. Review docs relevant to your issue
|
|
|
|
---
|
|
|
|
## 🎉 You're Ready!
|
|
|
|
Everything is documented, organized, and ready to go.
|
|
|
|
**Next Steps:**
|
|
1. Clone/navigate to repository
|
|
2. Read [GETTING_STARTED.md](GETTING_STARTED.md)
|
|
3. Choose your path:
|
|
- **Development?** → `docker-compose up -d`
|
|
- **Deployment?** → See [DEPLOYMENT.md](DEPLOYMENT.md)
|
|
4. Start coding!
|
|
|
|
---
|
|
|
|
## 📝 Document Versions
|
|
|
|
| Document | Purpose | Last Updated | Status |
|
|
|----------|---------|--------------|--------|
|
|
| README.md | Overview | March 2024 | ✅ Complete |
|
|
| GETTING_STARTED.md | Setup Guide | March 2024 | ✅ Complete |
|
|
| DEPLOYMENT.md | Production Guide | March 2024 | ✅ Complete |
|
|
| ARCHITECTURE.md | Technical Design | March 2024 | ✅ Complete |
|
|
| API.md | API Reference | March 2024 | ✅ Complete |
|
|
| QUICK_REFERENCE.md | Cheat Sheet | March 2024 | ✅ Complete |
|
|
| COMPLETION.md | Project Summary | March 2024 | ✅ Complete |
|
|
| INDEX.md | This File | March 2024 | ✅ Complete |
|
|
|
|
---
|
|
|
|
**Version 1.0.0** | **Status: Production Ready** | **Last Updated: March 2024**
|