Developer
Getting Started
Guide for the developers to get started and contribute into our platform
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
- Project Architecture
- Contribution Workflow
- Code Style Guidelines
- Testing
- Documentation
- Community Guidelines
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:
- Frontend: React/Next.js application for the user interface
- Node.js Backend: Handles API requests, authentication, and business logic
- Python Services: Three microservices for:
- Connectors: Handles data source connections
- Indexing: Manages document indexing and processing
- Query: Processes search and retrieval requests
Contribution Workflow
- Fork the repository to your GitHub account
- Clone your fork to your local machine
- Create a new branch for your feature or bug fix:
- Make your changes following our code style guidelines
- Test your changes thoroughly
- Commit your changes with meaningful commit messages:
- Push your branch to your GitHub fork:
- 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.