A comprehensive display management system for organizing rooms, schedules, announcements, and floor information with admin control and real-time display kiosks.
- Setup & Installation - Get the project running locally
- Architecture - Project structure and components
- Database - Database schema and models
- API Reference - Endpoints and usage
- Admin Interface - Managing data and schedules
- Display Kiosk - Pi Node display setup
- Deployment - Production deployment guide
- Frontend: Next.js 15, React 19, TailwindCSS
- Backend: Next.js API Routes, Socket.io
- Database: PostgreSQL 16, Prisma ORM
- Authentication: NextAuth
- Deployment: Docker, Docker Compose
.
├── server/ # Main Next.js application
│ ├── src/
│ │ ├── app/ # Next.js pages & components
│ │ ├── components/ # React components
│ │ └── lib/ # Utilities & middleware
│ ├── prisma/ # Database schema & seeds
│ └── public/ # Static files
├── pi-node/ # Raspberry Pi display setup
└── docker-compose.yml # Docker services
Admin Dashboard - Manage floors, rooms, schedules, and announcements
Real-time Updates - Socket.io for live display updates
Authentication - Secure admin access with NextAuth
Floor Management - Organize rooms by floors
Schedule Display - Show room schedules in real-time
Announcements - Post announcements across displays
Display Kiosks - Raspberry Pi integration for automatic displays
# Server Setup
cp .env.example .env # Configure environment
docker-compose up --build # Start all services
docker-compose exec server pnpm db:seed # Seed database with initial data
# Raspberry Pi Node Setup
cd B22_Group06/pi-node # Navigate to pi-node directory
chmod +x setup.sh # Make setup script executable
sudo ./setup.sh # Run setup (requires sudo for system services)