Skip to main content
Projects

Juris AI

An AI assistant that analyzes legal contracts and helps you negotiate them.

Status
Live
Role
Full Stack Developer
Team
Solo
Timeline
1 week
Juris AI screenshot

The problem

Legal contracts are dense and hard to understand and negotiate.

Who it is for

Users who need to understand a contract. It does not replace professional legal advice.

What I built

A legal assistant that summarizes contracts, highlights key clauses, and suggests negotiation points using Gemini. Files are processed in memory and the extracted text lives briefly in Redis with a TTL, so nothing is stored permanently. Next.js frontend, Express backend, Google OAuth and email/password sign-in.

Built with

Frontend
  • Next.js (App Router)
  • Tailwind CSS
Backend
  • TypeScript
  • Node.js
  • Express
AI
  • Google Gemini
Auth
  • Passport.js
  • Google OAuth 2.0
  • Email/password
Data & Files
  • Redis (TTL cache)
  • PDF parsing
  • DOCX parsing

In detail

Note

Privacy first

All uploaded documents are processed ephemerally and are never permanently stored. Files live in memory only for the duration of analysis.

Key features

AI-powered contract summaries

Turns dense legal clauses into plain summaries.

Key clause and term highlighting

Finds important legal terms and sections in a contract.

Negotiation insights

Suggests points users can raise to improve their negotiating position.

Privacy-first processing

Files are processed in memory and discarded after analysis. Nothing is written to disk.

Temporary data storage with TTL

Extracted text is cached briefly in Redis with a short TTL and deleted once processing finishes.

Authentication

Google OAuth 2.0 and email/password sign-in through Passport.js.

Data flow & privacy model

  1. Authentication

    User logs in with Google OAuth or email/password.

  2. File upload

    User uploads a legal contract (PDF or DOCX) through the frontend.

  3. Text extraction & temporary storage

    Backend extracts raw text from the document. Text is stored temporarily in Redis with a short TTL; the original file is immediately discarded.

  4. AI analysis

    Extracted text is sent to the Gemini API for summarization and insights.

  5. Result delivery

    AI-generated summaries, highlighted clauses, and negotiation insights are returned to the user dashboard.

  6. Automatic data deletion

    Redis entries are deleted immediately after successful processing.

Decision

Ephemeral by design

Documents are never persisted. File handling stays in memory and Redis with a TTL is the only intermediate store, so there is no stored set of user contracts to secure, leak, or subpoena.

Outcome

Juris AI analyzes contracts without storing them. Files are handled in memory, extracted text lives briefly in Redis, and the model returns structured summaries, highlighted clauses, and negotiation insights.

Challenges

  • Secure in-memory file processing
  • Reliable contract summarization
  • Ephemeral data handling with Redis

What I learned

  • AI-driven document analysis
  • Privacy-first system design
  • File parsing and text extraction pipelines

Have a role in mind?

Send me a message on X with the role and a link to the posting. My resume has the rest.