jagnani73P.03
[the record]STATUS: NTU SINGAPORE — AUG 2026

Fren

HACKTHEMOUNTAINS 2020 · 4TH
privacy-first therapy journaling — therapists see the emotional picture, never the raw words
fig. 1 — the therapist sees the analysis, never the raw entryNLP · sentiment + TF-IDF

JOURNAL · private

🔒 encrypted to the client

THERAPIST · analysis

mood index
01THE PROBLEMopenness vs. privacy

Honest journaling needs total privacy — but a therapist still needs the emotional signal behind the writing.

Fren lets clients write diary entries freely, but therapists never see the raw notes. An NLP layer — sentiment analysis, TF-IDF word analysis, and a network graph of context-related terms — surfaces the emotional picture instead. Built at HackTheMountains 2020, where it placed Fourth.

02THE ARCHITECTUREMERN + a Flask ML service

A MERN stack logs timestamped entries through a Node/Express API on MongoDB, while a Flask microservice runs the Python ML pipeline (scikit-learn, spaCy, NLTK, TextBlob) — a multi-layer perceptron for sentiment, TF-IDF for keywords — so only the analysis ever crosses to the therapist.

01

WRITE

client journals privately

React · MongoDB

02

ANALYZE

sentiment + TF-IDF + term graph

Flask · scikit-learn

03

SURFACE

the emotional picture, not the text

spaCy · NLTK

04

REVIEW

therapist reads the analysis only

React

STACK — React · TypeScript · Node · Express · MongoDB · Flask · scikit-learn · spaCy
03WHAT I BUILTfrontend · both surfaces

I built the full React/TypeScript frontend — both the client journaling interface and the therapist analytics panel, where raw entries are deliberately never shown:

01

private journaling

free-form entries, encrypted to the client

02

sentiment gauge

MLP classifier surfaces mood over time

03

TF-IDF keywords

the themes behind the writing

04

therapist panel

analysis only — never the raw notes

04IN THE WILDplates 01–02 · the therapist view