ikramdeveloper

Ikramdeveloper

All Projects

Next.js, NestJS, GraphQL, MongoDB, AWS

GovDoc — AI Analysis for Government Contracts

A platform that automatically reads and extracts critical information from government contracts — surfacing contacts, financials, compliance requirements, and deadlines so teams can focus on winning work instead of reading documents.

GovDoc platform
The Problem

What needed to be solved

Government contracts are dense and time-consuming to review manually — critical contacts, budget figures, compliance requirements, and deadlines are buried across dozens of pages. Teams managing multiple active bids had no centralized system, and smaller businesses competing for government work couldn't afford a full-time contract analyst.

Engineering Thinking

Key Decisions & Challenges

1

Isolated Database and S3 Bucket per Tenant

Situation

Data separation and security were top requirements from the client — government contract data is sensitive and tenants cannot have any visibility into each other's data.

Options Considered

  • Shared database with tenant-scoped queries — simpler to manage, but a misconfigured filter could expose another company's data
  • Isolated database and S3 bucket per tenant — separation enforced at the infrastructure level, not just the application level

Decision

Each company gets its own MongoDB database and its own S3 bucket with controlled access permissions. Isolation is enforced at the infrastructure level, not just the application level.

2

AWS Lambda for AI Processing

Situation

The AI processing logic was written in Python, while the main backend is NestJS. Mixing languages in the same service would have made the codebase harder to maintain and deploy independently.

Options Considered

  • Embed Python processing inside the NestJS service — simpler call path, but forces two runtimes into one deployment
  • Deploy Python code as a standalone Lambda function exposed via API Gateway — keeps both codebases clean and independently deployable

Decision

The Python AI logic was deployed as a standalone Lambda function and exposed via API Gateway. The NestJS backend calls it as a regular API, keeping both services independently deployable.

What Was Built

Features

Document Analysis

Uploaded documents are automatically classified and analyzed. Paid users get a comprehensive breakdown covering every major dimension of the contract.

Contact Extraction

Every point of contact in a document is identified and pulled out — title, email, phone, agency affiliation, office address, and LinkedIn where available.

Financial Intelligence

Contract values, budget line items, and pricing terms are extracted and surfaced so users never miss a number buried in an appendix.

Compliance & Requirements Mapping

Key requirements, delivery schedules, mandatory certifications, and compliance standards are automatically identified.

Project & Deadline Management

Users group related documents into projects, set and track deadlines with timezone support, and monitor the status of active bids from a single dashboard.

AI-Generated Summaries

Every document gets a plain-English AI summary. Users can rate summaries and submit corrections, feeding directly into improving the AI over time.

Document Export

Processed documents are available for download via secure, time-limited links. Export history is tracked with file metadata.

Free-Tier Entry Point

Anyone can upload a single document and get a basic AI scan without creating an account, serving as the top of the conversion funnel.

Screenshots

In Action

Upload document

Upload document

Responsibility

My Role

I led a team of three engineers — contributing to development directly, reviewing pull requests, and owning the technical decisions throughout the project.

Stack

Tech Stack

Next.js NestJS TypeScript GraphQL MongoDB RabbitMQ AWS Cognito AWS S3 AWS SES AWS CloudFront
Result

Outcome

Delivered to the client.