A WordPress plugin that displays real-time library occupancy data for Columbia University libraries, providing students and staff with up-to-date information about library capacity.
Watch the full demonstration: https://youtu.be/4l-oOLacSHw
Columbia University Libraries uses WiFi connection data to estimate library occupancy levels. However, the main website displaying this information is frequently under maintenance, leaving students without access to crucial capacity information.
Our Solution: A WordPress plugin that bridges the gap between technical flexibility and ease of use.
- Reliability: Provide continuous access to library occupancy data even when the main website is under repair
- Accessibility: Enable non-technical library staff to manage content and notices without engineering support
- Real-time Updates: Display library capacity information with higher frequency and accuracy
- User Empowerment: Give librarians direct control over their web presence while maintaining technical sophistication
- Seamless Integration: Work within WordPress ecosystem for easy deployment and maintenance
This plugin balances technical capabilities with user-friendly management, ensuring students always have access to library occupancy information when they need it most.
- Real-time library occupancy tracking
- Visual occupancy indicators
- Admin dashboard for managing settings
- Customizable display options
- WordPress block integration
- Mock Flask server for testing
- Local WP - WordPress development environment
- Python 3.x
- pip (Python package manager)
Note: You only need to use app.py, CUStudySeat.zip, and library-occupancy.zip. The assets folder contains working code files for reference.
-
Install required Python packages:
pip install flask-cors flask
-
(Mac & Linux only) Create and activate virtual environment:
python -m venv venv source venv/bin/activate -
(Windows) Create and activate virtual environment:
python -m venv venv .\venv\Scripts\Activate.ps1
- Navigate to the folder containing
app.py - Run the mock Flask server:
python app.py # or python3 app.py
- Download and install Local WP
- Import
CUStudySeat.zipinto Local WP (this imports the WordPress website) - Start the imported website in Local WP
- Install the
library-occupancy.zipplugin through the WordPress admin panel or by extracting it to the plugins directory
- Log in to WordPress admin (see credentials below)
- Navigate to Plugins and activate "Library Occupancy"
- Configure settings through the admin dashboard
- Add the Library Occupancy block to your desired pages
Username: user
Password: Temp1232
⚠️ Security Note: Change these credentials in a production environment!
CU-at-Lib/
├── app.py # Flask mock server for testing
├── README.md # Project documentation
├── CUStudySeat.zip # Complete WordPress site (import to Local WP)
├── library-occupancy.zip # Plugin package (import to WordPress)
├── assets/ # Source code files
│ └── library-occupancy/
│ ├── block.json # Block configuration
│ ├── library-occupancy.php # Main plugin file
│ ├── admin/ # Admin interface
│ │ ├── admin.php
│ │ ├── css/
│ │ │ └── admin-style.css
│ │ └── views/
│ │ ├── dashboard.php
│ │ └── settings.php
│ ├── includes/ # Core functions
│ │ └── functions.php
│ └── public/ # Frontend assets
│ ├── css/
│ │ └── block-style.css
│ └── js/
│ ├── block.js
│ ├── detailed-block.js
│ └── frontend.js
└── images/ # Demo screenshots and assets
| File/Folder | Description |
|---|---|
CUStudySeat.zip |
Complete WordPress site package for import into Local WP |
library-occupancy.zip |
Current working version of the plugin for WordPress installation |
app.py |
Flask server providing mock library occupancy data |
assets/ |
Source code for the library-occupancy plugin |
images/ |
Demo GIFs and screenshots |
This project was built using the following resources:
- WordPress.tv - Official WordPress tutorials
- WordPress Plugin Development Tutorial
- WordPress Block Development
Contributions are welcome! Please feel free to submit a Pull Request.
This project is part of Columbia University's initiative to improve library services.
For questions or issues, please open an issue in this repository.
Made with ❤️ for Columbia University Libraries

