AIForge is a platform that facilitates the discovery and sharing of free and open-source AI tools contributed by the community. It includes features for tool submission, approval, and exploration.
AIForge, also known as "All In Open Source," is a platform designed to centralize AI tools, making it easy for users to discover and share open-source tools within the community. The platform includes a home page, an admin panel for tool approval, a tool submission page, and a tool display page.
-
Home Page:
- Overview of the platform's purpose.
- Welcome message and a brief description of the community.
- Display key metrics such as total tools available, total categories, and total user contributions.
-
Add Tool Page:
- Allows users to contribute their AI tools to the platform.
- Form for tool submission, including fields for tool icon, name, description, website link, and user email.
- Validation checks for input fields.
- Display of warnings for any incomplete or invalid information.
-
Admin Panel:
- A secure login system for administrators.
- Tool approval or rejection functionality.
- Display of tool submissions for review.
- Ability to refresh the admin panel.
-
Show Tool Card:
- Search functionality for tools based on name or keywords.
- Display of tool cards with information such as tool name, description, website link, and keywords.
Ensure you have the following installed:
- Python
- MongoDB
- Redis
- Streamlit
- TryCourier (for email notifications)
-
Clone the repository:
git clone https://github.com/your-username/AIForge.git
-
Install dependencies:
pip install -r requirements.txt
-
Configure the platform by updating the
config.ini
file with MongoDB and Redis connection details.
Run the following command to start the home page:
streamlit run home.py
Access the platform at http://localhost:8501.
Run the following command to start the add tool page:
streamlit run add_tool.py
Access the tool submission page at http://localhost:8501.
Run the following command to start the admin panel:
streamlit run adminpanel.py
Access the admin panel at http://localhost:8501.
Run the following command to start the show tool card page:
streamlit run show_tool.py
Access the tool card page at http://localhost:8501.
Ensure your project structure looks like this:
your_streamlit_app/
|-- streamlit_app.py
|-- config.ini
|-- requirements.txt
|-- Dockerfile
|-- app.yaml
|-- cloudbuild.yaml
Create a Dockerfile
in your project directory with the following content:
# Use an official Python runtime as a parent image
FROM python:3.9-slim
# Set the working directory to /app
WORKDIR /app
# Copy the current directory contents into the container at /app
COPY . /app
# Install any needed packages specified in requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
# Install Streamlit
RUN pip install --no-cache-dir streamlit
# Expose the port that Streamlit will run on
EXPOSE 8501
# Command to run the application
CMD ["streamlit", "run", "streamlit_app.py"]
Create an app.yaml
file in your project directory with the following content:
runtime: custom
env: flex
Create a cloudbuild.yaml
file in your project directory with the following content:
steps:
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', 'gcr.io/$PROJECT_ID/your-streamlit-app', '.']
images: ['gcr.io/$PROJECT_ID/your-streamlit-app']
Replace your-streamlit-app
with the desired name for your Docker image.
Run the following command to trigger Cloud Build for deploying your app:
gcloud builds submit --config cloudbuild.yaml
Once the deployment is successful, you can access your Streamlit app on Google App Engine using the URL provided in the deployment output.
Feel free to contribute to the project by following our contribution guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.