Invox is an AI-powered invoice management and document automation platform designed to convert unstructured invoices into structured, searchable, and actionable financial data. Instead of treating an invoice as just a PDF, image, email attachment, or scanned document, Invox automatically extracts important information, stores it in a structured database, and provides workflows for monitoring, reviewing, approving, and analyzing invoices. It combines document processing, AI-powered extraction, email automation, analytics, and natural-language querying into a single platform aimed at reducing repetitive financial paperwork.
Invoice processing is often a surprisingly manual workflow. Someone has to collect invoices from emails or uploads, open each document, identify fields such as vendor name, invoice number, dates, line items, taxes, and total amount, enter that information into another system, check whether the invoice has already been processed, and then track its payment or approval status. As the number of documents increases, this process becomes time-consuming and error-prone. Invox attempts to automate that pipeline by automatically importing invoices, extracting their contents using AI, preventing duplicate records, storing structured invoice information, and providing a centralized dashboard for managing the complete invoice lifecycle.
Users can import invoices through direct document uploads or email integrations and process formats such as PDFs and images, including scanned and handwritten documents. Google Gemini is used to identify important invoice fields such as vendor details, dates, amounts, and individual items. Once processed, invoices can be viewed through a dashboard, filtered by status and date, updated, approved, and exported as JSON or CSV. Invox also includes automated Gmail polling, where the backend periodically checks for new invoice-related emails and processes them without requiring manual uploads. A multi-layer duplicate-detection mechanism attempts to prevent the same invoice from being processed repeatedly by comparing email history, invoice metadata, filenames, vendor information, dates, and amounts. The platform also includes a RAG-based conversational interface that allows users to ask questions about their invoices in natural language, combining structured SQL-style analytics with AI-powered retrieval for queries such as finding pending invoices, searching purchases, or calculating outstanding amounts.
Frontend: Next.js 15 using the App Router with TypeScript, Tailwind CSS, Radix UI and shadcn/ui for interface components. GSAP and Framer Motion are used for animations and interactive UI elements, while Axios handles communication with backend services. Authentication is implemented using NextAuth.js and Google OAuth.
Backend: Python 3.13 with FastAPI and Uvicorn, following a modular architecture containing API endpoints, service layers, database models, background workers, and authentication utilities.
Database: PostgreSQL with Neon as the hosted database, SQLAlchemy as the ORM, and Alembic for schema migrations.
AI: Google Gemini is used for intelligent document extraction, handwriting recognition, validation, and conversational functionality.
Email Automation: Gmail API with OAuth is used for automatic invoice ingestion, with IMAP available as a fallback for other email providers.
Infrastructure and Deployment: Vercel hosts the frontend, while the backend is designed for deployment on platforms such as Railway or Render. The system also supports Docker-based deployment.
Invox follows a separated frontend-backend architecture. The user interacts with a Next.js application responsible for authentication, dashboards, invoice management, and the conversational interface. API requests are sent to a FastAPI backend, where invoice-processing services, authentication logic, AI extraction, database operations, and background workers are handled. Uploaded documents are passed through the backend to Google Gemini for information extraction before the resulting structured data is stored in PostgreSQL through SQLAlchemy. A separate background email worker periodically monitors connected inboxes, identifies potential invoice attachments, checks whether they have already been processed, and sends new documents through the same processing pipeline.
At a high level, the flow can be represented as: Document / Gmail → FastAPI → Duplicate Detection → Gemini AI Extraction → Validation → PostgreSQL → Dashboard / Analytics / RAG Chat.
The motivation behind Invox was to explore how modern AI could be applied to a workflow that still contains a large amount of repetitive manual work. Invoices are an interesting example because they arrive in many different formats and channels but eventually need to be converted into essentially the same structured information. Instead of building another standalone OCR demo, the goal was to build the surrounding workflow as well: document ingestion, email automation, AI-based extraction, persistent storage, duplicate prevention, invoice status management, analytics, export functionality, and eventually a conversational interface for interacting with the resulting data. This made Invox an opportunity to work on a complete AI-enabled automation pipeline rather than using an LLM as an isolated feature.
Invox was built during CodeUtsava 9.0, the national-level hackathon organized by the Turing Club of Programmers at NIT Raipur. Competing as Team Vibe Coders against more than 40 teams and 150+ participants, we secured the Runner-Up position and won the second prize of ₹30,000.
The project was developed under the intense constraints of a 28-hour hackathon, during which our four-member team designed and implemented an AI-powered Smart Invoice Management platform capable of extracting structured information from invoices, automating invoice ingestion, detecting duplicates, managing approval workflows, and providing analytics and intelligent querying over financial data.
Finishing as runners-up provided strong external validation of both the technical implementation and the practical relevance of the problem we were solving.