Skip to content

Priyanshu1-62/ProposifyAI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

116 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ ProposifyAI

AI-powered RFP (Request For Proposal) management system designed to automate the entire lifecycle β€” from creation to evaluation.

πŸ”— Live App: https://www.proposifyai.online
πŸ”— ProposifyAI Server: https://github.com/Priyanshu1-62/ProposifyAI-Server


πŸ“Œ Overview

ProposifyAI is a backend-first, AI-integrated platform that automates:

  • RFP creation from natural language
  • Vendor management and communication
  • Email-based workflows (outbound + inbound)
  • Proposal evaluation using AI-driven scoring

The system is designed with deterministic pipelines, strict type safety, and fault-tolerant workflows to ensure reliability in real-world scenarios.


πŸ“Έ Screenshots



🧱 Architecture

Frontend

  • React + TypeScript
  • Redux Toolkit
  • Tailwind CSS

Backend

  • Node.js + Express (TypeScript)
  • Event-driven service pipelines

Database

  • PostgreSQL (relational, normalized, indexed)

External Services

  • Resend (Outbound Emailing)
  • Mailgun (Inbound Emailing)
  • LLM APIs (AI processing)

βš™οΈ Core Features

  • OAuth 2.0 authentication with JWT-based authorization
  • Stateful email workflows (outbound, inbound, webhook-driven)
  • Idempotent processing for emails and webhooks
  • AI-powered transformation of natural language into structured RFP data
  • Automated proposal evaluation using scoring criteria
  • Fully normalized and queryable data pipelines
  • Observability through request lifecycle tracking

πŸ”„ System Pipelines

The backend is structured into independently scalable pipelines:

  • Request Pipeline
    Processes natural language β†’ extracts β†’ validates β†’ normalizes β†’ stores RFP data

  • Outbound Pipeline
    Handles email dispatch to vendors

  • Webhook Pipeline
    Processes delivery and event updates (idempotent)

  • Inbound Pipeline
    Handles vendor responses via email

  • AI Pipeline
    Evaluates proposals using structured scoring criteria


🧠 AI Pipeline Design

  • Recursive processing:
    • Validation β†’ Coercion β†’ Normalization
  • Schema-driven outputs for deterministic behavior
  • Confidence scoring for each LLM response
  • Controlled prompt engineering with versioned contracts

πŸ“© Email Workflow

  • Normalized email event tracking
  • Terminal vs non-terminal state handling
  • Stable identifiers tied to request lifecycle
  • Signature verification (timestamp-tolerant)
  • Idempotent handling for retries and duplicates
  • Concurrent processing using Promise.all

πŸ—„οΈ Database Design

  • Fully normalized relational schema
  • Strong constraints and relationships
  • Indexed based on query patterns
  • Enum-based state enforcement for deterministic UI and pipelines
  • Single Source of Truth across all pipelines

πŸ” Authentication & Authorization

  • OAuth 2.0 (Google Sign-In)
  • JWT signature verification against client ID
  • Stateless short-lived access tokens
  • Stateful HTTP-only cookie-based refresh tokens

🧰 Tech Stack

  • HTML
  • TailwindCSS
  • JavaScript
  • React
  • TypeScript
  • Redux Toolkit
  • NodeJS
  • Express.js
  • PostgreSQL
  • Prisma
  • Supabase
  • Meta Llama
  • Resend
  • Mailgun
  • Vite
  • Vercel
  • Render

🚧 Current Status

  • Core backend pipelines implemented
  • AI evaluation system functional
  • Email workflows integrated
  • Frontend dashboard (in progress)

πŸ“Š Future Improvements

  • Complete dashboard UI
  • Add caching layer (Redis)
  • Improve AI confidence calibration
  • Rate limiting and abuse protection

⚑ Getting Started (Local Setup)

# Clone the repo
git clone https://github.com/Priyanshu1-62/ProposifyAI

# Install dependencies
# # For Client
cd ./client
npm install

# # For server
cd ./services/api
npm install

# Setup environment variables
# # /client/env
VITE_API_URL=<backend_URL>
VITE_GOOGLE_OAUTH_API_URL=<Google_OAuth_API_URL>

# # /services/api
PORT=5000
OPENAI_API_KEY=<Enter_your_API_KEY>
OPENROUTER_API_KEY=<Enter_your_API_KEY>
AI_MODEL_FREE_TIER=<Enter_your_URL>
RESEND_API_KEY=<Enter_your_API_KEY>
RESEND_WEBHOOK_SECRET=<Enter_your_SECRET>
RESEND_WEBHOOK_TOLERANCE_SECONDS=<Enter_your_LIMIT>
BREVO_API_KEY=<Enter_your_API_KEY>
MAILGUN_API_KEY=<Enter_your_API_KEY>
MAILGUN_WEBHOOK_TOLERANCE_SECONDS=<Enter_your_LIMIT>
DATABASE_URL=<Enter_your_URL>
GOOGLE_CLIENT_ID=<Enter_your_ID>
GOOGLE_CLIENT_SECRET=<Enter_your_SECRET>
GOOGLE_REDIRECT_URI=<Enter_your_URL>
GOOGLE_TOKEN_ENDPOINT=<Enter_your_ENDPOINT>
GOOGLE_AUTHORIZATION_URL_BASE=<Enter_your_URL>
FRONTEND_HOME_URL=<Enter_your_URL>
FRONTEND_AUTH_URL=<Enter_your_URL>
JWT_ACCESS_TOKEN_SECRET=<Enter_your_SECRET>
ENVIRONMENT=<DEV / PROD>

# Run backend
cd ./services/api
npm run dev

# Run frontend
cd ./client
npm run dev

Releases

No releases published

Packages

 
 
 

Contributors