new updates
Build Curio HMS / build-and-deploy (push) Failing after 10s Details

This commit is contained in:
Deep Koluguri 2026-05-13 15:00:05 -04:00
parent e5e79d55ce
commit ad5035233a
20 changed files with 54 additions and 54 deletions

View File

@ -1,4 +1,4 @@
name: Build CuraFlow HMS name: Build Curio HMS
on: [push] on: [push]
jobs: jobs:
@ -18,6 +18,6 @@ jobs:
gcr.io/kaniko-project/executor:latest \ gcr.io/kaniko-project/executor:latest \
--context=dir://"$GITHUB_WORKSPACE" \ --context=dir://"$GITHUB_WORKSPACE" \
--dockerfile="$GITHUB_WORKSPACE/Dockerfile" \ --dockerfile="$GITHUB_WORKSPACE/Dockerfile" \
--destination=192.168.8.250:5000/curaflow:latest \ --destination=192.168.8.250:5000/Curio:latest \
--insecure \ --insecure \
--skip-tls-verify --skip-tls-verify

View File

@ -19,7 +19,7 @@ class BotLogic {
if (text.includes('hi') && !this.states[`${patientId}_lang`]) { if (text.includes('hi') && !this.states[`${patientId}_lang`]) {
this.states[patientId] = 'SELECT_LANG'; this.states[patientId] = 'SELECT_LANG';
return { return {
reply: "Welcome to CuraFlow! Please select your language / भाषा चुनें / భాషను ఎంచుకోండి:\n\n1. English\n2. Hindi (हिंदी)\n3. Telugu (తెలుగు)", reply: "Welcome to Curio! Please select your language / भाषा चुनें / భాషను ఎంచుకోండి:\n\n1. English\n2. Hindi (हिंदी)\n3. Telugu (తెలుగు)",
buttons: ["English", "Hindi", "Telugu"] buttons: ["English", "Hindi", "Telugu"]
}; };
} }
@ -56,7 +56,7 @@ class BotLogic {
this.states[patientId] = 'TRIAGE_START'; this.states[patientId] = 'TRIAGE_START';
return { return {
reply: i18n.t(lang, 'triage_ask', { token: result.token }) + reply: i18n.t(lang, 'triage_ask', { token: result.token }) +
` \n\n💳 *Payment Required*: Please pay ₹${result.fee} to activate your token: http://razorpay.me/curaflow_mock`, ` \n\n💳 *Payment Required*: Please pay ₹${result.fee} to activate your token: http://razorpay.me/Curio_mock`,
}; };
} else { } else {
return { return {

View File

@ -6,7 +6,7 @@ class ConfigManager {
constructor() { constructor() {
this.tenants = { this.tenants = {
'default': { 'default': {
name: "CuraFlow Clinic", name: "Curio Clinic",
logo: "C", logo: "C",
primaryColor: "#0F172A", primaryColor: "#0F172A",
secondaryColor: "#38BDF8", secondaryColor: "#38BDF8",

View File

@ -1,5 +1,5 @@
/** /**
* i18n: Translation manager for CuraFlow WhatsApp Bot. * i18n: Translation manager for Curio WhatsApp Bot.
* Supports English (en), Hindi (hi), and Telugu (te). * Supports English (en), Hindi (hi), and Telugu (te).
*/ */

View File

@ -1,5 +1,5 @@
/** /**
* QueueManager: Handles the hybrid slot logic for CuraFlow * QueueManager: Handles the hybrid slot logic for Curio
* - 30-min slots * - 30-min slots
* - Max 3 online bookings (Hard Cap) * - Max 3 online bookings (Hard Cap)
* - 5 Walk-in slots * - 5 Walk-in slots

View File

@ -35,5 +35,5 @@ app.post('/whatsapp/webhook', async (req, res) => {
}); });
app.listen(port, '0.0.0.0', () => { app.listen(port, '0.0.0.0', () => {
console.log(`CuraFlow WhatsApp Mock Server running at http://0.0.0.0:${port}`); console.log(`Curio WhatsApp Mock Server running at http://0.0.0.0:${port}`);
}); });

View File

@ -3,7 +3,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CuraFlow Billing | Hospital Revenue & Accounts</title> <title>Curio Billing | Hospital Revenue & Accounts</title>
<link rel="stylesheet" href="index.css"> <link rel="stylesheet" href="index.css">
<link rel="stylesheet" href="dashboard.css"> <link rel="stylesheet" href="dashboard.css">
<link rel="stylesheet" href="billing.css"> <link rel="stylesheet" href="billing.css">
@ -13,7 +13,7 @@
<aside class="sidebar"> <aside class="sidebar">
<div class="logo"> <div class="logo">
<span class="logo-icon">C</span> <span class="logo-icon">C</span>
<span class="logo-text">CuraFlow</span> <span class="logo-text">Curio</span>
</div> </div>
<nav class="side-nav"> <nav class="side-nav">
<a href="dashboard.html"><span>🏠</span> Overview</a> <a href="dashboard.html"><span>🏠</span> Overview</a>

View File

@ -3,7 +3,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dashboard | CuraFlow</title> <title>Dashboard | Curio</title>
<link rel="stylesheet" href="index.css"> <link rel="stylesheet" href="index.css">
<link rel="stylesheet" href="dashboard.css"> <link rel="stylesheet" href="dashboard.css">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Outfit:wght@600;700&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Outfit:wght@600;700&display=swap" rel="stylesheet">
@ -13,7 +13,7 @@
<aside class="sidebar"> <aside class="sidebar">
<div class="logo"> <div class="logo">
<span class="logo-icon">C</span> <span class="logo-icon">C</span>
<span class="logo-text" data-tenant-name>CuraFlow</span> <span class="logo-text" data-tenant-name>Curio</span>
</div> </div>
<nav class="side-nav"> <nav class="side-nav">
<a href="#" class="active" onclick="showSection('overview')"><span>🏠</span> Overview</a> <a href="#" class="active" onclick="showSection('overview')"><span>🏠</span> Overview</a>

View File

@ -3,7 +3,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CuraFlow | WhatsApp-First Clinic Management</title> <title>Curio | WhatsApp-First Clinic Management</title>
<meta name="description" content="Revolutionizing Indian OPDs with WhatsApp-native queue management, AI triage, and digital patient records."> <meta name="description" content="Revolutionizing Indian OPDs with WhatsApp-native queue management, AI triage, and digital patient records.">
<link rel="stylesheet" href="index.css"> <link rel="stylesheet" href="index.css">
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.googleapis.com">
@ -16,7 +16,7 @@
<div class="container"> <div class="container">
<div class="logo"> <div class="logo">
<span class="logo-icon">C</span> <span class="logo-icon">C</span>
<span class="logo-text">CuraFlow</span> <span class="logo-text">Curio</span>
</div> </div>
<div class="nav-links"> <div class="nav-links">
<a href="#features">Features</a> <a href="#features">Features</a>
@ -50,7 +50,7 @@
</div> </div>
<div class="hero-visual"> <div class="hero-visual">
<div class="image-wrapper"> <div class="image-wrapper">
<img src="curaflow_hero_ui_1778636262274.png" alt="CuraFlow Dashboard Mockup"> <img src="Curio_hero_ui_1778636262274.png" alt="Curio Dashboard Mockup">
</div> </div>
</div> </div>
</div> </div>
@ -66,7 +66,7 @@
<div class="phone-mockup"> <div class="phone-mockup">
<div class="chat-header"> <div class="chat-header">
<div class="status-dot"></div> <div class="status-dot"></div>
<span>CuraFlow Clinic Assistant</span> <span>Curio Clinic Assistant</span>
</div> </div>
<div class="chat-body" id="chatBody"> <div class="chat-body" id="chatBody">
<div class="msg bot">Hello! Welcome to Dr. Sharma's Clinic. How can I help you today?</div> <div class="msg bot">Hello! Welcome to Dr. Sharma's Clinic. How can I help you today?</div>
@ -190,7 +190,7 @@
<footer> <footer>
<div class="container"> <div class="container">
<p>&copy; 2026 CuraFlow Technologies. Empowering healthcare in Bharat.</p> <p>&copy; 2026 Curio Technologies. Empowering healthcare in Bharat.</p>
</div> </div>
</footer> </footer>

View File

@ -47,7 +47,7 @@ function handleOptionClick() {
chatBody.appendChild(optDiv); chatBody.appendChild(optDiv);
bindOptions(); bindOptions();
} else if (userMsg === '10:00 AM' || userMsg === '10:30 AM') { } else if (userMsg === '10:00 AM' || userMsg === '10:30 AM') {
botDiv.innerHTML = `✅ Confirmed! Your token is *#ON-3* for the ${userMsg} slot.<br><br>💳 *Payment Required*: Please pay ₹500 to activate your token: <a href="#">razorpay.me/curaflow</a><br><br>Also, to help Dr. Sharma prepare, could you briefly describe your symptoms?`; botDiv.innerHTML = `✅ Confirmed! Your token is *#ON-3* for the ${userMsg} slot.<br><br>💳 *Payment Required*: Please pay ₹500 to activate your token: <a href="#">razorpay.me/Curio</a><br><br>Also, to help Dr. Sharma prepare, could you briefly describe your symptoms?`;
chatBody.appendChild(botDiv); chatBody.appendChild(botDiv);
} else if (userMsg === 'Check Queue' || userMsg === 'Check Queue Status') { } else if (userMsg === 'Check Queue' || userMsg === 'Check Queue Status') {
botDiv.innerText = "Current status: 5 people ahead of you. Estimated wait time: 25 minutes."; botDiv.innerText = "Current status: 5 people ahead of you. Estimated wait time: 25 minutes.";

View File

@ -1,16 +1,16 @@
apiVersion: apisix.apache.org/v2 apiVersion: apisix.apache.org/v2
kind: ApisixRoute kind: ApisixRoute
metadata: metadata:
name: curaflow-route name: Curio-route
namespace: curaflow namespace: Curio
spec: spec:
http: http:
- name: curaflow-rule - name: Curio-rule
match: match:
hosts: hosts:
- curaflow.applaude.net - Curio.applaude.net
paths: paths:
- /* - /*
backends: backends:
- serviceName: curaflow-app - serviceName: Curio-app
servicePort: 80 servicePort: 80

View File

@ -1,33 +1,33 @@
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: curaflow-app name: Curio-app
spec: spec:
replicas: 2 replicas: 2
selector: selector:
matchLabels: matchLabels:
app: curaflow-app app: Curio-app
template: template:
metadata: metadata:
labels: labels:
app: curaflow-app app: Curio-app
spec: spec:
containers: containers:
- name: curaflow - name: Curio
image: 192.168.8.250:5000/curaflow:latest image: 192.168.8.250:5000/Curio:latest
ports: ports:
- containerPort: 3000 - containerPort: 3000
env: env:
- name: DATABASE_URL - name: DATABASE_URL
value: "postgres://postgres:curaflow_secret@curaflow-db:5432/curaflow" value: "postgres://postgres:Curio_secret@Curio-db:5432/Curio"
--- ---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: curaflow-app name: Curio-app
spec: spec:
selector: selector:
app: curaflow-app app: Curio-app
ports: ports:
- port: 80 - port: 80
targetPort: 3000 targetPort: 3000

View File

@ -1,33 +1,33 @@
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: curaflow-db name: Curio-db
spec: spec:
selector: selector:
matchLabels: matchLabels:
app: curaflow-db app: Curio-db
template: template:
metadata: metadata:
labels: labels:
app: curaflow-db app: Curio-db
spec: spec:
containers: containers:
- name: postgres - name: postgres
image: postgres:15-alpine image: postgres:15-alpine
env: env:
- name: POSTGRES_PASSWORD - name: POSTGRES_PASSWORD
value: "curaflow_secret" value: "Curio_secret"
- name: POSTGRES_DB - name: POSTGRES_DB
value: "curaflow" value: "Curio"
ports: ports:
- containerPort: 5432 - containerPort: 5432
--- ---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: curaflow-db name: Curio-db
spec: spec:
selector: selector:
app: curaflow-db app: Curio-db
ports: ports:
- port: 5432 - port: 5432

View File

@ -3,7 +3,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CuraFlow Lab | Diagnostics & Reports</title> <title>Curio Lab | Diagnostics & Reports</title>
<link rel="stylesheet" href="index.css"> <link rel="stylesheet" href="index.css">
<link rel="stylesheet" href="dashboard.css"> <link rel="stylesheet" href="dashboard.css">
<link rel="stylesheet" href="lab.css"> <link rel="stylesheet" href="lab.css">
@ -13,7 +13,7 @@
<aside class="sidebar"> <aside class="sidebar">
<div class="logo"> <div class="logo">
<span class="logo-icon">C</span> <span class="logo-icon">C</span>
<span class="logo-text">CuraFlow</span> <span class="logo-text">Curio</span>
</div> </div>
<nav class="side-nav"> <nav class="side-nav">
<a href="dashboard.html"><span>🏠</span> Overview</a> <a href="dashboard.html"><span>🏠</span> Overview</a>

View File

@ -3,7 +3,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Login | CuraFlow HMS</title> <title>Login | Curio HMS</title>
<link rel="stylesheet" href="index.css"> <link rel="stylesheet" href="index.css">
<link rel="stylesheet" href="login.css"> <link rel="stylesheet" href="login.css">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Outfit:wght@600;700&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Outfit:wght@600;700&display=swap" rel="stylesheet">
@ -14,7 +14,7 @@
<div class="auth-card"> <div class="auth-card">
<div class="auth-logo"> <div class="auth-logo">
<span class="logo-icon">C</span> <span class="logo-icon">C</span>
<h1>CuraFlow</h1> <h1>Curio</h1>
</div> </div>
<h2>Welcome Back</h2> <h2>Welcome Back</h2>
<p>Login to manage your clinic OPD and accounts.</p> <p>Login to manage your clinic OPD and accounts.</p>
@ -31,7 +31,7 @@
<button type="submit" class="btn-primary auth-btn">Login to Dashboard</button> <button type="submit" class="btn-primary auth-btn">Login to Dashboard</button>
</form> </form>
<p class="auth-footer">New to CuraFlow? <a href="register.html">Register your clinic</a></p> <p class="auth-footer">New to Curio? <a href="register.html">Register your clinic</a></p>
</div> </div>
</div> </div>

View File

@ -3,7 +3,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CuraFlow Pharmacy | Inventory & Billing</title> <title>Curio Pharmacy | Inventory & Billing</title>
<link rel="stylesheet" href="index.css"> <link rel="stylesheet" href="index.css">
<link rel="stylesheet" href="dashboard.css"> <link rel="stylesheet" href="dashboard.css">
<link rel="stylesheet" href="pharmacy.css"> <link rel="stylesheet" href="pharmacy.css">
@ -13,7 +13,7 @@
<aside class="sidebar"> <aside class="sidebar">
<div class="logo"> <div class="logo">
<span class="logo-icon">C</span> <span class="logo-icon">C</span>
<span class="logo-text">CuraFlow</span> <span class="logo-text">Curio</span>
</div> </div>
<nav class="side-nav"> <nav class="side-nav">
<a href="dashboard.html"><span>🏠</span> Overview</a> <a href="dashboard.html"><span>🏠</span> Overview</a>

View File

@ -3,7 +3,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Clinic Registration | CuraFlow HMS</title> <title>Clinic Registration | Curio HMS</title>
<link rel="stylesheet" href="index.css"> <link rel="stylesheet" href="index.css">
<link rel="stylesheet" href="login.css"> <link rel="stylesheet" href="login.css">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Outfit:wght@600;700&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Outfit:wght@600;700&display=swap" rel="stylesheet">
@ -13,7 +13,7 @@
<div class="auth-card"> <div class="auth-card">
<div class="auth-logo"> <div class="auth-logo">
<span class="logo-icon">C</span> <span class="logo-icon">C</span>
<h1>CuraFlow</h1> <h1>Curio</h1>
</div> </div>
<h2>Register Your Clinic</h2> <h2>Register Your Clinic</h2>
<p>Join Bharat's first WhatsApp-native HMS.</p> <p>Join Bharat's first WhatsApp-native HMS.</p>

View File

@ -3,7 +3,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CuraFlow Settings | Hospital Configuration</title> <title>Curio Settings | Hospital Configuration</title>
<link rel="stylesheet" href="index.css"> <link rel="stylesheet" href="index.css">
<link rel="stylesheet" href="dashboard.css"> <link rel="stylesheet" href="dashboard.css">
<link rel="stylesheet" href="settings.css"> <link rel="stylesheet" href="settings.css">
@ -13,7 +13,7 @@
<aside class="sidebar"> <aside class="sidebar">
<div class="logo"> <div class="logo">
<span class="logo-icon">C</span> <span class="logo-icon">C</span>
<span class="logo-text">CuraFlow</span> <span class="logo-text">Curio</span>
</div> </div>
<nav class="side-nav"> <nav class="side-nav">
<a href="dashboard.html"><span>🏠</span> Overview</a> <a href="dashboard.html"><span>🏠</span> Overview</a>

View File

@ -3,7 +3,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CuraFlow Staff | Personnel & Payroll</title> <title>Curio Staff | Personnel & Payroll</title>
<link rel="stylesheet" href="index.css"> <link rel="stylesheet" href="index.css">
<link rel="stylesheet" href="dashboard.css"> <link rel="stylesheet" href="dashboard.css">
<link rel="stylesheet" href="staff.css"> <link rel="stylesheet" href="staff.css">
@ -13,7 +13,7 @@
<aside class="sidebar"> <aside class="sidebar">
<div class="logo"> <div class="logo">
<span class="logo-icon">C</span> <span class="logo-icon">C</span>
<span class="logo-text">CuraFlow</span> <span class="logo-text">Curio</span>
</div> </div>
<nav class="side-nav"> <nav class="side-nav">
<a href="dashboard.html"><span>🏠</span> Overview</a> <a href="dashboard.html"><span>🏠</span> Overview</a>

View File

@ -5,10 +5,10 @@
async function loadTenantBranding() { async function loadTenantBranding() {
// Determine tenant from URL (e.g., ?tenant=sharma-clinic) or localStorage // Determine tenant from URL (e.g., ?tenant=sharma-clinic) or localStorage
const urlParams = new URLSearchParams(window.location.search); const urlParams = new URLSearchParams(window.location.search);
let tenantId = urlParams.get('tenant') || localStorage.getItem('curaflow_tenant') || 'default'; let tenantId = urlParams.get('tenant') || localStorage.getItem('Curio_tenant') || 'default';
// Save to localStorage for persistence across pages // Save to localStorage for persistence across pages
localStorage.setItem('curaflow_tenant', tenantId); localStorage.setItem('Curio_tenant', tenantId);
try { try {
const response = await fetch(`/api/config/${tenantId}`); const response = await fetch(`/api/config/${tenantId}`);
@ -33,7 +33,7 @@ function applyBranding(config) {
logoIcons.forEach(icon => icon.innerText = config.logo); logoIcons.forEach(icon => icon.innerText = config.logo);
// Update Document Title // Update Document Title
document.title = `${config.name} | CuraFlow`; document.title = `${config.name} | Curio`;
// Update instances of hospital name in text // Update instances of hospital name in text
document.querySelectorAll('[data-tenant-name]').forEach(el => { document.querySelectorAll('[data-tenant-name]').forEach(el => {