Thank you for your interest in contributing to PipeRAG! 🎉
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/PipeRAG.git - Create a branch:
git checkout -b feat/your-feature - Make your changes
- Run tests:
dotnet test - Commit:
git commit -m 'feat: description of your change' - Push:
git push origin feat/your-feature - Open a Pull Request
- .NET 10 SDK
- Node.js 22+
- Docker (for PostgreSQL + pgvector)
- Angular CLI (
npm install -g @angular/cli)
# Start database
docker compose up -d db
# Run API
cd src/PipeRAG.Api
dotnet ef database update
dotnet run
# Run frontend (separate terminal)
cd client
npm install
ng servePipeRAG/
├── src/
│ ├── PipeRAG.Api/ # ASP.NET Web API (controllers, middleware)
│ ├── PipeRAG.Core/ # Domain entities, interfaces, DTOs
│ └── PipeRAG.Infrastructure/ # EF Core, services, external integrations
├── client/ # Angular 21 SPA
├── tests/
│ └── PipeRAG.Tests/ # xUnit tests
├── docs/ # Architecture & feature docs
└── docker-compose.yml
We use Conventional Commits:
feat:— New featurefix:— Bug fixdocs:— Documentation changesrefactor:— Code refactoringtest:— Adding or updating testschore:— Build/tooling changes
- Write tests for new features (aim for >80% coverage)
- Run all tests before submitting:
dotnet test - Angular tests:
cd client && ng test
- Backend: Follow C# conventions, use Clean Architecture patterns
- Frontend: Angular 21 Signals, standalone components, Tailwind CSS (no plain SCSS)
- General: Keep PRs focused and under 150K diff characters
Open a Discussion or file an Issue.
Thank you for helping make RAG accessible to everyone! ❤️