A collection of Datacore JSX scripts for Obsidian that visualize daily study progress.
GitHub-style contribution heatmap that visualizes daily task completion.
- Monthly calendar grid — days colored by completion ratio (green intensity scale)
- Cross-month streak counter — consecutive active days with a 🔥 badge
- Per-day stats — hover any cell to see
done/totaltasks and percentage - Clickable cells — opens the corresponding Daily Note
- Today highlight — current day ringed with a blue glow
- Theme-aware — uses Obsidian CSS variables
Color Scale:
| Level | Condition | Color |
|---|---|---|
| L0 | 0% done | --background-secondary |
| L1 | ≤ 25% | #0e6429 |
| L2 | ≤ 50% | #007d32 |
| L3 | < 100% | #26a641 |
| L4 | 100% | #36c353 |
Trend charts and analysis for mock test scores with built-in banking exam support.
- Checkbox-based exam selection — check one from each group: Exam / Role / Stage
- 12 predefined exams — SBI / IBPS / RRB × PO / Clerk × Pre / Mains
- Auto max-marks — max score determined from exam type (Pre: 100/80, Mains: 200)
- Interactive filter pills — filter by All, SBI, IBPS, or RRB (live re-render)
- SVG trend chart — score % and accuracy % plotted over time
- Weak-area frequency bars — most common weak areas ranked
- Recent results table — last 5 tests with clickable links to daily notes
-
Copy the script(s) into your vault (e.g. a
scripts/folder). Use files fromdist/for smaller size. -
Embed in any note:
```datacore view("scripts/study-heatmap") ```
```datacore view("scripts/score-tracker") ```
-
Configure the source folder — edit the
FOLDERconstant at the top of each script if needed:const FOLDER = "Daily Notes"; // ← change this
The included template.md provides a structured daily note with:
- Study task checkboxes (Mathematics, Reasoning, English, Current Affairs)
- Exam selection checkboxes (check one from each: Exam / Role / Stage)
- Score log inline fields (score, accuracy, weak areas)
- End-of-day reflection
| What | Where | Notes |
|---|---|---|
| Source folder | FOLDER constant |
Must match your Daily Notes folder |
| Heatmap colors | T object / LEVELS array in study-heatmap.js |
Swap hex values |
| Chart entries | MAX_ENTRIES in score-tracker.js |
Default 30 tests |
| Add new exams | EXAMS object in score-tracker.js |
Add { max, org } entry |
The scripts are written in Datacore JSX. To minify them for production (smaller size and better performance), use esbuild:
# Build score-tracker
bunx esbuild score-tracker.js --minify --outfile=dist/score-tracker.js --loader:.js=jsx
# Build study-heatmap
bunx esbuild study-heatmap.js --minify --outfile=dist/study-heatmap.js --loader:.js=jsxNote: The scripts use JSX pragmas (@jsx h) to ensure compatibility with Datacore's internal Preact instance.