A comprehensive technology requisition and assessment platform that streamlines technical intake processes with AI-powered analysis, automated workflows, and approval management.
- AI-Powered Assessment - Intelligent requirement analysis using Anthropic Claude
- Dynamic Form Generation - Adaptive intake forms based on request type
- Workflow Automation - Configurable approval chains with SLA tracking
- Real-time Analytics - Comprehensive dashboards and reporting
- Enterprise Security - Role-based access control with Azure AD integration
- Document Processing - Automated document analysis and information extraction
- Email Notifications - SendGrid integration for workflow notifications
Frontend:
- React 18 with TypeScript
- Tailwind CSS with Radix UI components
- TanStack Query for state management
- Wouter for routing
Backend:
- Node.js with Express.js
- TypeScript throughout
- Drizzle ORM with PostgreSQL
- Session-based authentication
- Azure AD integration
Infrastructure:
- Docker containerization
- PostgreSQL database
- Node.js 20+
- Docker Desktop
- PostgreSQL (or use Docker Compose)
git clone <repository-url>
cd TechIntakePro
npm installCopy the example environment file and configure your variables:
cp env.example .envEdit .env and configure required variables:
DATABASE_URL- PostgreSQL connection stringANTHROPIC_API_KEY- Your Anthropic API key for AI featuresSESSION_SECRET- Secret for session managementSENDGRID_API_KEY- For email notifications (optional)AZURE_AD_*- Azure AD credentials for SSO (optional)
Using Docker Compose (recommended):
# Start PostgreSQL and application
npm run docker:dev
# Run database migrations
npm run db:migrateOr with your own PostgreSQL:
# Run migrations
npm run db:migrate
# Or push schema directly (development)
npm run db:push# Start development server (without Docker)
npm run dev
# Or use Docker Compose
npm run docker:devThe application will be available at http://localhost:5000
# Build the application
npm run build
# Start production server
npm run startnpm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run check- Run TypeScript type checkingnpm test- Run test suitenpm run lint- Run lintingnpm run db:push- Push schema changes to databasenpm run db:generate- Generate database migrationsnpm run db:migrate- Run database migrationsnpm run docker:dev- Start Docker Compose servicesnpm run docker:down- Stop Docker Compose servicesnpm run docker:logs- View Docker logs
TechIntakePro/
├── client/ # React frontend application
│ ├── src/
│ │ ├── components/ # UI components
│ │ ├── pages/ # Page components
│ │ └── lib/ # Utilities and helpers
│ └── index.html
├── server/ # Express backend
│ ├── index.ts # Server entry point
│ ├── routes.ts # API routes
│ ├── db.ts # Database connection
│ └── storage.ts # File storage handling
├── shared/ # Shared types and schemas
│ └── schema.ts # Database schema
├── migrations/ # Database migrations
└── uploads/ # Uploaded documents
The application uses PostgreSQL with Drizzle ORM. Configure your database connection in .env:
DATABASE_URL=postgresql://user:password@localhost:5432/techintakeproAI-powered document analysis requires an Anthropic API key:
ANTHROPIC_API_KEY=your-api-key-here
ENABLE_AI=trueFor Azure AD integration:
AZURE_AD_CLIENT_ID=your-client-id
AZURE_AD_CLIENT_SECRET=your-client-secret
AZURE_AD_TENANT_ID=your-tenant-idFor email notifications via SendGrid:
SENDGRID_API_KEY=your-sendgrid-api-key
FROM_EMAIL=noreply@yourdomain.com
ENABLE_EMAIL_NOTIFICATIONS=trueFor detailed API documentation, see API_DOCUMENTATION.md.
The development server includes hot reloading for both frontend and backend:
- Frontend changes reload automatically via Vite
- Backend changes restart the server via tsx watch mode
When modifying the database schema:
- Update
shared/schema.ts - Generate migration:
npm run db:generate - Apply migration:
npm run db:migrate
Or for quick iteration in development:
npm run db:pushDocker Compose provides a complete development environment:
# Start services
npm run docker:dev
# View logs
npm run docker:logs
# Stop services
npm run docker:down
# Rebuild after dependency changes
npm run docker:buildIf you encounter database connection issues:
- Verify
DATABASE_URLis correctly set in.env - Ensure PostgreSQL is running
- Check database credentials and permissions
- For Docker: ensure containers are healthy with
docker ps
If port 5000 is already in use:
- Change
PORTin.env - Update the port mapping in
docker-compose.ymlif using Docker
For build errors:
- Clear build cache:
rm -rf dist/ - Reinstall dependencies:
rm -rf node_modules && npm install - Check Node.js version (requires 20+)
MIT
For issues and questions, please open an issue in the repository.