Personal Dashboard
A full-stack personal dashboard with a locally hosted AI assistant at the centre of it. The backend is FastAPI over MongoDB; the assistant runs through LangChain against Ollama, with per-user context and conversation history composed into every prompt so it carries state between sessions.
Overview
The point of this one was to own the whole stack rather than assemble it out of hosted services. Frontend and backend are separate applications, the database is local, and the model is local — the assistant keeps working with no network and no API key.
Implementation notes
- FastAPI backend with a versioned API surface covering accounts, notes, uploads, scraping and assistant messaging.
- LangChain prompt template composing the user's stored name, a free-text context field and the rolling conversation history before each turn, so the assistant is conditioned rather than stateless.
- MongoDB collections for users, conversations and notes; uploads served back through the API.
- React, Vite and Tailwind frontend with dedicated pages for the assistant, notes, files, scraper and profile.
What I learned
Building it made the boundary between 'personal tool' and 'application' obvious, mostly by crossing it badly — the authentication here is a direct credential comparison, which is fine for something running on my own machine and would be indefensible anywhere else. Later projects start from that distinction instead of discovering it.