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