|
1 | | -# Electrochromic Glazing Control System for Trailer Lab |
| 1 | +<div align="center"> |
| 2 | + <h1>Glazing Control App</h1> |
| 3 | + <p><strong>A local-first control and scheduling system for the OSU Daylighting Innovation and Analysis Lab (DIAL) trailer.</strong></p> |
| 4 | +</div> |
2 | 5 |
|
3 | | -A local first control and scheduling system for 18 facade electrochromic panels and 2 skylights in the OSU Radiant Lab trailer. Goals include safe manual control, study friendly scheduling, live status, and reliable operation on a constrained trailer network. |
| 6 | + |
| 7 | +*A sleek interface for visualizing and controlling electrochromic panels and skylights.* |
4 | 8 |
|
5 | | -## Working Agreements |
| 9 | +## Overview |
6 | 10 |
|
7 | | -- Feature branches use `feature/<short-name>` |
8 | | -- PR required with at least one reviewer |
9 | | -- CI must be green before merge |
10 | | -- Respond to PR reviews within 24 hours |
| 11 | +The **Glazing Control App** is the custom software backbone for the **[Daylighting Innovation and Analysis Lab (DIAL)](https://www.clotildepierson.com/facilities/dial)** at Oregon State University. DIAL is an off-the-grid mobile university research facility designed to study the impact of daylighting on human health and productivity. |
11 | 12 |
|
12 | | -## Project Board |
| 13 | +This app provides researchers and facility managers with a local-first system to intuitively manage, schedule, and monitor the facility's Halio electrochromic glazing. |
13 | 14 |
|
14 | | -We use a board with columns Backlog → Ready → In Progress → Review → Done. |
| 15 | +**The Problem:** Architectural researchers in DIAL need a reliable, study-friendly way to control two symmetrical test rooms (each with 9 windows and 1 skylight) without relying on external internet connections, especially when the mobile lab is deployed in remote or off-grid locations. |
15 | 16 |
|
16 | | -## Communication |
| 17 | +**The Solution:** By combining live status monitoring with an automated scheduling engine, the local software system provides precise environmental control. |
17 | 18 |
|
18 | | -Primary: Discord private server channel Team 76 |
19 | | -Secondary: email to partner or instructor |
| 19 | +## Key Features |
20 | 20 |
|
21 | | -## Getting Started |
22 | | -An overview of the file structure: |
23 | | -- `docs/` for design notes and meeting minutes |
24 | | -- `sim/` for an API simulator used off site |
25 | | -- `web/` for the researcher UI (Contains a README specific to the web interface) |
26 | | -- `svc/` for the control service and queue (Contains a README specific to the backend service) |
| 21 | +- **Local-First Reliability:** Operates entirely on the local trailer network, provides responsiveness without depending on external internet access. |
| 22 | +- **Smart Scheduling Engine:** Create study-friendly, automated routines that adjust pane tinting based on time of day, minimizing manual intervention during research experiments. |
| 23 | +- **Live System Status:** Get real-time monitoring and visualization of all 18 Halio facade panels and 2 skylights from a single, unified dashboard. |
| 24 | +- **Sensor Integration Ready:** Built to analyze and manage DIAL's advanced setup of indoor and rooftop environmental sensors (including JETI spectroradiometers and EKO pyranometers). |
| 25 | +- **Safe Manual Override:** The safety-first manual override protocols allow the researchers to take direct control of individual panels. |
27 | 26 |
|
28 | | -## Watch for errors |
29 | | -Run the watcher from `root`, `svc`, or `web`: |
| 27 | + |
| 28 | +*DIAL's advanced sensor suite provides real-time environmental data to the control system.* |
30 | 29 |
|
31 | | -```bash |
32 | | -npm run watch |
33 | | -``` |
| 30 | +## How to Try It |
34 | 31 |
|
35 | | -Defaults by folder: |
36 | | -- root: backend + frontend (`both`) |
37 | | -- svc: backend only |
38 | | -- web: frontend only |
| 32 | +To run the local control service and researcher UI on your machine: |
39 | 33 |
|
40 | | -Override the target in any folder: |
| 34 | +**Prerequisites:** |
| 35 | +- [Node.js](https://nodejs.org/) (v18+) |
| 36 | +- [Docker](https://www.docker.com/) (for full stack environment, optional) |
41 | 37 |
|
42 | | -```bash |
43 | | -npm run watch -- backend |
44 | | -npm run watch -- frontend |
45 | | -npm run watch -- both |
46 | | -``` |
| 38 | +**Getting Started:** |
47 | 39 |
|
48 | | -## Acknowledgment |
| 40 | +1. **Clone the repository:** |
| 41 | + ```bash |
| 42 | + git clone https://github.com/OSU-Radiant-Lab/GlazingControlApp.git |
| 43 | + cd GlazingControlApp |
| 44 | + ``` |
49 | 45 |
|
50 | | -- Aidan Lusk <luskai@oregonstate.edu> |
51 | | -- Carlos Vasquez <vasqueca@oregonstate.edu> |
52 | | -- Ian McKee <mckeei@oregonstate.edu> |
53 | | -- Tyler Vincent <vincenty@oregonstate.edu> |
54 | | -- Alexander Ulbrich <alexander.ulbrich@oregonstate.edu> |
| 46 | +2. **Start the development servers:** |
| 47 | + Run the watcher from the root directory to spin up both the frontend UI and the backend control service: |
| 48 | + ```bash |
| 49 | + npm run watch -- both |
| 50 | + ``` |
| 51 | + *(To run separately, use `npm run watch -- frontend` or `npm run watch -- backend` on each).* |
55 | 52 |
|
56 | | -## License |
| 53 | +3. **Access the Application:** |
| 54 | + Open your browser and navigate to `http://localhost:3000` (or the port specified in your console output) to view the researcher UI. |
57 | 55 |
|
58 | | -GPL 3.0 License. See LICENSE. |
| 56 | +*Note: For real sensor deployment and site-specific facility notes, please refer to our [Setup Documentation](docs/real_sensor_setup.md).* |
| 57 | + |
| 58 | +## The Team |
| 59 | + |
| 60 | +This project was built by Team 76 for the OSU Radiant Lab. |
| 61 | + |
| 62 | +- **Aidan Lusk** - [luskai@oregonstate.edu](mailto:luskai@oregonstate.edu) |
| 63 | +- **Carlos Vasquez** - [vasqueca@oregonstate.edu](mailto:vasqueca@oregonstate.edu) |
| 64 | +- **Ian McKee** - [mckeei@oregonstate.edu](mailto:mckeei@oregonstate.edu) |
| 65 | +- **Tyler Vincent** - [vincenty@oregonstate.edu](mailto:vincenty@oregonstate.edu) |
| 66 | + |
| 67 | +**Feedback & Contributions:** |
| 68 | +Please open an issue on GitHub or reach out to the team directly via email. For internal team communication, refer to Discord channel Team 76. |
| 69 | + |
| 70 | +--- |
| 71 | +<div align="center"> |
| 72 | + <p>Licensed under the <a href="LICENSE">GPL 3.0 License</a>.</p> |
| 73 | +</div> |
0 commit comments