Spaces:
Running
Running
| # Contributing to AI Client Acquisition System | |
| Welcome! This guide will help you get started as a contributor. | |
| ## Getting Started | |
| 1. **Clone the repo** | |
| ```bash | |
| git clone https://github.com/iDevBuddy/ai-client-acquisition.git | |
| cd ai-client-acquisition | |
| ``` | |
| 2. **Install dependencies** | |
| ```bash | |
| npm install | |
| cd src/profiling/python-service && pip install -r requirements.txt && cd ../../.. | |
| ``` | |
| 3. **Set up environment** | |
| ```bash | |
| cp .env.example .env | |
| # Fill in your API keys β ask @iDevBuddy for access | |
| ``` | |
| 4. **Set up database** | |
| - Create a Supabase project (free) | |
| - Run migration files from `supabase/migrations/` in order | |
| 5. **Start development** | |
| ```bash | |
| # Terminal 1: Trigger.dev tasks | |
| npm run trigger:dev | |
| # Terminal 2: Python AI service | |
| cd src/profiling/python-service && python main.py | |
| ``` | |
| ## Project Architecture | |
| ``` | |
| Phase 1: FINDING (current) | |
| Discovery β Scraping β Pain Detection β Email Finding β AI Profiling β Scoring β Slack | |
| Phase 2: OUTREACH (upcoming) | |
| Email sequences β LinkedIn messaging β Follow-ups β Reply handling | |
| ``` | |
| ## Code Conventions | |
| - **TypeScript** for orchestration, discovery, and integrations | |
| - **Python** for AI profiling service (FastAPI) | |
| - **Zod** for runtime validation | |
| - Use `logger` (pino) for all logging β no `console.log` | |
| - Every LLM call must have a `traceId` | |
| - Every external API call must go through `retry.ts` | |
| ## Branch Strategy | |
| ``` | |
| main β production-ready code | |
| develop β integration branch | |
| feature/* β new features | |
| fix/* β bug fixes | |
| ``` | |
| ## Pull Request Process | |
| 1. Create a feature branch: `git checkout -b feature/your-feature` | |
| 2. Make your changes | |
| 3. Test locally (see Testing section) | |
| 4. Push and create a PR against `develop` | |
| 5. Get at least 1 review before merging | |
| ## Security Rules | |
| β οΈ **NEVER commit API keys or secrets** | |
| - `.env` is in `.gitignore` β keep it that way | |
| - Use `.env.example` for templates (no real values) | |
| - If you accidentally commit a key, rotate it IMMEDIATELY | |
| ## Questions? | |
| Reach out to @iDevBuddy on GitHub or Slack. | |