Skip to content
midozyPublic

About

🚦 Modern office door status display with remote control β€” Show your availability with style

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

7 Commits

Folders and files

Repository files navigation

🚦 BusyBoard β€” Office Door Status Display

A modern, elegant web application for displaying office door status with remote control capabilities. Perfect for offices, meeting rooms, or any space where you need to communicate availability.

BusyBoard Preview License

✨ Features

πŸ“Š 9 Status Types

  • βœ“ Available β€” Come on in
  • ● Busy β€” Please knock first
  • β—† In Meeting β€” In a meeting
  • 🚢 In Physical Meeting β€” In a physical meeting
  • β˜… Executive Meeting β€” Executive meeting in progress
  • ☎ Teams Call β€” On a Teams call
  • ◐ Focus Work β€” Deep focus β€” minimal interruptions
  • β›” Do Not Disturb β€” Do not disturb
  • β—‹ Away β€” Away from desk

🎯 Core Features

  • πŸ’¬ Custom Messages β€” Add personalized notes like "Back at 3pm" or "On lunch break"
  • ⏰ Auto-Reset Timer β€” Automatically revert to a chosen status after 5min-2hrs
  • πŸŒ“ Dark Mode β€” Easy on the eyes with automatic theme switching
  • ⌨️ Keyboard Shortcuts β€” Quick status changes with number keys (1-9)
  • πŸ“± Remote Control β€” Control from any device on your network
  • πŸ”„ Real-Time Sync β€” Status updates across all connected devices
  • πŸ’Ύ Persistent State β€” Status survives page refreshes and server restarts
  • πŸ–₯️ Fullscreen Mode β€” Perfect for dedicated displays

🎨 UI/UX

  • Beautiful gradient backgrounds for each status
  • Smooth transitions and animations
  • Responsive design (desktop, tablet, mobile)
  • Live clock and date display
  • Character counter for custom messages (60 char limit)
  • Emoji support 😊

πŸš€ Quick Start

Standalone Mode (No Server Required)

Perfect for single-device use with localStorage persistence.

# Just open the HTML file in your browser
open index.html

Server Mode (Multi-Device Sync)

Run a Node.js server to sync status across multiple devices.

# Start the server
node server.js

# Access from:
# - This machine: http://localhost:3000
# - Other devices: http://YOUR_IP:3000

The server will display your local IP address for remote access.

πŸ“‹ Requirements

  • Standalone Mode: Any modern web browser
  • Server Mode: Node.js (no additional dependencies required)

⌨️ Keyboard Shortcuts

Key Action
1-9 Set status (Available, Busy, Meeting, etc.)
F Toggle fullscreen
D Toggle dark mode
P Show/hide control panel

🎨 Customization

Adding New Statuses

Edit app.js and add to the STATUSES array:

{ 
  key: 'custom', 
  label: 'Custom Status', 
  icon: '🎯', 
  color: '--c-custom', 
  note: 'Your custom note', 
  key_num: '0' 
}

Then add the color variable in styles.css:

--c-custom: #your-color-hex;

Changing Colors

All status colors are defined as CSS variables in styles.css:

:root {
  --c-available: #1e9e5a;
  --c-busy: #e0792e;
  /* ... customize as needed */
}

πŸ—οΈ Architecture

Frontend (app.js)

  • Vanilla JavaScript (no frameworks)
  • localStorage for standalone persistence
  • 1.5s polling for server sync
  • CSS custom properties for dynamic theming

Backend (server.js)

  • Node.js HTTP server (zero dependencies)
  • REST API: GET/POST /api/status
  • CORS-enabled for network access
  • Persists to .status.json

API Endpoints

Get Status

GET /api/status
Response: {"status": "busy", "customMessage": "Back at 3pm"}

Update Status

POST /api/status
Body: {"status": "busy", "customMessage": "Back at 3pm"}
Response: {"status": "busy", "customMessage": "Back at 3pm"}

πŸ“ Project Structure

BusyBoard/
β”œβ”€β”€ index.html      # Main UI structure
β”œβ”€β”€ app.js          # Client-side logic
β”œβ”€β”€ server.js       # Node.js server (optional)
β”œβ”€β”€ styles.css      # Complete styling
β”œβ”€β”€ .status.json    # Persistent status (auto-generated)
└── README.md       # This file

πŸ”§ Configuration

Environment Variables (Server Mode)

PORT=3000 node server.js  # Change default port

localStorage Keys (Standalone Mode)

  • busyboard.status β€” Current status
  • busyboard.customMessage β€” Custom message text
  • busyboard.theme β€” Light/dark preference
  • busyboard.panelHidden β€” Panel visibility
  • busyboard.autoResetMinutes β€” Timer duration
  • busyboard.autoResetTarget β€” Target status
  • busyboard.autoResetAt β€” Scheduled reset timestamp

🎯 Use Cases

  • Office Doors β€” Display on a tablet outside your office
  • Meeting Rooms β€” Show room availability
  • Home Office β€” Let family know when you're busy
  • Co-working Spaces β€” Communicate availability to colleagues
  • Remote Teams β€” Share status with distributed team members

πŸ› οΈ Development

Running Locally

# Clone the repository
git clone https://github.com/yourusername/BusyBoard.git
cd BusyBoard

# Option 1: Open directly in browser
open index.html

# Option 2: Run with server
node server.js

Testing

  • Test standalone mode by opening index.html directly
  • Test server mode by running node server.js
  • Test remote access from another device on your network

πŸ“ License

MIT License β€” Feel free to use, modify, and distribute.

🀝 Contributing

Contributions are welcome! Feel free to:

  • Report bugs
  • Suggest new features
  • Submit pull requests
  • Improve documentation

πŸ™ Acknowledgments

Built with ❀️ for better office communication.


Made with Devin

About

🚦 Modern office door status display with remote control β€” Show your availability with style

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages