Skip to content

RanitDERIA/tata-rfp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

10 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

GitHub repo size GitHub stars GitHub forks

Twitter Follow LinkedIn



AutoRFP - AI-Powered RFP Response Platform

AutoRFP is an intelligent platform that automates RFP (Request for Proposal) response generation using advanced AI. Built with Next.js 15 and powered by LlamaIndex, it helps organizations respond to RFPs 80% faster by automatically extracting questions from documents and generating contextual responses based on your knowledge base.


AutoRFP Demo Screenshot

Screenshot 1 Screenshot 2 Screenshot 3 Screenshot 4 Screenshot 5

Table of Contents

Prerequisites:

Before setting up AutoRFP, ensure you have the following installed and configured:

Technologies and Services Utilized:

  • Framework: Next.js Next.js 15
  • UI Library: React.js React 19
  • Programming Language: TypeScript TypeScript
  • Styling: Tailwind Tailwind CSS & Radix UI Radix UI
  • Database & ORM: PostgreSQL PostgreSQL & Prisma Prisma
  • Authentication: Supabase Supabase Auth
  • AI & ML: OpenAI OpenAI GPT-4o & LlamaIndex
  • Cloud Indexing: LlamaCloud LlamaCloud
  • Package Manager: pnpm pnpm

Features:

  • πŸ€– AI-Powered Document Processing: Automatically extract questions and generate contextual responses.
  • πŸ“„ Multi-Format Support: Understands Word, PDF, Excel, and PowerPoint files.
  • 🏒 Multi-Tenant Architecture: Full support for multiple organizations with role-based access control.
  • 🀝 Team Collaboration: Invite team members with different permission levels (owner, admin, member).
  • πŸ“‚ Project Organization: Organize RFPs into distinct projects for better management.
  • ☁️ LlamaCloud Integration: Connect seamlessly to LlamaCloud for powerful document indexing.
  • πŸ” Advanced Search & Indexing: Work with multiple document indexes and track sources in responses.
  • πŸ’¬ Interactive AI Chat: A modern, chat-style interface for generating and refining responses.
  • ✍️ Response Editing: Easily edit and refine AI-generated responses before finalizing.
  • πŸ” Secure Authentication: Magic Link authentication handled by Supabase Auth.

Run Locally:

To run AutoRFP on your local machine, follow the steps below:

  1. Clone the Repository:

    git clone https://github.com/RanitDERIA/tata-rfp.git
  2. Install Dependencies:

    pnpm install
  3. Environment Setup: Create a .env.local file in the root directory and add your configuration:

    # Database
    DATABASE_URL="postgresql://username:password@localhost:5432/auto_rfp"
    DIRECT_URL="postgresql://username:password@localhost:5432/auto_rfp"
    
    # Supabase Configuration
    NEXT_PUBLIC_SUPABASE_URL="your-supabase-project-url"
    NEXT_PUBLIC_SUPABASE_ANON_KEY="your-supabase-anon-key"
    
    # OpenAI API
    OPENAI_API_KEY="your-openai-api-key"
    
    # LlamaCloud
    LLAMACLOUD_API_KEY="your-llamacloud-api-key"
    
    # App Configuration
    NEXT_PUBLIC_APP_URL="http://localhost:3000"
  4. Database Setup: Set up your local PostgreSQL database and run migrations.

    # Create the database using psql or your preferred tool
    psql -c "CREATE DATABASE auto_rfp;"
    
    # Generate Prisma client
    pnpm prisma generate
    
    # Run migrations
    pnpm prisma migrate deploy
  5. Configure Services:

    • Supabase: Create a project and get your URL and Anon Key. Configure authentication providers and email templates.
    • OpenAI: Generate an API key and add credits to your account.
    • LlamaCloud (Optional): Create a project and generate an API key.
  6. Start the Development Server:

    pnpm dev
  7. Open Your Browser: Navigate to http://localhost:3000 to see the application running.

Deployment:

The application is optimized for deployment on Vercel, but can be deployed to any platform that supports Node.js.

Deploy to Vercel:

  1. Push your code to a GitHub repository.
  2. Connect your repository to Vercel.
  3. Configure the production environment variables in the Vercel project dashboard.
  4. Deploy! Vercel will automatically build and deploy your application.

Other Deployment Options:

  • Railway
  • Heroku
  • Digital Ocean App Platform
  • AWS Amplify
  • Google Cloud Run

API Endpoints:

The application exposes several API endpoints for core functionalities:

  • POST /api/organizations: Create a new organization.
  • POST /api/projects: Create a new project.
  • POST /api/extract-questions: Extract questions from uploaded documents.
  • POST /api/generate-response: Generate AI-powered responses.
  • GET /api/llamacloud/projects: Get available LlamaCloud projects.
  • POST /api/llamacloud/connect: Connect an organization to a LlamaCloud project.

Troubleshooting:

  • Database Connection Issues: Ensure your DATABASE_URL is correct. You can test the connection with pnpm prisma db pull.
  • Authentication Issues: Double-check your Supabase URL and keys. Ensure redirect URLs are correctly configured in your Supabase project settings.
  • AI Processing Issues: Verify your OpenAI API key has credits. Check your LlamaCloud API key if document indexing fails.
  • Environment Variables: Make sure all required variables are set in your .env.local file or your deployment platform's settings.

Project Structure:

auto_rfp/
β”œβ”€β”€ app/                          # Next.js 15 App Router
β”‚   β”œβ”€β”€ api/                      # API routes
β”‚   β”‚   β”œβ”€β”€ extract-questions/    # Question extraction endpoint
β”‚   β”‚   β”œβ”€β”€ generate-response/    # Response generation endpoint
β”‚   β”‚   β”œβ”€β”€ llamacloud/          # LlamaCloud integration APIs
β”‚   β”‚   β”œβ”€β”€ organizations/       # Organization management APIs
β”‚   β”‚   └── projects/            # Project management APIs
β”‚   β”œβ”€β”€ auth/                    # Authentication pages
β”‚   β”œβ”€β”€ login/                   # Login flow
β”‚   β”œβ”€β”€ organizations/           # Organization management pages
β”‚   β”œβ”€β”€ projects/                # Project management pages
β”‚   └── upload/                  # Document upload page
β”œβ”€β”€ components/                  # Reusable React components
β”‚   β”œβ”€β”€ organizations/           # Organization-specific components
β”‚   β”œβ”€β”€ projects/               # Project-specific components
β”‚   β”œβ”€β”€ ui/                     # UI component library (shadcn/ui)
β”‚   └── upload/                 # Upload-related components
β”œβ”€β”€ lib/                        # Core libraries and utilities
β”‚   β”œβ”€β”€ services/               # Business logic services
β”‚   β”œβ”€β”€ interfaces/             # TypeScript interfaces
β”‚   β”œβ”€β”€ validators/             # Zod validation schemas
β”‚   β”œβ”€β”€ utils/                  # Utility functions
β”‚   └── errors/                 # Error handling
β”œβ”€β”€ prisma/                     # Database schema and migrations
β”œβ”€β”€ types/                      # TypeScript type definitions
└── providers/                  # React context providers

Sample Data:

You can test the platform's core features using our sample RFP document. Upload the file to see how questions are automatically extracted. The resultant Excel file shows an example of the structured output the application generates.

🧾 Sample RFP Document: πŸ“₯ Download Sample RFP

πŸ“Š Resultant Excel File: πŸ“₯ Download Resultant Excel File

License:

This project is licensed under the MIT License - see the LICENSE file for details.

Contact:

If you want to get in touch or have any questions regarding this project, feel free to reach out:

πŸ“§ Email: bytebardderia@gmail.com πŸ’Ό LinkedIn: Ranit Deria 🐦 Twitter: @DeriaRanit πŸ’» GitHub: @RanitDERIA

For any inquiries, suggestions, or bug reports, you can also:

  • πŸ› Open an issue on GitHub
  • πŸ’¬ Start a discussion in the repository
  • πŸ“© Send a direct message via social media

⭐ Star this repository if you find it helpful!

Made with ❀️ by Ranit Deria

About

AI-powered RFP response platform that automates proposal generation using LlamaIndex and GPT-4. Extract questions from documents and generate contextual responses 80% faster with intelligent document indexing and team collaboration.

Topics

Resources

Contributing

Stars

Watchers

Forks

Contributors

Languages