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

  1. 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.

  2. 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.

  3. Data quality is a feature, not an afterthought — Real organisational data is messy. Building quality management into the core flow dramatically improves usability.

  4. People-centric design changes your perspective — Framing features around "a person's journey" instead of "a database record" led to better UX decisions naturally.

  5. 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
Share this project:

Updates