Proposal Management System - AI-powered proposal generation and management
Find a file
dependabot[bot] 5f495b8ef5
Bump actions/setup-node from 4 to 6 (#3)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 6.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4...v6)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-17 13:10:08 -04:00
.github Bump actions/setup-node from 4 to 6 (#3) 2026-05-17 13:10:08 -04:00
api Implement Phases 2-5: Frontend, AI/RAG, PDF Generation (#22) 2026-05-17 13:06:23 -04:00
infra Implement Phases 2-5: Frontend, AI/RAG, PDF Generation (#22) 2026-05-17 13:06:23 -04:00
lambdas Update boto3 requirement in /lambdas/library-ingest (#6) 2026-05-17 17:09:01 +00:00
mobile Initial scaffold: monorepo structure, CDK stacks, CI/CD, domain model 2026-05-16 18:40:46 -04:00
shared/api-contracts Initial scaffold: monorepo structure, CDK stacks, CI/CD, domain model 2026-05-16 18:40:46 -04:00
web Implement Phases 2-5: Frontend, AI/RAG, PDF Generation (#22) 2026-05-17 13:06:23 -04:00
.gitignore Implement Phases 2-5: Frontend, AI/RAG, PDF Generation (#22) 2026-05-17 13:06:23 -04:00
docker-compose.yml Implement Phases 2-5: Frontend, AI/RAG, PDF Generation (#22) 2026-05-17 13:06:23 -04:00
README.md Initial scaffold: monorepo structure, CDK stacks, CI/CD, domain model 2026-05-16 18:40:46 -04:00

Proposal Management System

AI-powered proposal generation and management system for Sea Haven Industries. Enables dispatchers to submit proposal requests, uses Bedrock RAG to auto-generate draft line items from historical data, and provides admins with a pricing/approval workspace with professional PDF output.

Architecture

Layer Technology
Backend API .NET 8 / ASP.NET Core on Lambda (Amazon.Lambda.AspNetCoreServer)
Database RDS PostgreSQL 15 + EF Core
Frontend Web React 19 + MUI v7 + TypeScript
Mobile React Native (iOS-first)
IaC CDK (TypeScript) - 3 stacks
AI/RAG Bedrock Knowledge Base + Claude (Bedrock Runtime)
PDF Processing Python 3.12 Lambdas
Auth Cognito User Pool + Google OAuth
Storage S3 (PDFs, attachments, library)
Notifications Slack Bot API

AWS Resources

  • Stack prefix: proposal-system-*
  • Account: 328440206208
  • Region: us-east-1
Resource Name
Lambda (.NET 8) proposal-system-api
API Gateway HTTP API proposal-system-gateway
RDS PostgreSQL proposal-system-db
S3 Buckets proposal-system-uploads, proposal-system-generated, proposal-system-library
Bedrock Knowledge Base proposal-system-kb
Lambda (Python) proposal-system-pdf-extract, proposal-system-pdf-generate, proposal-system-library-ingest
Cognito User Pool proposal-system-auth
CloudFront proposal-system-web
SQS Queue proposal-system-jobs + DLQ

Repository Structure

proposal-system/
├── infra/          # CDK app (TypeScript) - 3 stacks
├── api/            # .NET 8 Web API (Lambda-hosted)
├── web/            # React 19 + MUI frontend
├── mobile/         # React Native app (iOS)
├── lambdas/        # Python 3.12 processing functions
├── shared/         # Shared TypeScript types/contracts
└── .github/        # CI/CD workflows

Local Development

Prerequisites

  • .NET 8 SDK
  • Node.js 24
  • Python 3.12
  • AWS CDK CLI (npm install -g aws-cdk@2.253.1)

Backend API

cd api
dotnet restore
dotnet run --project src/ProposalSystem.Api

Web Frontend

cd web
npm install
npm run dev

Infrastructure

cd infra
npm install
npx cdk synth
npx cdk deploy --all

CI/CD

  • CI: Runs on pull requests to main (dotnet build/test, tsc, ruff, cdk synth)
  • Deploy: Runs on push to main (cdk deploy, frontend S3 sync, CloudFront invalidation)
  • OIDC Role: githubdeploy-proposal-system

Data Flow

  1. Dispatcher submits proposal request (web or mobile)
  2. API creates proposal record, publishes SQS message
  3. If vendor PDF attached: pdf-extract Lambda parses and structures data
  4. Suggestion engine queries Bedrock KB for similar proposals, generates line items via Claude
  5. Admin reviews/edits line items in workspace
  6. On approval: pdf-generate Lambda creates branded PDF
  7. On send: library-ingest Lambda adds to KB for future matching
  8. Slack notifications at key status transitions