# 🏨 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**