Proposal Management System - AI-powered proposal generation and management
Find a file
Adam Moussa 04d28cd793 Scaffold React Native mobile project (Phase 6)
React Native CLI 0.79 with React 19, TypeScript, Metro monorepo config,
and React Native Paper + Navigation + Redux Toolkit + TanStack Query deps.
Native ios/ and android/ directories deferred to macOS environment.
2026-05-17 15:09:06 -04:00
.github Bump actions/setup-node from 4 to 6 (#3) 2026-05-17 13:10:08 -04:00
api Fix security gaps and improve code quality across API and Lambdas (#23) 2026-05-17 13:48:14 -04:00
infra Implement Phases 2-5: Frontend, AI/RAG, PDF Generation (#22) 2026-05-17 13:06:23 -04:00
lambdas Fix security gaps and improve code quality across API and Lambdas (#23) 2026-05-17 13:48:14 -04:00
mobile Scaffold React Native mobile project (Phase 6) 2026-05-17 15:09:06 -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 Scaffold React Native mobile project (Phase 6) 2026-05-17 15:09:06 -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