Static site for status updates about the UCF instance of Materia.
This is a single-page static status site that provides real-time information about the Materia application's operational status. The site is compatible with GitHub Pages and requires no backend infrastructure.
- 🟢 Real-time status indicator for overall system health
- 📝 Maintenance and outage updates section (displayed only when needed)
- ❓ Frequently Asked Questions (FAQ) section
- 📱 Responsive design for mobile and desktop
- ⚡ Fast, lightweight, and self-contained
- 🎨 Clean, professional interface
This site is ready to be deployed to GitHub Pages:
- Go to your repository Settings
- Navigate to "Pages" in the left sidebar
- Under "Source", select the branch you want to deploy (e.g.,
main) - Select "/ (root)" as the folder
- Click "Save"
Your status page will be available at: https://ucfopen.github.io/materia-status/
The status page automatically loads data from status.json. To update the status:
- Edit
status.jsonwith your current status information - Commit and push the changes to GitHub
- The page will automatically load the new data (refreshes every 5 minutes, or on page reload)
Example status.json:
{
"overallStatus": "operational",
"statusMessage": "All services are running normally.",
"maintenanceUpdates": [],
"faq": [
{
"question": "What is Materia?",
"answer": "Materia is a learning tool creation platform used at UCF to create and deploy interactive learning widgets."
}
]
}If status.json is unavailable, the page uses default data embedded in index.html. You can modify the fallback statusData object in the <script> section:
let statusData = {
overallStatus: 'operational',
statusMessage: 'All services are running normally.',
maintenanceUpdates: [],
faq: [...]
};Required Fields:
-
overallStatus(string): Current system statusoperational- All systems running normally (green indicator)degraded- Some services experiencing issues (amber indicator)outage- Major service disruption (red indicator)maintenance- Scheduled maintenance in progress (blue indicator)
-
statusMessage(string): Brief description of the current status (displayed prominently below the status indicator) -
maintenanceUpdates(array): List of timestamped updates about maintenance or outages- Only displayed when the array is not empty
- Each update has:
date(string): Timestamp (e.g., "2025-12-01 20:00 UTC")message(string): Update message
-
faq(array): Frequently asked questions- Each FAQ item has:
question(string): The questionanswer(string): The answer
- Each FAQ item has:
{
"overallStatus": "maintenance",
"statusMessage": "Scheduled maintenance is currently in progress.",
"maintenanceUpdates": [
{
"date": "2025-12-01 20:30 UTC",
"message": "Maintenance is proceeding as planned. Services remain available but may experience brief interruptions."
},
{
"date": "2025-12-01 20:00 UTC",
"message": "Scheduled maintenance window: 8:00 PM to 11:00 PM UTC."
}
],
"faq": [
{
"question": "When will maintenance be complete?",
"answer": "Maintenance is expected to complete by 11:00 PM UTC."
}
]
}{
"overallStatus": "outage",
"statusMessage": "Materia is currently unavailable. Our team is actively working to restore service.",
"maintenanceUpdates": [
{
"date": "2025-12-01 15:30 UTC",
"message": "Update: We have identified the cause and are implementing a fix. Service should be restored within the hour."
},
{
"date": "2025-12-01 15:00 UTC",
"message": "Initial report: The application is currently unavailable. Our team is investigating."
}
],
"faq": [
{
"question": "How can I stay updated?",
"answer": "This page will be updated as we learn more. Please refresh periodically for the latest information."
}
]
}To test the site locally:
- Open
index.htmlin a web browser - Or use a simple HTTP server:
python3 -m http.server 8000
- Navigate to
http://localhost:8000
The status page uses color coding:
- 🟢 Green (#10b981) - Operational
- 🟡 Amber (#f59e0b) - Degraded/Warning
- 🔴 Red (#ef4444) - Outage/Critical
- 🔵 Blue (#3b82f6) - Maintenance/Info
All CSS is in styles.css for easy customization. Modify colors, fonts, or layout as needed.
See status-examples.json for complete examples of different status scenarios.
This project is licensed under the GNU Affero General Public License v3.0. See the LICENSE file for details.