Spaces:
Running
Running
File size: 35,324 Bytes
7382619 ea0cf2f 22e7b0f d9b8599 ea0cf2f 028160d ea0cf2f a091827 028160d a091827 c55b0e5 a091827 7fca269 22e7b0f 83ff3fe 22e7b0f 83ff3fe 22e7b0f 7fca269 22e7b0f a19ac0e 22e7b0f ac33c0c a19ac0e 8d5ea9c a19ac0e 8d5ea9c a19ac0e 22e7b0f 471eca1 a19ac0e a091827 7fca269 83ff3fe a091827 28bf0e5 8a53b30 5141ca1 9b2f3dd 2316359 7fca269 d37bb65 7fca269 fa0cca7 f7370a5 96ebf98 471eca1 83ff3fe a0ccd68 028160d f5443fa 028160d 83ff3fe 028160d 83ff3fe 028160d 0f77e3f 83ff3fe 0f77e3f a0ccd68 028160d fb85e96 a091827 028160d 817d83a 28bf0e5 83ff3fe 28bf0e5 184f616 28bf0e5 184f616 d5257ad 83ff3fe 8a53b30 d5257ad 8a53b30 d5257ad 8a53b30 471eca1 2316359 ae38349 5770e78 ae38349 2316359 5141ca1 a0ccd68 fa0cca7 8f660dd 64bbf94 825fdb9 16defeb 069085e fa6ffc9 64bbf94 d037b44 1bf7d91 16defeb 8f660dd 9b2f3dd fa0cca7 a40d340 f7370a5 fa0cca7 ac33c0c 83ff3fe ac33c0c 9cdf2c3 ff57a0a 05c1788 9cdf2c3 ac33c0c 9cdf2c3 83ff3fe ac33c0c c2df93c 55a4aa9 c2df93c 030dd5b 7a4bcdb 841be3c c2df93c 22e7b0f c55b0e5 a091827 c55b0e5 a091827 c55b0e5 7e9b8cf a091827 c55b0e5 471eca1 94df77a ea0cf2f d5257ad ea0cf2f 22e7b0f ea0cf2f 483997f 0f77e3f a19ac0e eeaf006 0f77e3f a091827 0f77e3f ea0cf2f a19ac0e ea0cf2f 94df77a d5257ad 9b2f3dd d5257ad 22e7b0f d5257ad 9b2f3dd d5257ad a19ac0e d5257ad 22e7b0f a091827 471eca1 a091827 ea0cf2f a091827 8d5ea9c 028160d a091827 028160d 8d5ea9c 028160d a091827 94df77a 5b25b7a ea0cf2f 028160d ea0cf2f a19ac0e d5257ad 94df77a 9b2f3dd d5257ad 41d10ab 9b2f3dd 7631808 d5257ad 9b2f3dd d5257ad 9b2f3dd d5257ad 41d10ab d5257ad 2514658 d5257ad 9b2f3dd 7631808 41d10ab 9b2f3dd 7631808 9b2f3dd 7631808 9b2f3dd d5257ad a19ac0e d5257ad 9b2f3dd ff66ee3 94df77a 8d5ea9c 028160d 8d5ea9c 028160d ea0cf2f 5b25b7a 0370383 a091827 ea0cf2f 94df77a ff66ee3 8d5ea9c 94df77a 0370383 ff66ee3 0370383 94df77a ea0cf2f 22e7b0f b902bdb 22e7b0f 83ff3fe b6557f4 5e7fe82 7ee70ae b6557f4 22e7b0f 83ff3fe 22e7b0f 83ff3fe 22e7b0f 83ff3fe 22e7b0f 83ff3fe 22e7b0f 83ff3fe 22e7b0f d5257ad 028160d ac33c0c 7382619 ea0cf2f a19ac0e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 | <html>
<head>
<link rel="stylesheet" href="style.css">
<!-- Loadint podketbase from cdn -->
<script src="https://cdn.jsdelivr.net/gh/pocketbase/js-sdk@master/dist/pocketbase.umd.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div class="main-company" id="rrMain">
<h3 class="main-heading">RR Technologies - Retro Poster Board</h3>
<p class="details">
<ul>
<li>An experimental posterboard website.</li>
</ul>
</p>
<div class="login-card">
<div id="login-section">
<span>Business Login</span><br>
<input type="email" id="email" placeholder="Email" required size="28" ><br>
<input type="password" id="password" placeholder="Password" required size="28" ><br>
<button onclick="doLogin()" >Sign In</button>
</div>
<div id="user-section" class="hidden">
<!--<span>Welcome!</span><br>-->
<p id="user-email"></p>
<button onclick="doLogout()" style="background: #f44336;" >Logout</button>
</div>
<p id="message"></p>
</div>
<!--
<div class="user-input-container" >
<form>
<h4>Feedback</h4>
<textarea id="feedback" name="feedback" rows="5" cols="40"
placeholder="Leave your feedback, Example: Hello, I am somebody, please increase the font size ..." ></textarea>
<div class="button-group">
<button type="button" class="btn send" id="structure">Create Feedback</button>
<button type="button" class="btn save" disabled>Submit</button>
<button type="button" class="btn clear" id="feedbackClr" >Clear</button>
</div>
</form>
</div>
-->
</div>
<div class="tabs">
<!--
<button class="tab-link" onclick="openTab(event, 'Plnb')"><span class="tab-heading">NUTRITION</span></button>
<button class="tab-link" onclick="openTab(event, 'Hcs')"><span class="tab-heading">CAKES</span></button>
<button class="tab-link" onclick="openTab(event, 'Jobs')"><span class="tab-heading">JOB-POSTINGS</span></button>
<button class="tab-link" onclick="openTab(event, 'Training')"><span class="tab-heading">TRAINING</span></button>
<button class="tab-link" onclick="openTab(event, 'Portfolio')"><span class="tab-heading">PORTFOLIO</span></button>
<button class="tab-link" onclick="openTab(event, 'Insurance')"><span class="tab-heading">INSURANCE</span></span></button>
<button class="tab-link" onclick="openTab(event, 'SixgStudies')"><span class="tab-heading">6G-STUDIES</span></button>
<button class="tab-link" onclick="openTab(event, 'Digital')"><span class="tab-heading">DIGITAL-MARKETING</span></button>
-->
<button class="tab-link" onclick="openTab(event, 'AI-Studies')"><span class="tab-heading"><span class="ai-icon">AI-STUDIES</span></span></button>
<button class="tab-link" onclick="openTab(event, 'Nature')"><span class="tab-heading"><span class="nature-leaf">NATURE</span></span></button>
<button class="tab-link" onclick="openTab(event, 'Garden')"><span class="tab-heading"><span class="potted-plant">GARDENING</span></span></button>
<!--<button class="tab-link" onclick="openTab(event, 'Devotional')"><span class="tab-heading">DEVOTIONAL</span></button>-->
<button class="tab-link" onclick="openTab(event, 'About')"><span class="tab-heading">ABOUT</span></button>
</div>
<div id="Plnb" class="tab-content" inert class="disabled-div">
<h4>Project LeanNation </h4>
<table >
<tr>
<td>
<p>
We are incredibly excited to announce the launch of a new store <a href="https://projectleannation.com/locations/burlington-ma" alt="Project LeanNation" target="_blank" rel="noopener noreferrer">Project LeanNation</a> in Burlington mid-June.<br>
We would like to introduce the owner, Shweta, a former Google engineer who has transitioned her passion for nutrition and building healthier habits into a community-focused endeavor.<br>
Shweta is currently looking to connect with the community and would love to partner
with local groups, corporate teams, fitness studios, sports clubs and other organizations to host pop-ups. <br>
<br>
They offer macro-balanced meals and nutrition coaching designed to make healthy eating simple,
convenient, and sustainable for busy professionals.<br>
These are great ways to sample meals, try protein snacks, and learn more about the nutrition program in a fun, low-pressure setting.<br>
We would love to connect you with Shweta and explore potential wellness initiatives for your teams!<br>
<br> If you're open to it, we would be happy to make an introduction.
</p>
</td>
</tr>
</table>
</div>
<div id="Hcs" class="tab-content" inert class="disabled-div">
<h4>Harshali Custom Cake Shop</h4>
<table >
<tr>
<td vertical-align="top">
We are happy to introduce a speciality cake shop by Harshali in Boston Neighborhood.<br>
Harshali creates affordable and handmade theme based cake design's that suit your needs. <br>
Please check out her <a class="anchor-tags" href="https://www.facebook.com/harshaliscreativecakes/" alt="Harshali Cake Shop" target="_blank" rel="noopener noreferrer">Facebook</a> link to discuss customizations based on your preferences!
</td>
<td><span style="visibility: hidden;">space filler for now!</span></td>
<td >
<table >
<tr>
<td><img src="images/20230407_140300.jpg" height="100" width="80"/></td>
<td><img src="images/20240501_175250.jpg" height="100" width="80"/></td>
<td><img src="images/20250407_183652.jpg" height="100" width="80"/></td>
<td><img src="images/20250510_145255.jpg" height="100" width="80"/></td>
</tr>
</table>
</td>
</tr>
</table>
<br>
<p>
If you like to hear more, we would be happy to make an introduction.
</p>
</div>
<div id="Jobs" class="tab-content">
<h4>Job Postings</h4>
<p>Postings from known recruiters will be posted here!</p>
</div>
<div id="Training" class="tab-content" inert class="disabled-div">
<h4>Training</h4>
<p>
We are extremely happy to introduce Apache Cassandra training offered by Sarma on Udemy. <br>
<ol>
<li><a href="https://www.udemy.com/course/everything-cassandra/" target="_blank" rel="noopener noreferrer" alt="cassandra-basic">Everything You Need To Know To Get Started With Apache Cassandra.</a></li>
<li><a href="https://www.udemy.com/course/install-cassandra/" alt="install-cassandra" target="_blank" rel="noopener noreferrer">Learn How To Install & Configure Apache Cassandra.</a></li>
<li><a href="https://www.udemy.com/course/upgrade-cassandra/" alt="upgrade-cassandra" target="_blank" rel="noopener noreferrer">A comprehensive guide to upgrading "Apache Cassandra" clusters with minimal risk, and downtime. </a></li>
<li><a href="https://www.udemy.com/course/spark-scala-cassandra/" alt="spark-scala-cassandra" target="_blank" rel="noopener noreferrer">Learn How To Use Apache Spark for Data Stored In Apache Cassandra</a></li>
<li><a href="https://www.udemy.com/course/datastax-enterprise-installation/" alt="datastax-enterprise-installation" target="_blank" rel="noopener noreferrer">Learn Installation & Configuration of most popular Cassandra distribution : DataStax Enterprise</a></li>
<li><a href="https://www.udemy.com/course/datastax-astra-db/" alt="astra-datastax" target="_blank" rel="noopener noreferrer">Learn how to use DataStax Astra DB</a></li>
</ol>
If you like to hear more, we would be happy to make an introduction.
</p>
</div>
<div id="Portfolio" class="tab-content" inert class="disabled-div">
<h4>Projects Yard</h4>
<p>
We are very excited to introduce <a href="https://www.projectsyard.com" target="_blank" rel="noopener noreferrer"" alt="Projects Yard">Projects Yard</a>.
They can help you create stunning, interactive portfolios that bring your projects to life. <br>
They can guide you to stand out to recruiters and land your dream job.<br>
Built specifically for showcasing AI/ML and technical projects that deserve more than a bullet point. <br>
<br>
If you like to hear more, we would be happy to make an introduction.
</p>
</div>
<!--
<div id="Digital" class="tab-content">
<h4>Digital Marketing</h4>
<p>
We are very excited to introduce <a href="https://www.aptdigital.in" target="_blank" rel="noopener noreferrer" alt="APT Digital Express">APT Digital Express</a>.
They help businesses grow with modern digital marketing strategies, performance-led execution, and measurable online results.<br>
Core services span across SEO (Search Engine Optimizations), social media, paid campaigns, content, and web experiences. <br>
<br>
If you like to hear more, we would be happy to make an introduction.
</p>
</div>
<div id="Insurance" class="tab-content">
<h4>Insurance</h4>
<p>Coming soon..</p>
</div>
-->
<div id="AI-Studies" class="tab-content">
<h4>AI Studies</h4>
<p>
AI experimental articles
To run AI models locally, we need a runtime engine (inference), decent machine preferably with few gpu's to support and provide reasonable performance.
<a href="/LLM_Basics.html" target="_blank" rel="noopener noreferrer">Basics</a>
<ul>
<li>We have used the following, Ollama, llama.cpp, mlx_lm etc to run few models like llama, gemma, phi to obtain decent performance.</li>
<li>We have used openlit, pheonix as llm observability tools to evaluate the model performances.</li>
<li>We have used nomic-embed, all-minilm like embedding models with chroma_db like vector database to test the RAG concepts.</li>
<li>We have used kuzu and llama index property graphstore and local llm's to evaluate the graph RAG. <a href="/Articles_Quality_Check.html" target="_blank" rel="noopener noreferrer">Sample Project-1(Article Quality Check)</a></li>
<li><a href="/Finetuning.html" target="_blank" rel="noopener noreferrer">Fine-Tuning</a></li>
<li><a href="/Graph_RAG.html" target="_blank" rel="noopener noreferrer">Graph RAG Example Lab</a></li>
<li><a href="/Lang_Graph.html" target="_blank" rel="noopener noreferrer">Lang Graph Example Lab</a></li>
</ul>
Detailed experiments and some interesting observations will be published soon ..
</p>
</div>
<!--
<div id="Devotional" class="tab-content">
<h4>Devotional Channel from Waltair Ravi <a href="https://youtube.com/@waltairravi?si=D6p1jv28eZeCaLGZ" alt="Waltair Ravi Channel" target="_blank" rel="noopener noreferrer">Channel</a></h4>
<p>
We are happy to present some real time experiences of visits from various temples
<ol>
<li><a href="https://youtu.be/QVI-7Yy4ybA" target="_blank" rel="noopener noreferrer" >Gudilova Temple</a></li>
<li><a href="https://youtu.be/Tsa1TnMkEHk" target="_blank" rel="noopener noreferrer">Sri Uma Vyaseswara Swamy temple, Kesanakurru</a></li>
<li><a href="https://youtu.be/nDzUBLUgfv0" target="_blank" rel="noopener noreferrer">Sri Kameswari Devi temple, Kesanakurru</a></li>
<li><a href="https://youtu.be/R-gboClGdWE" target="_blank" rel="noopener noreferrer">Sri Mallamamba and Parvati Devi Temple, Kesanakurru</a></li>
<li><a href="https://youtu.be/mb3FyRUZl2A" target="_blank" rel="noopener noreferrer">Sri Kundaleswara Swamy temple</a></li>
<li><a href="https://youtu.be/mLKDkqt4kiU" target="_blank" rel="noopener noreferrer">Sri Kalabhairava Swamy temple, Konaseema</a></li>
<li><a href="https://youtu.be/YLnmTkbuQag" target="_blank" rel="noopener noreferrer">Bhuvaneswari Devi Temple near Vizag</a></li>
<li><a href="https://youtu.be/uMJ7gysnexY" target="_blank" rel="noopener noreferrer">Lakshmi Ganapathi Temple, Bikkavolu, East Godavari</a></li>
<li><a href="https://youtu.be/spWjhMHxqhs" target="_blank" rel="noopener noreferrer">Underground Sivalayam, Anakapalle</a></li>
<li><a href="https://youtu.be/mb3FyRUZl2A" target="_blank" rel="noopener noreferrer">Sri Chakra Maha Meru Yantralayam, Yenugulamahal village, Konaseema</a></li>
<li><a href="https://youtu.be/lejJ5XCm4UY" target="_blank" rel="noopener noreferrer">Sri Lalitha Peetham, Srinivasa Mangapuram, Tirupati</a></li>
</ol>
</p>
<br>
If you like to hear more, we would be happy to make an introduction.
</div>
-->
<div id="Nature" class="tab-content">
<h4>Nature</h4>
<ol>
<li><a href="/Leaf_Article.html" target="_blank" rel="noopener noreferrer" alt="four-o-clock-plant">Leaf Story</a></li>
<li><a href="/Maple_Article.html" alt="common-purslane" target="_blank" rel="noopener noreferrer">Maple Tree</a></li>
</ol>
<!--
<p>
Every <span class="fallen-leaf">leaf</span> holds a tiny story, a silent promise of growth and life. <br>
It makes us sad to see majority of folks throw away these
treasure troves in the yardwaste. <br>
Don't just let them disappear, they are amazing ingradients for creating homemade soil, a
wonderful way to contributing something back to the mother earth.<br>
<br>
<span class="money-tip">
Forget the large leaf bags, start your savings today and watch your <span class="cash-icon">wealth grow</span>!
</span>
<br>
If you like to hear more, we would be happy to guide you through.
</p>
-->
</div>
<div id="Garden" class="tab-content">
<h4>Gardening with impactful environmental protection</h4>
<p>
We can help the environment by growing plants that are very environmental friendly and protect it in ways unimaginable.
Here is a list of few plants and how they can help the environment.
<ol>
<li><a href="/Mirabilis_Jalapa_Article.html" target="_blank" rel="noopener noreferrer" alt="four-o-clock-plant">Four O'Clock Plant</a></li>
<li><a href="/Environment_Articles.html#section-purslane" alt="common-purslane" target="_blank" rel="noopener noreferrer">Common Purslane</a></li>
<li><a href="/Environment_Articles.html#section-moss" alt="moss" target="_blank" rel="noopener noreferrer">Moss</a></li>
<li><a href="/Tomato_Article.html" alt="moss" target="_blank" rel="noopener noreferrer">Growing Tomatoes Efficiently and Economically</a></li>
<li><a href="/Marygold_Article.html" alt="marygold" target="_blank" rel="noopener noreferrer">Marygold</a></li>
<li><a href="/Tulasi_Article.html" alt="holy-basil" target="_blank" rel="noopener noreferrer">Holy Basil (Tulasi)</a></li>
</ol>
<br>
If you like to hear more, we would be happy to guide you through.
</p>
</div>
<div id="About" class="tab-content">
<h4>About</h4>
<p>We are Java/Python developers evaluating AI platforms, frameworks. <br>
<ol>
<li>We can help in building AI RAG applications (Classic RAG/Graph RAG).</li>
<li>We can help with RAG pipeline testing, benchmarking results.</li>
<li>We can help finetune models (LORA/DORA), set up test beds for bench marking.</li>
<li>We conduct workflow experiments with LlamaIndex, LangGraph etc.</li>
</ol>
</p>
</div>
<!--
<div class="ai-assistant-container" id="aiAssistant">
<img src="images/RR_Logo.png" alt="AI Assistant Avatar" class="assistant-avatar" id="net-ai">
<div class="chat-bubble" id="net">
<p>Hello! RR Technologies assistant here, how may I help you?
<ol>
<li>Please click the icon to collapse this window</li>
<li>Please type your question and press enter</li>
<li>Please dblclick to clear the contents!</li>
</ol>
</p>
<textarea rows="10" cols="35" id="console" style="display:none" >
</textarea>
</div>
</div>
<div id="balloon-container">
<svg viewBox="0 0 150 150">
<g id="balloon-group">
<ellipse cx="50" cy="50" rx="40" ry="50" fill="#ff6b6b" />
<polygon points="50,100 45,110 55,110" fill="#ff6b6b" />
<line x1="50" y1="110" x2="50" y2="140" stroke="black" stroke-width="2" />
<text id="advBalloon" x="50" y="45"
text-anchor="middle" fill="white" font-size="15" font-family="Arial">
</text>
</g>
</svg>
<textarea id="joke-section" rows="5" cols="25" disabled></textarea>
</div>
-->
<script>
function openTab(evt, tabName) {
var i, tabcontent, tablinks;
// Hide all elements with class="tab-content"
tabcontent = document.getElementsByClassName("tab-content");
for (i = 0; i < tabcontent.length; i++) {
tabcontent[i].style.display = "none";
}
// Remove the "active" class from all tab buttons
tablinks = document.getElementsByClassName("tab-link");
for (i = 0; i < tablinks.length; i++) {
tablinks[i].className = tablinks[i].className.replace(" active", "");
}
// Show the current tab, and add an "active" class to the button that opened the tab
document.getElementById(tabName).style.display = "block";
evt.currentTarget.className += " active";
}
</script>
<script type="module">
import { Client } from "https://cdn.jsdelivr.net/npm/@gradio/client/dist/index.min.js";
async function callGradioAPI(userInput, api_method) {
// 1. Connect to the app (use your Space name or URL)
const app = await Client.connect('https://rr19tech-my-proxy.hf.space');
// 2. Call the endpoint with user input passed as an array
//const result = await app.predict("/call_private_api", [userInput]);
const result = await app.predict(api_method, [userInput]);
// 3. Access the returned data
console.log("Result:", result.data);
return result.data;
}
/**
const consoleArea = document.getElementById('console');
const assistantAvatar = document.getElementById('net-ai');
const chatBubble = document.getElementById('net');
const aiChatArea = document.getElementById("console");
// Add a click event listener to the avatar
assistantAvatar.addEventListener('click', () => {
// Toggle the display style to show or hide the chat bubble
if (chatBubble.style.display === 'none' || chatBubble.style.display === '') {
chatBubble.style.display = 'block';
aiChatArea.style.display = "block";
} else {
chatBubble.style.display = 'none';
aiChatArea.style.display = "none";
}
console.log("Is the button clicked!! net-ai");
//we have to call the language model from this chat
});
function checkJobPostings(input){
console.log("Looking for Job Posting data");
//if(input.inclues)
}
// this function will pick up contents from each of the tabs, pick random data and post it on the banner
function postAdv(){
console.log("Posting a random joke");
const businesses = ["HCS", "Sharma-Udemy", "ProjectsYard"];
const randomBusinees = businesses[Math.floor(Math.random() * businesses.length)];
console.log("Random Business chosen is : " + randomBusinees);
//set the text of the ballon from this one
const advBalloon = document.getElementById("advBalloon");
advBalloon.textContent = randomBusinees;
//pick a random text color from the following and random position
const colors = ["red", "blue", "green", "yellow", "cyan"];
//positions =["center", "left", "right"];
const randomColor = colors[Math.floor(Math.random() * colors.length)];
//const jokeContainer = document.getElementById("joke-section");
//const topics=["planets", "foods", "training", "photos", "portfolio"];
//const randomTopic = topics[Math.floor(Math.random() * topics.length)];
const randomTopic = getRelavantData(randomBusinees);
//call the api and get a random joke
//const content = "Tell a random joke about " + randomTopic;
const content = "Give 2 to 3 sentences about the topic " + randomTopic;
console.log("Random joke selected is: " + content);
const jokeContainer = document.getElementById('joke-section');
//let result = get_api_results(content, jokeContainer);
let result = randomTopic;//not calling the api for now to avoid rate limit issue
//jokeContainer.style.color = randomColor;
jokeContainer.textContent = result;
moveBalloon();
}
//move this to the backend
function getRelavantData(business){
//const plnb = ["Lunches", "Dinner", "Salads", "Cravings"];
const hcs = ["Muffins", "Apple Cake", "Banana Cake", "Bread"];
const sarmaU = ["Cassandra Get Started", "Install Cassandra", "Cluser Cassandra","DataStax and Cassandra", "Datastax"];
const prjYard = ["Stunning Portfolios", "Standout in front of recruiters", "AI ML skills"];
switch(business)
{
case "PLN":
return plnb[Math.floor(Math.random() * plnb.length)];
break;
case "HCS":
return hcs[Math.floor(Math.random() * hcs.length)];
break;
case "Sharma-Udemy":
return sarmaU[Math.floor(Math.random() * sarmaU.length)];
break;
case "ProjectsYard":
return prjYard[Math.floor(Math.random() * prjYard.length)];
break;
}
}
function moveBalloon() {
console.log("Animating the baloon!");
// 1. Instant Reset (No animation)
const balloon = document.getElementById('balloon-container');
balloon.style.transition = 'all 10s ease';
balloon.style.transform = 'translateX(800px)'; //almost to the edge
balloon.style.opacity = "1";
// Step 2: Reset position and fade back in after it's hidden
setTimeout(() => {
// Turn off transition so it "teleports" back instantly
balloon.style.transition = 'none';
balloon.style.transform = 'translateX(0)';
// Trigger fade in at original position
setTimeout(() => {
balloon.style.transition = 'opacity 1s ease';
balloon.style.opacity = '1';
}, 100); // Small buffer to let the "none" transition take effect
}, 10000); // Let's do the animation for 10 secs
}
postAdv();//posting it one time
const intervalId = setInterval(postAdv, 300000);
**/
/**
function get_api_results(result, container, api_method){
callGradioAPI(result, api_method)
.then(data => {
if (data) {
console.log('Received data:', data);
//if (api_method == "/call_private_api") {
container.value = data;
container.textContent = data;
//}
return data;
}
else{
console.log("No data received");
}
});
}
consoleArea.addEventListener('keydown', function(event) {
if (event.key === 'Enter') {
//not sure if we need below to prevent the default behaviour
event.preventDefault();
console.log('Enter key pressed! Perform action.');
//get the entered value
let command = consoleArea.value;
//call_api(command);
//we will use a different method to call the LLM
fetchDataWithStatus(command, "/call_private_api", consoleArea);
//let result = get_api_results(command, consoleArea, "/call_private_api");
//console.log("data is: " + result);
consoleArea.value = "";//null the value
}
});
//adding a double click event to clear the contents for next question
consoleArea.addEventListener('dblclick', function(event) {
console.log("am i double clicked!!");
consoleArea.value = ""; //clearning for next question
});
**/
/**
//code for getting structured llm
const userFeedback = document.getElementById('feedback');
const structBtn = document.getElementById('structure');
structBtn.addEventListener('click', () => {
//caputre the value ented in the text area
let feedback = userFeedback.value;
console.log("Get structure button clicekd! " + feedback);
userFeedback.value = ""; //clear the content
let result = get_api_results(feedback, userFeedback, "/user_feedback");
});
//adding a double click event to clear the contents for next question
userFeedback.addEventListener('dblclick', function(event) {
console.log("userFeedback double clicked!!");
userFeedback.value = ""; //clearning for next question
});
const clearFeedback = document.getElementById('feedbackClr');
clearFeedback.addEventListener('click', function(event) {
console.log("Clearing feedback!!");
userFeedback.value = ""; //clearning for next question
});
//we will try to send some updates to the client, while we are waiting for the results
//we will replace this with some advertisements for the businesses
const messages = [
"While we gather data, please visit Sarma's Udemy courses...",
"As we are digging deeper, please visit ProjectsYard website...",
"Almost there, check for Cake design's at Harshali's ...",
"Double-checking the results...",
"Just a few more seconds, hmm, its taking longer than usual..."
];
async function fetchDataWithStatus(userInput, api_method, consoleArea) {
console.log("Am i getting called for a API call!!");
let messageIndex = 0;
// Update UI every 5 seconds
const statusInterval = setInterval(() => {
const nextMessage = messages[messageIndex % messages.length];
console.log(nextMessage); // Replace with your UI update logic
consoleArea.value = nextMessage;
messageIndex++;
}, 7000);
try {
const response = await callGradioAPI(userInput, api_method);
const data = await response;
consoleArea.value = data;
console.log("Success!", data);
} catch (error) {
console.error("Failed to fetch data:", error);
} finally {
// Ensure the messages stop immediately when the call ends
clearInterval(statusInterval);
console.log("Task complete.");
}
}
**/
</script>
<script>
// Pointing to my hf pocketbase cms url
//const pb = new PocketBase('https://rr19tech-retropocketbasecms.hf.space');
const pb = new PocketBase('https://rr20tech-PosterBoardCMS.hf.space');
const loginSection = document.getElementById('login-section');
const userSection = document.getElementById('user-section');
const message = document.getElementById('message');
// Check auth status on load
updateUI();
async function doLogin() {
const email = document.getElementById('email').value;
const pass = document.getElementById('password').value;
try {
// 3. Authenticate
//await pb.collection('users').authWithPassword(email, pass);
const authData = await pb.collection('users').authWithPassword(email, pass);
//get the role
const userRole = authData.record.role;
console.log("User Role is: " + userRole);
if (userRole == "writer"){
message.innerText = "Login successful!";
// Redirect the user to a custom page
window.location.href = './Nature_Articles.html';
message.style.color = "green";
}
if (userRole == "ai_writer"){
message.innerText = "Login successful!";
// Redirect the user to a custom page
window.location.href = './AI_Articles.html';
message.style.color = "blue";
}
updateUI();
} catch (err) {
message.innerText = "Error: " + err.message;
message.style.color = "red";
}
}
function doLogout() {
pb.authStore.clear();
updateUI();
// Redirect the user to a custom page
window.location.href = './index.html';
message.innerText = "Logged out.";
}
function updateUI() {
if (pb.authStore.isValid) {
loginSection.classList.add('hidden');
userSection.classList.remove('hidden');
document.getElementById('user-email').innerText = `Logged in as: ${pb.authStore.model.email}`;
} else {
loginSection.classList.remove('hidden');
userSection.classList.add('hidden');
}
}
async function loadArticles() {
const natureContainer = document.getElementById("Nature");
try {
// Fetch records. API rules enforce that only 'published' items return.
const records = await pb.collection('nature_posts').getFullList({
sort: '-created',
});
if (records.length === 0) {
console.log("No records");
return;
}
const articles = records.map(article => {console.log(article.short_summary); return article.full_text;});
console.log("Total articles: " + records.length);
//natureContainer.innerHTML = articles;
}
catch (error) {
console.error('Failed to load articles:', error);
//container.innerHTML = '<p class="text-red-500">Error loading content.</p>';
}
}
//loadArticles();
//console.log("Articles are: " + articles);
</script>
<div class="disclaimer"><span >Disclaimer: </span><p>All information presented is sourced from the respective business owners and is intended for informational purposes only.</p></div>
</body>
</html>
|