Skip to content

jbcupps/TechIntakePro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TechIntakePro - Technology Requisition Management System

A comprehensive technology requisition and assessment platform that streamlines technical intake processes with AI-powered analysis, automated workflows, and approval management.

Features

  • 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

Tech Stack

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

Prerequisites

  • Node.js 20+
  • Docker Desktop
  • PostgreSQL (or use Docker Compose)

Getting Started

1. Clone and Install

git clone <repository-url>
cd TechIntakePro
npm install

2. Environment Setup

Copy the example environment file and configure your variables:

cp env.example .env

Edit .env and configure required variables:

  • DATABASE_URL - PostgreSQL connection string
  • ANTHROPIC_API_KEY - Your Anthropic API key for AI features
  • SESSION_SECRET - Secret for session management
  • SENDGRID_API_KEY - For email notifications (optional)
  • AZURE_AD_* - Azure AD credentials for SSO (optional)

3. Database Setup

Using Docker Compose (recommended):

# Start PostgreSQL and application
npm run docker:dev

# Run database migrations
npm run db:migrate

Or with your own PostgreSQL:

# Run migrations
npm run db:migrate

# Or push schema directly (development)
npm run db:push

4. Development

# Start development server (without Docker)
npm run dev

# Or use Docker Compose
npm run docker:dev

The application will be available at http://localhost:5000

5. Building for Production

# Build the application
npm run build

# Start production server
npm run start

Available Scripts

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run start - Start production server
  • npm run check - Run TypeScript type checking
  • npm test - Run test suite
  • npm run lint - Run linting
  • npm run db:push - Push schema changes to database
  • npm run db:generate - Generate database migrations
  • npm run db:migrate - Run database migrations
  • npm run docker:dev - Start Docker Compose services
  • npm run docker:down - Stop Docker Compose services
  • npm run docker:logs - View Docker logs

Project Structure

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

Configuration

Database Configuration

The application uses PostgreSQL with Drizzle ORM. Configure your database connection in .env:

DATABASE_URL=postgresql://user:password@localhost:5432/techintakepro

AI Features

AI-powered document analysis requires an Anthropic API key:

ANTHROPIC_API_KEY=your-api-key-here
ENABLE_AI=true

Authentication

For Azure AD integration:

AZURE_AD_CLIENT_ID=your-client-id
AZURE_AD_CLIENT_SECRET=your-client-secret
AZURE_AD_TENANT_ID=your-tenant-id

Email Notifications

For email notifications via SendGrid:

SENDGRID_API_KEY=your-sendgrid-api-key
FROM_EMAIL=noreply@yourdomain.com
ENABLE_EMAIL_NOTIFICATIONS=true

API Documentation

For detailed API documentation, see API_DOCUMENTATION.md.

Development Tips

Hot Reloading

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

Database Changes

When modifying the database schema:

  1. Update shared/schema.ts
  2. Generate migration: npm run db:generate
  3. Apply migration: npm run db:migrate

Or for quick iteration in development:

npm run db:push

Docker Development

Docker 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:build

Troubleshooting

Database Connection Issues

If you encounter database connection issues:

  1. Verify DATABASE_URL is correctly set in .env
  2. Ensure PostgreSQL is running
  3. Check database credentials and permissions
  4. For Docker: ensure containers are healthy with docker ps

Port Conflicts

If port 5000 is already in use:

  1. Change PORT in .env
  2. Update the port mapping in docker-compose.yml if using Docker

Build Errors

For build errors:

  1. Clear build cache: rm -rf dist/
  2. Reinstall dependencies: rm -rf node_modules && npm install
  3. Check Node.js version (requires 20+)

License

MIT

Support

For issues and questions, please open an issue in the repository.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages