Transform client project submissions into structured GitHub issues and project workflows.
- Quick Start
- Project Overview
- Installation
- Usage Guide
- API Reference
- Testing
- Development
- Project Structure
Want to get started quickly? Here's the minimal setup:
# 1. Clone and enter the project
git clone https://github.com/0xjcf/client-intake-system
cd client-intake-system
# 2. Install dependencies
pnpm install
# 3. Create and configure your .env file
touch .env
# Add your GitHub PAT: GH_PAT=your_pat_here
# 4. Start the development server
pnpm dev
Your API will be running at http://localhost:3000
!
This system helps you automate your client onboarding process by:
-
Receiving Project Submissions
- Accepts structured JSON data via API
- Stores raw submissions for reference
- Validates input data
-
Generating Project Briefs
- Converts submissions to markdown
- Organizes information into clear sections
- Stores briefs in version control
-
Creating GitHub Issues
- Automatically generates issues from briefs
- Labels issues by project and type
- Prepares for project board integration
- Node.js 22 or later
- pnpm package manager
- GitHub account with PAT (Personal Access Token)
-
Clone the Repository
git clone https://github.com/0xjcf/client-intake-system cd client-intake-system
-
Install Dependencies
pnpm install
-
Configure Environment
# Create .env file touch .env # Add your GitHub PAT echo "GH_PAT=your_pat_here" >> .env
-
Build the Project
pnpm build
-
Start the Server
pnpm dev
-
Submit a Project Brief
curl -X POST http://localhost:3000/api/submit-intake \ -H "Content-Type: application/json" \ -d '{ "projectName": "My Project", "projectKey": "my-project", "projectDescription": "Description here", "targetAudience": "Target users", "keyFeatures": "Key features", "technicalRequirements": "Tech requirements", "timeline": "2 weeks", "budget": "$5000", "additionalNotes": "Additional info" }'
-
Check Generated Brief
cat project-briefs/my-project.md
-
Generate a Brief from JSON
# First, create your JSON file echo '{ "projectName": "CLI Test", "projectKey": "cli-test", "projectDescription": "Testing CLI" }' > intake-submissions/test.json # Generate the brief pnpm build node dist/scripts/generate-brief.js intake-submissions/test.json
-
Create GitHub Issues
pnpm create-issues
Accepts project intake data and generates a brief.
Request:
{
"projectName": "Example Project",
"projectKey": "example-project",
"projectDescription": "Project description",
"targetAudience": "Target users",
"keyFeatures": "Key features",
"technicalRequirements": "Tech requirements",
"timeline": "Timeline",
"budget": "Budget",
"additionalNotes": "Additional notes"
}
Response:
✅ Project brief generated!
-
Run Unit Tests
pnpm test
-
Watch Mode (Development)
pnpm test:watch
-
Generate Coverage Report
pnpm test:coverage
The project includes Docker-based testing for running tests in an isolated environment. This is useful for:
- Ensuring tests work in a clean environment
- Testing with different Node.js versions
- Verifying containerized deployment
To run tests in Docker:
pnpm test:docker
This will:
- Build a test container using
Dockerfile.test
- Mount necessary volumes for test data and coverage
- Run tests in an isolated environment
- Generate coverage reports in the
coverage
directory
The Docker test setup includes:
- Test-specific environment variables
- Pre-configured test directories
- Volume mounts for:
- Coverage reports
- Project briefs
- Local issues
client-intake-system/
├── src/ # Source code
│ ├── server.ts # Express API entrypoint
│ ├── scripts/ # Utility scripts
│ └── utils/ # Helper functions
├── project-briefs/ # Generated markdown briefs
├── intake-submissions/ # Raw JSON intake payloads
├── test/ # Test files
├── .github/workflows/ # GitHub Actions
│ └── ci.yml # CI/CD pipeline
├── Dockerfile # Production Dockerfile
├── Dockerfile.test # Testing Dockerfile
└── docker-compose.yml # Docker configuration
-
Adding New Features
# 1. Create feature branch git checkout -b feature/new-feature # 2. Make changes # 3. Run tests pnpm test # 4. Build and verify pnpm build
-
Debugging
# Start server with debug logs DEBUG=* pnpm dev
- GitHub Project Board Automation
- Enhanced Error Handling
- Webhook Support
- API Documentation
MIT © José Flores
github.com/0xjcf