Skip to content

Commit 025212d

Browse files
Merge branch 'dev'
2 parents f20579d + 772e315 commit 025212d

File tree

112 files changed

+21496
-2
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

112 files changed

+21496
-2
lines changed

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
app/public/demo-video/demo.mp4 filter=lfs diff=lfs merge=lfs -text
2+
*.mp4 filter=lfs diff=lfs merge=lfs -text

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,9 @@ instance/
6868
# Scrapy stuff:
6969
.scrapy
7070

71+
backend/node_modules
72+
app/node_modules
73+
7174
# Sphinx documentation
7275
docs/_build/
7376

README.md

Lines changed: 55 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,55 @@
1-
# CasePulse-G474-PS25
2-
Repo for CasePulse PS project
1+
# CaseBridge
2+
3+
## ✅ Achievements So Far
4+
- **Curated Indian Case Law Dataset:** Collected and organized the **Indian Case Law Evaluation Corpus (ICLEC)**, available on [Kaggle](https://www.kaggle.com/datasets/hrithikraj2537/indian-case-law-evaluation-corpus-iclec).
5+
- **Prepared NLP-Ready Dataset:** Processed the corpus following the CLERC pipeline for machine learning tasks, now available on [Hugging Face](https://huggingface.co/datasets/HRITHIKRAJ2537H/ICLEC).
6+
- **Indexed Dataset for Retrieval Models:** Created a CLERC-style indexed dataset suitable for BM25 and other retrieval models, hosted on [Hugging Face](https://huggingface.co/HRITHIKRAJ2537H/bm25-clerc-pyserini).
7+
- **Hybrid Retrieval Pipeline Implementation:** Integrated sparse (BM25) and dense (LegalBERT-CLERC) retrieval methods for improved passage retrieval.
8+
9+
---
10+
11+
## 📖 Introduction
12+
CaseBridge is a research-driven system designed to advance legal information retrieval and summarization. Inspired by the CLERC benchmark, CaseBridge processes large-scale case law corpora to provide accurate, explainable, and efficient retrieval of relevant passages. Beyond retrieval, the system generates concise and accessible case summaries, helping legal professionals, students, and researchers navigate complex judicial texts. By combining traditional sparse retrieval methods with dense neural representations, CaseBridge bridges the gap between raw case law data and actionable legal insights.
13+
14+
---
15+
16+
## 🎯 Purpose and Users
17+
The goal of CaseBridge is to provide a unified framework for both case retrieval and summarization. Legal practitioners and researchers face the dual challenge of locating the most relevant precedents and synthesizing them into clear arguments. CaseBridge addresses both: it retrieves relevant passages from millions of documents and summarizes them into digestible briefs.
18+
19+
**Target Users:**
20+
- Lawyers seeking case precedents
21+
- Law students conducting academic research
22+
- Policy analysts examining legal patterns
23+
- Developers working at the intersection of law and AI
24+
25+
---
26+
27+
## 🏗️ Architecture Diagram
28+
![Architecture Diagram](assets/Architecture.png)
29+
30+
---
31+
32+
## 🔄 Workflow
33+
![Workflow Diagram](assets/Workflow.png)
34+
35+
---
36+
37+
---
38+
39+
## 📚 Reference Research Paper Summary
40+
CaseBridge builds on the research presented in *CLERC: A Benchmark for Legal Case Retrieval and Summarization*. The CLERC benchmark introduces a large-scale dataset of over twenty-three million passages from U.S. case law and establishes evaluation protocols for retrieval and summarization. Dense retrieval using LegalBERT-CLERC achieved a recall of 68% at 1000, while BM25 achieved a recall of 48%. Summarization tasks were evaluated for the ability to produce concise briefs reflective of professional legal summaries.
41+
42+
CaseBridge extends these findings by re-implementing retrieval pipelines, optimizing them for memory efficiency, and integrating summarization with retrieval into a practical system.
43+
44+
---
45+
46+
## 👥 Contributors
47+
The CaseBridge project has been made possible through the collaborative efforts of a dedicated team, with each member contributing to retrieval implementation, evaluation, user interface design, and presentation milestones.
48+
49+
| Name | First Milestone PPT | First Milestone Video | Second Milestone PPT | Second Milestone Video |
50+
|-------------------|---------------------|-----------------------|-----------------------|-------------------------|
51+
| B Charan Reddy | [PPT](assets/charan/MileStone1.pdf) | Coming soon | Coming soon | Coming soon |
52+
| Mahesh Nampally | [PPT](assets/mahesh/MileStone1.pdf) | [MS1](https://youtu.be/Cast3BBNybU) | Coming soon | Coming soon |
53+
| Nikhilesh Nilagiri| [PPT](assets/nikhilesh/MileStone1.pdf)| [MS1](https://drive.google.com/file/d/1IKfpau7zXHs9iEbhpfpAmB9ptxVB7gBD/view?usp=drivesdk) | Coming soon | Coming soon |
54+
| P Hrithik Raj | [PPT](assets/hrithik/MileStone1.pdf) | [MS1](https://youtu.be/OM9up2UylJI) | Coming soon | Coming soon |
55+
| T Akshaya | [PPT](assets/akshaya/MileStone1.pdf) | Coming soon | Coming soon | Coming soon |

app/.gitignore

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Logs
2+
logs
3+
*.log
4+
npm-debug.log*
5+
yarn-debug.log*
6+
yarn-error.log*
7+
pnpm-debug.log*
8+
lerna-debug.log*
9+
10+
node_modules
11+
dist
12+
dist-ssr
13+
*.local
14+
15+
# Editor directories and files
16+
.vscode/*
17+
!.vscode/extensions.json
18+
.idea
19+
.DS_Store
20+
*.suo
21+
*.ntvs*
22+
*.njsproj
23+
*.sln
24+
*.sw?
25+
.vercel

app/README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# React + Vite
2+
3+
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
4+
5+
Currently, two official plugins are available:
6+
7+
- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) for Fast Refresh
8+
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
9+
10+
## Expanding the ESLint configuration
11+
12+
If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) for information on how to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project.

app/components.json

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"$schema": "https://ui.shadcn.com/schema.json",
3+
"style": "new-york",
4+
"rsc": false,
5+
"tsx": false,
6+
"tailwind": {
7+
"config": "",
8+
"css": "src/index.css",
9+
"baseColor": "neutral",
10+
"cssVariables": true,
11+
"prefix": ""
12+
},
13+
"iconLibrary": "lucide",
14+
"aliases": {
15+
"components": "@/components",
16+
"utils": "@/lib/utils",
17+
"ui": "@/components/ui",
18+
"lib": "@/lib",
19+
"hooks": "@/hooks"
20+
},
21+
"registries": {
22+
"@magicui": "https://magicui.design/r/{name}.json",
23+
"@aceternity": "https://ui.aceternity.com/registry/{name}.json"
24+
}
25+
}

app/config/firebase.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// Import the functions you need from the SDKs you need
2+
import { initializeApp } from "firebase/app";
3+
import {getAuth,GoogleAuthProvider} from "firebase/auth"
4+
import {Firestore, getFirestore} from "firebase/firestore"
5+
//import { getAnalytics } from "firebase/analytics";
6+
// TODO: Add SDKs for Firebase products that you want to use
7+
// https://firebase.google.com/docs/web/setup#available-libraries
8+
9+
// Your web app's Firebase configuration
10+
// For Firebase JS SDK v7.20.0 and later, measurementId is optional
11+
const firebaseConfig = {
12+
apiKey: "AIzaSyAL8kzBVyVkDgnmpGYt4NMCQYGSkm5GEtg",
13+
authDomain: "casebridge-8d65e.firebaseapp.com",
14+
projectId: "casebridge-8d65e",
15+
storageBucket: "casebridge-8d65e.firebasestorage.app",
16+
messagingSenderId: "713304846545",
17+
appId: "1:713304846545:web:2cf52fdcd814dd0034d5f0",
18+
measurementId: "G-FB0M7KF5V3"
19+
};
20+
21+
// Initialize Firebase
22+
const app = initializeApp(firebaseConfig);
23+
//const analytics = getAnalytics(app);
24+
25+
export const auth=getAuth(app);
26+
export const googleProvider =new GoogleAuthProvider();
27+
export const db=getFirestore(app)

app/eslint.config.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import js from '@eslint/js'
2+
import globals from 'globals'
3+
import reactHooks from 'eslint-plugin-react-hooks'
4+
import reactRefresh from 'eslint-plugin-react-refresh'
5+
import { defineConfig, globalIgnores } from 'eslint/config'
6+
7+
export default defineConfig([
8+
globalIgnores(['dist']),
9+
{
10+
files: ['**/*.{js,jsx}'],
11+
extends: [
12+
js.configs.recommended,
13+
reactHooks.configs['recommended-latest'],
14+
reactRefresh.configs.vite,
15+
],
16+
languageOptions: {
17+
ecmaVersion: 2020,
18+
globals: globals.browser,
19+
parserOptions: {
20+
ecmaVersion: 'latest',
21+
ecmaFeatures: { jsx: true },
22+
sourceType: 'module',
23+
},
24+
},
25+
rules: {
26+
'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }],
27+
},
28+
},
29+
])

app/globals.css

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
@import "tailwindcss";
2+
3+
@theme inline {
4+
--shadow-input:
5+
0px 2px 3px -1px rgba(0, 0, 0, 0.1),
6+
0px 1px 0px 0px rgba(25, 28, 33, 0.02),
7+
0px 0px 0px 1px rgba(25, 28, 33, 0.08);
8+
}
9+
.floating-dock {
10+
transform: translateZ(0); /* Force hardware acceleration */
11+
backface-visibility: hidden; /* Smooth animations */
12+
}
13+
14+
.lanyard-wrapper {
15+
position: relative;
16+
z-index: 0;
17+
width: 100%;
18+
height: 100vh;
19+
display: flex;
20+
justify-content: center;
21+
align-items: center;
22+
transform: scale(1);
23+
transform-origin: center;
24+
}
25+
.laser-flow-container {
26+
width: 100%;
27+
height: 100%;
28+
position: relative;
29+
pointer-events: none;
30+
}
31+
32+
33+
.text-rotate {
34+
display: flex;
35+
flex-wrap: wrap;
36+
white-space: pre-wrap;
37+
position: relative;
38+
}
39+
40+
.text-rotate-sr-only {
41+
position: absolute;
42+
width: 1px;
43+
height: 1px;
44+
padding: 0;
45+
margin: -1px;
46+
overflow: hidden;
47+
clip: rect(0, 0, 0, 0);
48+
white-space: nowrap;
49+
border: 0;
50+
}
51+
52+
.text-rotate-word {
53+
display: inline-flex;
54+
}
55+
56+
.text-rotate-lines {
57+
display: flex;
58+
flex-direction: column;
59+
width: 100%;
60+
}
61+
62+
.text-rotate-element {
63+
display: inline-block;
64+
}
65+
66+
.text-rotate-space {
67+
white-space: pre;
68+
}

app/index.html

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
6+
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@600;700;800&display=swap" rel="stylesheet">
7+
8+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
9+
<title>Vite + React</title>
10+
</head>
11+
<body>
12+
<div id="root"></div>
13+
<script type="module" src="/src/main.jsx"></script>
14+
</body>
15+
</html>

0 commit comments

Comments
 (0)