Welcome to NeuronGrow, an innovative, interactive web application that leverages AI to generate dynamic mind maps for any topic. With a sleek interface, dark/light theme support, and features like history saving, exporting, and undo functionality, NeuronGrow helps users visualize and explore ideas effortlessly.
NeuronGrow is a frontend web app built with HTML, CSS, and JavaScript, paired with a secure backend (Node.js/Express) for AI-powered subtopic generation. Users can input any topic, create a mind map with AI-generated subnodes, save their work, export it as a PDF or image, and undo changes. The app supports both light and dark themes for an optimal user experience.
- AI-Powered Mind Mapping: Generate subtopics for any node using a secure backend API (e.g., OpenAI integration).
- Dark/Light Theme: Toggle between light and dark themes for better visibility and user preference.
- Save History: Save and load mind map history locally using browser storage.
- Export Options: Export the mind map as a PDF or PNG image for sharing or documentation.
- Undo Support: Revert changes with an undo feature to maintain flexibility during mapping.
- Interactive Interface: Click any node to generate AI-powered subtopics, with smooth animations and connections.
- Node.js (for the backend, if used): Ensure Node.js (v14 or higher) is installed.
- Web Browser: Any modern browser (Chrome, Firefox, Safari, etc.) for the frontend.
-
Clone or download this repository to your local machine:
git clone https://github.com/makalin/NeuronGrow.git cd NeuronGrow -
Open the
index.htmlfile in a web browser or serve it locally using a simple HTTP server:- Using Python (if installed):
Then visit
python -m http.server 5500
http://localhost:5500in your browser. - Alternatively, use VS Code’s Live Server extension or any other local server.
- Using Python (if installed):
-
Navigate to the backend directory (create a
serverfolder if not already present):cd server -
Install Node.js dependencies:
npm init -y npm install express cors dotenv axios express-rate-limit jsonwebtoken
-
Create a
.envfile in theserverdirectory with the following:PORT=3000 JWT_SECRET=your-secure-jwt-secret OPENAI_API_KEY=your-openai-api-key -
Obtain an OpenAI API key from OpenAI and replace
your-openai-api-keyin the.envfile. -
Start the backend server:
node server.js
Ensure the server runs on
http://localhost:3000(or update the frontendfetchURL inindex.htmlif using a different port or domain).
- Open
index.htmlin a web browser. - Enter a topic (e.g., "Technology") in the input field and press Enter to generate an initial mind map.
- Click any node to generate AI-powered subtopics (requires the backend to be running).
- Use the control buttons to:
- Toggle between light and dark themes.
- Save the current mind map history.
- Load a previously saved mind map.
- Export the mind map as a PDF or PNG image.
- Undo recent changes.
- Interact with the mind map to explore and expand ideas dynamically.
- html2canvas (via CDN): For capturing the mind map as an image for export.
- jspdf (via CDN): For generating PDFs from the mind map.
- Express: Web framework for Node.js.
- Cors: Cross-Origin Resource Sharing middleware.
- Dotenv: Loads environment variables from
.env. - Axios: HTTP client for API requests (e.g., to OpenAI).
- Express-Rate-Limit: Limits request rates to prevent abuse.
- Jsonwebtoken: For secure JWT authentication.
- Ensure the backend API URL in
index.html(http://localhost:3000/api/subtopics) matches your backend server’s address. - Update the
.envfile with your JWT secret and OpenAI API key for secure backend operation.
We welcome contributions to NeuronGrow! Here’s how you can help:
- Fork the repository.
- Create a new branch for your feature or bug fix:
git checkout -b feature/your-feature-name
- Make your changes and commit them:
git commit -m "Add your commit message" - Push to the branch:
git push origin feature/your-feature-name
- Open a pull request on GitHub, describing your changes and their purpose.
This project is licensed under the MIT License - see the LICENSE file for details.
Feel free to open issues or reach out for collaboration on enhancing NeuronGrow!