forgeIDEA is a web application that helps users generate and manage ideas.
The project is divided into three main components:
- Genkit: The backend service responsible for AI-powered idea generation and processing.
- Socket.io: Handles real-time communication between the frontend and backend.
- Web: The frontend application built with Angular, providing the user interface for interacting with ForgeIDEA.
To get started with ForgeIDEA, refer to the README files within each component's directory:
To run the project using Docker, follow these steps:
-
Rename the Docker Compose template file: Rename
docker-compose_TEMPLATE.yml
todocker-compose.yml
. -
Configure environment variables: Open
docker-compose.yml
and replace the placeholder values for environment variables. This includes API keys (e.g.,GEMINI_API_KEY
,GROQ_API_KEY
), and any other configuration specific to your setup.services: genkit: environment: GEMINI_API_KEY: YOUR_GEMINI_API_KEY # Replace with your actual key GROQ_API_KEY: YOUR_GROQ_API_KEY # Replace with your actual key KEYCIPHER: YOUR_SECRET_KEY # Replace with your secret key # ... other environment variables # ... rest of the file
-
Build and run the services: Open your terminal, navigate to the project's root directory (where
docker-compose.yml
is located), and run the following command:docker-compose up -d
This command will build the Docker images for each service (if they haven't been built yet) and start the containers in detached mode (
-d
). -
Access the application: Once the containers are running, you should be able to access the forgeIDEA web application by navigating to
http://localhost
orhttp://localhost:80
in your web browser. The Genkit API will be available athttp://localhost:4001
and the Socket.io server athttp://localhost:3001
.
The latest feature includes the ability to configure an MCP server to query the flows. This allows you to use the project solely for the MCP server without the graphical interface. To do this, you only need to configure the .env
file and inject the following standard configuration into the client that will query the MCP server:
{
"mcpServers": {
"forgeidea_server": {
"command": "node",
"args": [
"/path/to/your/genkit/dist/mcp.js"
],
"env": {
"NODE_ENV": "production"
}
}
}
}
Note: Remember to replace "/path/to/your/genkit/dist/mcp.js"
with the actual path to the mcp.js
file in your environment.
We welcome contributions to forgeIDEA! Here's how you can help:
To contribute to forgeIDEA, you'll need to set up the development environment for the specific component(s) you wish to work on (Genkit, Socket.io, or Web).
-
Prerequisites:
- Ensure you have Git installed.
- Ensure you have Node.js and npm installed (for Genkit, Socket.io, and Web).
- Ensure you have Docker and Docker Compose installed if you plan to use them for development or testing.
-
Fork and Clone the Repository:
- Fork the main forgeIDEA repository to your GitHub account.
- Clone your forked repository to your local machine:
git clone https://github.com/YOUR_USERNAME/forgeidea.git cd forgeidea
-
Component-Specific Setup: Detailed instructions for setting up the development environment for each component can be found in their respective README files:
- Genkit: See genkit/README.md.
- Socket.io: See socket.io/README.md.
- Web (Angular): See web/README.md for instructions on setting up the Angular development environment. Typically, this involves navigating to the
web
directory and runningnpm install
.
It's important to run tests to ensure your changes don't break existing functionality.
- Genkit: Instructions for running tests can be found in genkit/README.md.
- Socket.io: Instructions for running tests can be found in socket.io/README.md.
- Web (Angular): Navigate to the
web
directory and runnpm test
to execute unit tests using Karma and Jasmine. For end-to-end tests, refer to the instructions in web/README.md.
Once you've made your changes and ensured all tests pass, you can submit a pull request:
-
Create a New Branch: Create a new branch for your feature or bug fix:
git checkout -b my-feature-branch
-
Commit Your Changes: Make your changes and commit them with clear and concise messages:
git add . git commit -m "feat: Add new feature X" # or "fix: Resolve bug Y" # or "docs: Update Z documentation"
We try to follow Conventional Commits specification.
-
Push to Your Fork: Push your changes to your forked repository:
git push origin my-feature-branch
-
Open a Pull Request: Go to the original forgeIDEA repository on GitHub and open a new pull request from your forked branch to the main development branch of the original repository.
-
Code Review: Your pull request will be reviewed by the maintainers. Be prepared to address any feedback or make further changes.
Thank you for contributing to forgeIDEA!