Team Workflow
We split the work across four members working in parallel:
| Member | Responsibility |
|---|---|
| Member 1 | CSV Upload & Data Ingestion |
| Member 2 | Timeline Slider & Org Chart |
| Member 3 | Role History & Person Journey |
| Member 4 | Data Quality & Storage Layer |
We established the shared data schema and storage utilities first (foundation layer), then each member built their feature area independently before integrating.
Challenges we ran into
1. Temporal Data Modelling
Representing "state at a point in time" from event-based data was the biggest conceptual challenge. To reconstruct $O(t)$, we replay all events $e$ where $e.\text{date} \leq t$, applying them in chronological order. Edge cases like overlapping assignments required careful resolution:
$$ \text{active}(r, p, t) = \exists\ a \in A : a.\text{role} = r \land a.\text{person} = p \land a.\text{start} \leq t \leq a.\text{end} $$
2. Connected Navigation
Linking role views and person views bidirectionally while keeping the UI intuitive required careful thought about data relationships and URL routing.
3. Data Validation Edge Cases
Handling overlapping date ranges, circular reporting lines (where $r_1 \to r_2 \to \ldots \to r_1$), and references to non-existent entities without crashing the import process.
4. Animation Performance
Smoothly animating org chart transitions as $t$ changes required optimising DOM updates and minimising tree re-renders.
5. Parallel Development Without a Database
Multiple team members reading/writing JSON files meant we needed clear contracts around file structure early on to avoid conflicts.
Accomplishments that we're proud of
The timeline slider — Dragging through time and watching the org chart restructure in real-time feels genuinely satisfying. It makes abstract change tangible.
Zero-setup architecture — Clone the repo, run one command, everything works. No
npm install, no Docker, no database. We proved you can build something powerful without heavy tooling.Connected views — Seamless navigation between role history and person journey makes the data feel alive rather than siloed.
Data quality system — Rather than rejecting bad data, we built a review workflow. Flagged records are categorised, resolvable inline, and tracked with a quality score $Q$.
Full feature delivery — We shipped upload, validation, org chart, timeline animation, role history, person journey, connected views, and data quality — all functional end-to-end within hackathon time.
What we learned
Temporal thinking is hard but rewarding — Building time-aware systems forces you to think differently. State is not a snapshot; it's a function $S(t)$ derived from a sequence of events.
Simple tech stacks enable speed — No framework setup, no dependency conflicts, no build pipeline debugging. Vanilla JS and PHP let us focus entirely on the product.
Data quality is a feature, not an afterthought — Real organisational data is messy. Building quality management into the core flow dramatically improves usability.
People-centric design changes your perspective — Framing features around "a person's journey" instead of "a database record" led to better UX decisions naturally.
Clear data contracts enable parallel work — Agreeing on JSON schemas upfront meant four people could build independently without stepping on each other.
What's next for Weave
| Priority | Feature | Description |
|---|---|---|
| 🔴 High | Database Integration | Migrate from JSON to PostgreSQL/MySQL for production-scale performance |
| 🔴 High | HRIS Integration | Connect to Workday, BambooHR, SAP SuccessFactors for automatic data flow |
| 🟡 Medium | Predictive Analytics | Use historical patterns to surface attrition risk and promotion velocity |
| 🟡 Medium | Team-level Analytics | Aggregate views: stability scores, growth rate $\frac{\Delta |
| 🟡 Medium | Comparison Mode | Side-by-side $O(t_1)$ vs $O(t_2)$ for restructuring impact assessment |
| 🟢 Future | Export & Reporting | PDF reports of role histories and person journeys |
| 🟢 Future | Access Controls | Role-based permissions for sensitive organisational data |
| 🟢 Future | Multi-tenancy | Support multiple organisations for SaaS deployment |
Growth Formula
If adopted, Weave's value compounds over time. The insight density $I$ grows with the length of the historical window:
$$ I \propto \log(1 + \Delta t) \cdot |E| $$
Where $\Delta t$ is the time span of data available and $|E|$ is the number of recorded events. The longer you use Weave, the more valuable it becomes.
Weave — Because every organisational change is someone's story.
Built With
- kiro




Log in or sign up for Devpost to join the conversation.