Skip to content

Commit e6ffa60

Browse files
authored
Merge pull request #15 from telerik/fix-responsive-styles
Improve responsive styles
2 parents c1cca91 + f25f792 commit e6ffa60

File tree

7 files changed

+53
-45
lines changed

7 files changed

+53
-45
lines changed

README.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ This is a full-stack TypeScript application with:
3535

3636
### Backend (`/server`)
3737
- **Node.js/Express** API server
38-
- **Nuclia SDK** for AI-powered search and data extraction
38+
- **Progress Agentic RAG SDK** for AI-powered search and data extraction
3939
- **TypeScript** for type safety
4040
- **JSON Schema validation** for structured responses
4141

@@ -48,9 +48,9 @@ This is a full-stack TypeScript application with:
4848
- React Syntax Highlighter
4949
- Vite (build tool)
5050

51-
### Backend Technologies
51+
### Backend Technologies
5252
- Node.js + Express
53-
- Nuclia Core SDK
53+
- Progress Agentic RAG Core SDK
5454
- TypeScript
5555
- CORS middleware
5656
- dotenv for configuration
@@ -68,25 +68,25 @@ This is a full-stack TypeScript application with:
6868

6969
### Prerequisites
7070
- Node.js 18+ and npm
71-
- Nuclia API keys (for backend functionality)
71+
- Progress Agentic RAG API keys (for backend functionality)
7272
- KendoReact license (for UI components)
7373

7474
### Installation
7575

7676
1. **Clone the repository**
7777
```bash
78-
git clone https://github.com/telerik/nuclia-demo.git
79-
cd nuclia-demo
78+
git clone https://github.com/telerik/kendo-progress-rag-demo.git
79+
cd kendo-progress-rag-demo
8080
```
8181

8282
2. **Install dependencies**
8383
```bash
8484
# Install root dependencies
8585
npm install
86-
86+
8787
# Install client dependencies
8888
cd client && npm install
89-
89+
9090
# Install server dependencies
9191
cd ../server && npm install
9292
```
@@ -98,11 +98,11 @@ This is a full-stack TypeScript application with:
9898
# React Documentation Knowledge Box
9999
NUCLIA_KB=your_react_kb_id
100100
NUCLIA_API_KEY=your_react_api_key
101-
101+
102102
# Financial Data Knowledge Box
103103
NUCLIA_FIN_KB=your_finance_kb_id
104104
NUCLIA_FIN_API_KEY=your_finance_api_key
105-
105+
106106
PORT=5000
107107
```
108108

@@ -131,7 +131,7 @@ npm run dev
131131
# Start backend server (from /server)
132132
npm run dev
133133

134-
# Start frontend client (from /client)
134+
# Start frontend client (from /client)
135135
npm run dev
136136
```
137137

@@ -152,7 +152,7 @@ npm start
152152
## 📁 Project Structure
153153

154154
```
155-
nuclia-demo/
155+
kendo-progress-rag-demo/
156156
├── client/ # React frontend application
157157
│ ├── src/
158158
│ │ ├── components/ # Reusable UI components
@@ -194,7 +194,7 @@ nuclia-demo/
194194
}
195195
```
196196

