DEV Community

Tahrim Bilal
Tahrim Bilal

Posted on

Build a Visual Thinking Tool with React Flow, Node.js, and MongoDB โ€” MindMap

A minimal MERN stack mind mapping application to visually connect and organize ideas.
๐Ÿงช Try it live: Live Link!
๐Ÿ”— GitHub @Tahrim19

Login Page


โœจ What is MindMap?

MindMap is an interactive mind mapping tool built with React Flow, shadcn/ui, and Node.js. Users can add nodes, create relationships, and organize their ideas visually โ€” all while having their data saved securely to MongoDB.


๐Ÿ”ง Features at a Glance

  • ๐Ÿ” Authentication (Register/Login)
  • ๐Ÿง  Normal + Database Schema Nodes
  • ๐Ÿ”— Connect nodes with drag-and-drop edges
  • โœ๏ธ Edit node labels and custom schemas
  • ๐Ÿ“ Rename mind maps
  • ๐Ÿ’พ Save/load your maps from a dashboard
  • ๐ŸŒ Fully deployed frontend & backend

๐Ÿงฐ Tech Stack Breakdown

Layer Technology
Frontend React + TypeScript, TailwindCSS, React Flow, shadcn/ui
Backend Node.js, Express, JWT Auth
Database MongoDB Atlas
Deploy Vercel , Render

๐Ÿ“ธ Screenshots

Dashboard Screen

Nodes and Connection

Database Node Labels Update


๐Ÿš€ How I Built It

Hereโ€™s a quick look at how I put it all together:

1. React Flow + Custom Node Components

React Flow makes working with draggable and connected nodes simple. I also extended it with custom node types for database schemas.

const nodeTypes = {
  databaseSchema: CustomDatabaseSchemaNode,
};
Enter fullscreen mode Exit fullscreen mode

2. Authentication with JWT

Users register/login and receive a JWT stored in localStorage. This token is sent with all secure requests.

3. REST API with Express

Maps are saved via a RESTful API to MongoDB, with endpoints like:

GET /api/mindmaps/:id
PUT /api/mindmaps/:id
Enter fullscreen mode Exit fullscreen mode

4. UI with Tailwind + shadcn/ui

UI is built using shadcn/ui โ€” giving me elegant and composable components like Dialogs, Buttons, Inputs, etc., with almost zero boilerplate.


๐Ÿง‘โ€๐Ÿ’ป Want to Try it Yourself?

๐Ÿ”— GitHub Repo:

๐Ÿ‘‰ github.com/Tahrim19/mind-map

๐Ÿ›  Local Setup

git clone https://github.com/Tahrim19/mind-map.git
cd mind-map

# Start frontend
cd frontend
npm install
npm run dev

# Start backend
cd ../backend
npm install
node server.js
Enter fullscreen mode Exit fullscreen mode

๐Ÿ” Add a .env file for the backend:

PORT=5000
MONGO_URI=your_mongodb_atlas_url
JWT_SECRET=supersecretkey
Enter fullscreen mode Exit fullscreen mode

This is a great project if you want to learn:

  • How to work with React Flow
  • JWT-based auth systems
  • Creating custom node UIs
  • Combining frontend + backend in production-ready deployments

๐Ÿ’ก Drop a star โญ on the GitHub repo if this helped you or inspired your own visual thinking app!


Top comments (4)

Collapse
 
nevodavid profile image
Nevo David

pretty cool seeing someone put this together, makes me wanna organize my own ideas tbh - you think visual tools like this actually help with remembering stuff better or is it just for fun?

Collapse
 
tahrim_bilal profile image
Tahrim Bilal

Thanks! I actually built this as a fun side project to explore React Flow and learn more about Node.js. But I do believe visual tools genuinely help with memory and understanding. Thereโ€™s something about laying out ideas spatially โ€” especially when you can connect them โ€” that makes patterns easier to see and remember later.

Collapse
 
al-chris profile image
Chris

It looks pretty nice. I'm trying to test it out, I created an account but I don't get how it works. Mind explaining? to a user, not the technical aspects.

Collapse
 
tahrim_bilal profile image
Tahrim Bilal

Thanks for checking it out! ๐Ÿ˜Š Once you're logged in and on the dashboard, click โ€œCreate New Mindmapโ€ to get started. Youโ€™ll see a blank canvas and a toolbar at the top โ€” from there, you can add regular nodes or database nodes. Each node has dot - just drag from one of those to another node to create a connection. You can double-click any node to edit it, and you can also edit the mapโ€™s title directly at the top. When you're done, click โ€œSaveโ€ to store your progress. Let me know if anything feels unclear!