This visualization displays projects on a timeline with Sankey-style flow connections between them. Projects are positioned horizontally based on their start and end dates. Try it out on Observable.
- Timeline-based layout: Projects are positioned horizontally based on their start/end dates
- Animated connections: Hover over or click on a project to see its connections animate
- Intuitive data format: Projects and connections are structured in JSON
timeline-sankey.js: Main visualization codeproject-data.json: JSON file containing project dataindex.html: Web page layout
The visualization reads from a JSON file named project-data.json with the following structure:
{
"id": "project-1",
"name": "Project A",
"startDate": "2025-02-18",
"endDate": "2025-04-01",
"duration": "6 weeks",
"category": "M",
"phase": 1,
"description": "Text description",
"skills": ["Data Engineering", "ML", "Dashboard", "Database", "Cloud Architecture"]
},
{
"id": "project-2",
"name": "Project B",
"startDate": "2025-03-18",
"endDate": "2025-04-08",
"duration": "6.3 weeks",
"category": "M",
"phase": 1,
"description": "Text description",
"skills": ["Web Scraping"]
},id: Unique identifier for the projectname: Display namestartDate: Start date in YYYY-MM-DD formatendDate: End date in YYYY-MM-DD formatduration: Length of the project in weekscategory: "T-Shit size" assigned to the project on Confluencephase: Numeric value representing the number of project phasesdescription: Brief description pulled from the project "Goal" on Confluenceskills: Skills used to complete the project
source: ID of the source projecttarget: ID of the target projectvalue: Numeric value representing the strength of the connection
To run this visualization:
- Ensure all files are in the same directory
- Edit
project-data.jsonto include your project data - Start a local web server in this directory, for example:
npx http-server
- Open a browser and navigate to the local server address
- D3.js (version 6)
- Node.js (for web server)
This visualization is based on the Observable notebook "Sankey With Animated Gradients" by Jarrett Meyer, adapted to position projects on a timeline with an interactive information panel.