197-
### Finance Analysis
197+
### Finance Analysis
198198
- `POST /api/ask-charts` - Query financial data with structured chart responses
199199
```json
200200
{
@@ -237,7 +237,7 @@ npm run build
237237

238238
**Backend (Node.js hosting):**
239239
```bash
240-
cd server
240+
cd server
241241
npm run build
242242
npm start
243243
```
@@ -246,13 +246,13 @@ npm start
246246

247247
For questions about:
248248
- **KendoReact components**: Visit [KendoReact Documentation](https://www.telerik.com/kendo-react-ui/components/)
249-
- **Nuclia AI platform**: Visit [Nuclia Documentation](https://docs.nuclia.com/)
249+
- **Progress Agentic RAG platform**: Visit [Progress Agentic RAG Documentation](https://www.progress.com/agentic-rag)
250250
- **This demo application**: Open an issue in this repository
251251

252252
## 🔗 Links
253253

254254
- [KendoReact Documentation](https://www.telerik.com/kendo-react-ui/components/)
255-
- [Nuclia Platform](https://nuclia.com/)
255+
- [Progress Agentic RAG Platform](https://www.progress.com/agentic-rag)
256256
- [Vite Documentation](https://vitejs.dev/)
257257
- [React Documentation](https://react.dev/)
258258

client/src/components/AppBarComponent.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ import { AppBar, AppBarSection, AppBarSpacer } from "@progress/kendo-react-layou
22
import { Button } from "@progress/kendo-react-buttons";
33
import { SvgIcon } from "@progress/kendo-react-common";
44
import { useNavigate } from 'react-router-dom';
5-
import {
6-
searchIcon,
5+
import {
6+
searchIcon,
77
homeIcon,
88
chartLineStackedMarkersIcon,
99
sparklesIcon
@@ -25,7 +25,7 @@ export default function AppBarComponent() {
2525
}
2626

2727
return (
28-
<AppBar
28+
<AppBar
2929
positionMode="sticky"
3030
style={{
3131
background: "linear-gradient(135deg, #0a5bb8 0%, #0d6edf 50%, #085096 100%)",
@@ -36,7 +36,7 @@ export default function AppBarComponent() {
3636
>
3737
<AppBarSection>
3838
<div className="k-d-flex k-align-items-center k-gap-md">
39-
<div className="k-d-flex k-align-items-center k-justify-content-center k-rounded-md k-w-8 k-h-8"
39+
<div className="k-d-flex k-align-items-center k-justify-content-center k-rounded-md k-w-8 k-h-8"
4040
style={{
4141
background: "rgba(255, 255, 255, 0.2)",
4242
border: "1px solid rgba(255, 255, 255, 0.3)"
@@ -47,10 +47,10 @@ export default function AppBarComponent() {
4747
icon={sparklesIcon}
4848
/>
4949
</div>
50-
<h3 className="k-m-0 k-text-surface k-font-semibold k-font-size-xl k-d-none k-d-sm-block" style={{
50+
<h3 className="k-m-0 k-text-surface k-font-semibold k-font-size-xl k-d-none k-d-sm-block" style={{
5151
textShadow: "0 2px 4px rgba(0, 0, 0, 0.2)"
5252
}}>
53-
Kendo + Nuclia Demo
53+
Kendo + Progress Agentic RAG Demo
5454
</h3>
5555
</div>
5656
</AppBarSection>

client/src/components/DrawerComponent.tsx

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
import React, { useState, useEffect } from "react";
2-
import { Drawer, DrawerContent } from "@progress/kendo-react-layout";
2+
import { Drawer, DrawerContent, DrawerNavigation } from "@progress/kendo-react-layout";
3+
import { SvgIcon } from "@progress/kendo-react-common";
34
import { folderIcon, searchIcon, chartLineStackedMarkersIcon } from "@progress/kendo-svg-icons";
45
import type { To } from 'react-router-dom';
56
import { useLocation, useNavigate } from 'react-router-dom';
6-
7+
8+
79
const drawerItems = [
810
{ text: "Home", svgIcon: folderIcon, route: "/", selected: true },
911
{ text: "Knowledge Assistant", svgIcon: searchIcon, route: "/knowledge-assistant" },
@@ -48,15 +50,21 @@ const DrawerComponent: React.FC<DrawerComponentProps> = ({ children }) => {
4850
<Drawer
4951
expanded={isExpanded}
5052
mode="push"
51-
items={drawerItems.map(item => ({
52-
...item,
53-
selected: item.text === selected,
54-
}))}
5553
onSelect={onSelect}
5654
width={220}
5755
className="k-h-full"
5856
drawerClassName="k-border-none"
5957
>
58+
<DrawerNavigation className="k-overflow-y-auto !k-pos-sticky" style={{ height: 'calc(100vh - 53px)', top: 53}}>
59+
<ul className="k-drawer-items">
60+
{drawerItems.map(item => (
61+
<div onClick={() => navigate(item.route)} key={item.text} className={`k-drawer-item ${selected === item.text ? 'k-selected' : ''}`}>
62+
<SvgIcon icon={item.svgIcon} />
63+
<span className="k-item-text">{item.text}</span>
64+
</div>
65+
))}
66+
</ul>
67+
</DrawerNavigation>
6068
<DrawerContent>
6169
{children}
6270
</DrawerContent>

client/src/pages/FinanceAnalysis.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,9 @@ export default function FinanceAnalysis() {
6161
];
6262

6363
const chatBot = useChatBot({
64-
botName: "Nuclia Financial Assistant",
64+
botName: "Progress Agentic RAG Financial Assistant",
6565
initialMessage:
66-
"Hello! I'm your Nuclia Financial assistant. I can help you by summarizing financial data and answering questions about companies. Try one of the suggestions below, or ask me anything about financial results of Apple, Amazon, Resolute, Exxon Mobil, Johnson&Jonson, Google, NVIDIA or Berkshire Hathaway!",
66+
"Hello! I'm your Progress Agentic RAG Financial assistant. I can help you by summarizing financial data and answering questions about companies. Try one of the suggestions below, or ask me anything about financial results of Apple, Amazon, Resolute, Exxon Mobil, Johnson&Jonson, Google, NVIDIA or Berkshire Hathaway!",
6767
apiEndpoint: "/api/ask-charts",
6868
placeholder: "Try a suggestion or ask about a company...",
6969
suggestions: financialSuggestions,
@@ -85,7 +85,7 @@ export default function FinanceAnalysis() {
8585
}, [chatBot.latestResponse, isBarChartDef]);
8686

8787
return (
88-
<div className="k-bg-surface" style={{ minHeight: 'calc(100vh - 53px)' }}>
88+
<div className="k-bg-surface">
8989
<div className="k-d-grid k-grid-cols-1 k-grid-cols-xl-2 k-gap-lg k-p-lg" style={{ minHeight: 'calc(100vh - 53px - 2rem)' }}>
9090
{/* Left Panel - Chat */}
9191
<div className="k-d-flex k-col-span-1 k-col-span-xl-1 k-col-start-xl-1 k-col-end-xl-2" style={{ display: 'flex' }}>
@@ -112,10 +112,10 @@ export default function FinanceAnalysis() {
112112
<Card className="k-flex-1">
113113
<div className="k-p-lg">
114114
<h2 className="k-font-size-xl k-font-bold k-mb-lg">
115-
Nuclia Financial Charts Analysis
115+
Progress Agentic RAG Financial Charts Analysis
116116
</h2>
117117
<div className="k-d-flex k-flex-col k-gap-lg">
118-
{/* Dynamic Charts from Nuclia answer (up to 3) */}
118+
{/* Dynamic Charts from Progress Agentic RAG answer (up to 3) */}
119119
<div>
120120
{selectedCharts.length === 0 && (
121121
<p className="k-text-secondary">

client/src/pages/Home.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ export default function Home() {
1010
};
1111

1212
return (
13-
<div className="k-overflow-hidden" style={{
13+
<div className="k-overflow-auto" style={{
1414
height: 'calc(100vh - 53px)',
1515
background: 'linear-gradient(134deg, #2359D4 14.27%, #832ED2 49.62%, #2B39A4 85.65%)'
1616
}}>
1717
<div className="k-d-flex k-flex-column k-text-surface k-align-items-center k-gap-8 k-gap-sm-10 k-gap-md-12 k-gap-lg-14 k-px-4 k-px-sm-6 k-px-md-8 k-px-lg-12 k-px-xl-30 k-py-4 k-py-sm-6 k-py-md-8 k-py-lg-12 k-py-xl-30">
1818
<div className="k-d-flex k-flex-column k-gap-2 k-gap-sm-3 k-gap-md-4 k-text-center">
19-
<h1 className="k-h1 k-font-weight-bold !k-mb-0">Nuclia + Telerik DevTools</h1>
19+
<h1 className="k-h1 k-font-weight-bold !k-mb-0">Progress Agentic RAG + Telerik DevTools</h1>
2020
<p className="k-font-size-xl !k-mb-0 k-d-none k-d-sm-block">Supercharging AI-Powered Applications</p>
2121
</div>
2222
<div className="k-d-flex k-flex-column k-gap-4 k-gap-sm-5 k-gap-md-6">
@@ -27,10 +27,10 @@ export default function Home() {
2727
<li>Accelerate development cycles by combining enterprise-grade UI with enterprise-ready AI retrieval.</li>
2828
<li>Unlock business outcomes by transforming unstructured data into meaningful knowledge, surfaced through beautiful and functional interfaces.</li>
2929
</ul>
30-
<Button
31-
className="k-text-surface k-align-self-center"
32-
fillMode="outline"
33-
themeColor="primary"
30+
<Button
31+
className="k-text-surface k-align-self-center"
32+
fillMode="outline"
33+
themeColor="primary"
3434
svgIcon={sparklesIcon}
3535
onClick={handleExploreClick}
3636
>

client/src/pages/KnowledgeAssistant.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,22 +25,22 @@ const KnowledgeAssistant = () => {
2525
];
2626

2727
const chatBot = useChatBot({
28-
botName: 'Nuclia Assistant',
29-
initialMessage: 'Hello! I\'m your Nuclia AI assistant. I can help you with KendoReact questions and documentation. Try one of the suggestions below, or ask me anything about KendoReact components, theming, data visualization, and more!',
28+
botName: 'Progress Agentic RAG Assistant',
29+
initialMessage: 'Hello! I\'m your Progress Agentic RAG AI assistant. I can help you with KendoReact questions and documentation. Try one of the suggestions below, or ask me anything about KendoReact components, theming, data visualization, and more!',
3030
apiEndpoint: '/api/ask',
3131
placeholder: 'Try a suggestion or ask about KendoReact...',
3232
suggestions: kendoSuggestions
3333
});
3434

3535
return (
36-
<div className="k-d-flex k-flex-column k-overflow-hidden" style={{ height: 'calc(100vh - 53px)', background: 'linear-gradient(134deg, #23A5D4 14.27%, #2E7BD2 49.62%, #20B4CB 85.65%)'}}>
36+
<div className="k-d-flex k-flex-column k-overflow-auto k-pb-4" style={{ height: 'calc(100vh - 53px)', background: 'linear-gradient(134deg, #23A5D4 14.27%, #2E7BD2 49.62%, #20B4CB 85.65%)'}}>
3737
<div className="k-color-surface k-d-flex k-flex-column k-align-items-center k-py-4 k-py-sm-6 k-py-md-4 k-px-4 k-px-sm-6 k-px-md-8 k-px-lg-12 k-px-xl-20 k-gap-2 k-gap-sm-3 k-gap-md-3 k-flex-none">
3838
<div className="k-d-flex k-flex-column k-gap-2 k-gap-sm-3 k-gap-md-3">
3939
<div className="k-d-flex k-gap-2 k-align-items-center">
4040
<SvgIcon icon={searchIcon} size="xxlarge" className="k-flex-shrink-0" />
41-
<h1 className="k-h1 !k-mb-0">Nuclia Knowledge Assistant</h1>
41+
<h1 className="k-h1 !k-mb-0">Progress Agentic RAG Knowledge Assistant</h1>
4242
</div>
43-
<p className="!k-mb-0 k-font-size-xl k-d-none k-d-sm-block">Explore the comprehensive Nuclia knowledge base with AI-powered intelligent search for precise, contextual results about Nuclia features, capabilities, and best practices</p>
43+
<p className="!k-mb-0 k-font-size-xl k-d-none k-d-sm-block">Explore the comprehensive Progress Agentic RAG knowledge base with AI-powered intelligent search for precise, contextual results about Progress Agentic RAG features, capabilities, and best practices</p>
4444
</div>
4545
</div>
4646
<div className="k-d-flex k-flex-column k-px-4 k-px-sm-6 k-px-md-8 k-px-lg-12 k-px-xl-20 k-pb-4 k-flex-1 k-min-h-0">

server/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ app.get("/api/health", (_req: express.Request, res: express.Response) => {
2929
res.json({ status: "ok" });
3030
});
3131

32-
// Reusable extended handler providing SSE streaming for Nuclia ask requests
32+
// Reusable extended handler providing SSE streaming for Progress Agentic RAG ask requests
3333
const askHandler = (req: express.Request, res: express.Response, kb: KnowledgeBox, question: string, chatOptions?: ChatOptions) => {
3434
// Set up Server-Sent Events (SSE) headers
3535
res.setHeader('Content-Type', 'text/event-stream');

0 commit comments

Comments
 (0)