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]
jobs:
@ -18,6 +18,6 @@ jobs:
gcr.io/kaniko-project/executor:latest \
--context=dir://"$GITHUB_WORKSPACE" \
--dockerfile="$GITHUB_WORKSPACE/Dockerfile" \
--destination=192.168.8.250:5000/curaflow:latest \
--destination=192.168.8.250:5000/Curio:latest \
--insecure \
--skip-tls-verify

View File

@ -19,7 +19,7 @@ class BotLogic {
if (text.includes('hi') && !this.states[`${patientId}_lang`]) {
this.states[patientId] = 'SELECT_LANG';
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"]
};
}
@ -56,7 +56,7 @@ class BotLogic {
this.states[patientId] = 'TRIAGE_START';
return {
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 {
return {

View File

@ -6,7 +6,7 @@ class ConfigManager {
constructor() {
this.tenants = {
'default': {
name: "CuraFlow Clinic",
name: "Curio Clinic",
logo: "C",
primaryColor: "#0F172A",
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).
*/

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
* - Max 3 online bookings (Hard Cap)
* - 5 Walk-in slots

View File

@ -35,5 +35,5 @@ app.post('/whatsapp/webhook', async (req, res) => {
});
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>
<meta charset="UTF-8">
<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="dashboard.css">
<link rel="stylesheet" href="billing.css">
@ -13,7 +13,7 @@
<aside class="sidebar">
<div class="logo">
<span class="logo-icon">C</span>
<span class="logo-text">CuraFlow</span>
<span class="logo-text">Curio</span>
</div>
<nav class="side-nav">
<a href="dashboard.html"><span>🏠</span> Overview</a>

View File

@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<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="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">
@ -13,7 +13,7 @@
<aside class="sidebar">
<div class="logo">
<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>
<nav class="side-nav">
<a href="#" class="active" onclick="showSection('overview')"><span>🏠</span> Overview</a>

View File

@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<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.">
<link rel="stylesheet" href="index.css">
<link rel="preconnect" href="https://fonts.googleapis.com">
@ -16,7 +16,7 @@
<div class="container">
<div class="logo">
<span class="logo-icon">C</span>
<span class="logo-text">CuraFlow</span>
<span class="logo-text">Curio</span>
</div>
<div class="nav-links">
<a href="#features">Features</a>
@ -50,7 +50,7 @@
</div>
<div class="hero-visual">
<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>
@ -66,7 +66,7 @@
<div class="phone-mockup">
<div class="chat-header">
<div class="status-dot"></div>
<span>CuraFlow Clinic Assistant</span>
<span>Curio Clinic Assistant</span>
</div>
<div class="chat-body" id="chatBody">
<div class="msg bot">Hello! Welcome to Dr. Sharma's Clinic. How can I help you today?</div>
@ -190,7 +190,7 @@
<footer>
<div class="container">
<p>&copy; 2026 CuraFlow Technologies. Empowering healthcare in Bharat.</p>
<p>&copy; 2026 Curio Technologies. Empowering healthcare in Bharat.</p>
</div>
</footer>

View File

@ -47,7 +47,7 @@ function handleOptionClick() {
chatBody.appendChild(optDiv);
bindOptions();
} 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);
} else if (userMsg === 'Check Queue' || userMsg === 'Check Queue Status') {
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
kind: ApisixRoute
metadata:
name: curaflow-route
namespace: curaflow
name: Curio-route
namespace: Curio
spec:
http:
- name: curaflow-rule
- name: Curio-rule
match:
hosts:
- curaflow.applaude.net
- Curio.applaude.net
paths:
- /*
backends:
- serviceName: curaflow-app
- serviceName: Curio-app
servicePort: 80

View File

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

View File

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

View File

@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<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="dashboard.css">
<link rel="stylesheet" href="lab.css">
@ -13,7 +13,7 @@
<aside class="sidebar">
<div class="logo">
<span class="logo-icon">C</span>
<span class="logo-text">CuraFlow</span>
<span class="logo-text">Curio</span>
</div>
<nav class="side-nav">
<a href="dashboard.html"><span>🏠</span> Overview</a>

View File

@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<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="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">
@ -14,7 +14,7 @@
<div class="auth-card">
<div class="auth-logo">
<span class="logo-icon">C</span>
<h1>CuraFlow</h1>
<h1>Curio</h1>
</div>
<h2>Welcome Back</h2>
<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>
</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>

View File

@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<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="dashboard.css">
<link rel="stylesheet" href="pharmacy.css">
@ -13,7 +13,7 @@
<aside class="sidebar">
<div class="logo">
<span class="logo-icon">C</span>
<span class="logo-text">CuraFlow</span>
<span class="logo-text">Curio</span>
</div>
<nav class="side-nav">
<a href="dashboard.html"><span>🏠</span> Overview</a>

View File

@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<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="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">
@ -13,7 +13,7 @@
<div class="auth-card">
<div class="auth-logo">
<span class="logo-icon">C</span>
<h1>CuraFlow</h1>
<h1>Curio</h1>
</div>
<h2>Register Your Clinic</h2>
<p>Join Bharat's first WhatsApp-native HMS.</p>

View File

@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<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="dashboard.css">
<link rel="stylesheet" href="settings.css">
@ -13,7 +13,7 @@
<aside class="sidebar">
<div class="logo">
<span class="logo-icon">C</span>
<span class="logo-text">CuraFlow</span>
<span class="logo-text">Curio</span>
</div>
<nav class="side-nav">
<a href="dashboard.html"><span>🏠</span> Overview</a>

View File

@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8">
<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="dashboard.css">
<link rel="stylesheet" href="staff.css">
@ -13,7 +13,7 @@
<aside class="sidebar">
<div class="logo">
<span class="logo-icon">C</span>
<span class="logo-text">CuraFlow</span>
<span class="logo-text">Curio</span>
</div>
<nav class="side-nav">
<a href="dashboard.html"><span>🏠</span> Overview</a>

View File

@ -5,10 +5,10 @@
async function loadTenantBranding() {
// Determine tenant from URL (e.g., ?tenant=sharma-clinic) or localStorage
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
localStorage.setItem('curaflow_tenant', tenantId);
localStorage.setItem('Curio_tenant', tenantId);
try {
const response = await fetch(`/api/config/${tenantId}`);
@ -33,7 +33,7 @@ function applyBranding(config) {
logoIcons.forEach(icon => icon.innerText = config.logo);
// Update Document Title
document.title = `${config.name} | CuraFlow`;
document.title = `${config.name} | Curio`;
// Update instances of hospital name in text
document.querySelectorAll('[data-tenant-name]').forEach(el => {