Skip to main content

Contributing to PipesHub Workplace AI

Welcome to our open source project! We’re excited that you’re interested in contributing. This document provides guidelines and instructions to help you get started as a contributor.

💻 Developer Contribution Build

Table of Contents

Setting Up the Development Environment

System Dependencies

Linux

Mac

Windows

Application Dependencies

Starting Required Docker Containers

Redis:
Qdrant: (API Key must match with .env)
ETCD Server:
ArangoDB: (Password must match with .env)
MongoDB: (Password must match with .env MONGO URI)
Zookeeper:
Apache Kafka:

Starting Node.js Backend Service

Starting Python Backend Services

Setting Up Frontend

Then open your browser to the displayed URL (typically http://localhost:3000).

Project Architecture

Our project consists of three main components:
  1. Frontend: React/Next.js application for the user interface
  2. Node.js Backend: Handles API requests, authentication, and business logic
  3. Python Services: Three microservices for:
    • Connectors: Handles data source connections
    • Indexing: Manages document indexing and processing
    • Query: Processes search and retrieval requests

Contribution Workflow

  1. Fork the repository to your GitHub account
  2. Clone your fork to your local machine
  3. Create a new branch for your feature or bug fix:
  4. Make your changes following our code style guidelines
  5. Test your changes thoroughly
  6. Commit your changes with meaningful commit messages:
  7. Push your branch to your GitHub fork:
  8. Open a Pull Request against our main repository
    • Provide a clear description of the changes
    • Reference any related issues
    • Add screenshots if applicable

Code Style Guidelines

  • Python: Follow PEP 8 guidelines
  • JavaScript/TypeScript: Use ESLint with our project configuration
  • CSS/SCSS: Follow BEM naming convention
  • Commit Messages: Use the conventional commits format

Testing

  • Write unit tests for new features
  • Ensure all tests pass before submitting a PR
  • Include integration tests where appropriate
  • Document manual testing steps for complex features

Documentation

  • Update documentation for any new features or changes
  • Document APIs with appropriate comments and examples
  • Keep README and other guides up to date

Community Guidelines

  • Be respectful and inclusive in all interactions
  • Provide constructive feedback on pull requests
  • Help new contributors get started
  • Report any inappropriate behavior to the project maintainers

Thank you for contributing to our project! If you have any questions or need help, please open an issue or reach out to the maintainers.