Skip to content

roychandensity/deskbeh

Repository files navigation

Desk Behavior Dashboard

Desk behavior classification tool built for Stripe's OWP building. Integrates with the Density API to fetch raw desk session data, then categorizes each desk into one of four behavioral types based on session duration and frequency patterns.

Desk Behavior Categories

Category Description
Not Used The desk recorded zero sessions during the selected period.
Pit Stop Quick, frequent visits — short average session duration (roughly 15–30 minutes). Indicates the desk is used briefly, e.g., for a quick task or drop-in.
In and Out Moderate use with multiple sessions per day — average session duration of 30–90 minutes with 2+ sessions. The occupant leaves and returns throughout the day.
Deep Focus Long, concentrated sessions — average duration exceeding 90 minutes. The desk is occupied for extended, uninterrupted work.

Building Context

  • Customer: Stripe
  • Building: OWP
  • Classifies desks by session duration and frequency across floors and neighborhoods within the building.

Tech Stack

Technology Version
Next.js 16.1.6
React 19.2.4
TypeScript 5.9.3
Recharts 3.7.0
date-fns
SWR
jose (JWT)
zod

Density API Endpoints

Method Endpoint Purpose
GET /v3/spaces?page_size=1000 Fetch all spaces and their hierarchy (floors, neighborhoods, desks).
POST /v3/analytics/sessions/raw Retrieve raw session data used to classify desk behavior.

Environment Variables

Variable Description
DENSITY_API_KEY Bearer token for authenticating with the Density API.
AUTH_SECRET Secret used for signing JWTs (session authentication via jose).
DASHBOARD_PASSWORD Password for logging into the dashboard.

Create a .env.local file in the project root and populate these variables before running the app. Do not commit this file.

Setup

npm install
npm run dev

Open http://localhost:3000.

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages