Rename brand from elixify to limelite
This commit is contained in:
+1
-1
@@ -18,7 +18,7 @@ services:
|
|||||||
- "9501:5000"
|
- "9501:5000"
|
||||||
environment:
|
environment:
|
||||||
- PORT=5000
|
- PORT=5000
|
||||||
- MONGO_URI=mongodb://mongo:27017/elixify
|
- MONGO_URI=mongodb://mongo:27017/limelite
|
||||||
# The rest are read from backend/.env or can be defined here
|
# The rest are read from backend/.env or can be defined here
|
||||||
env_file:
|
env_file:
|
||||||
- ./backend/.env
|
- ./backend/.env
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 24 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 82 KiB |
@@ -305,7 +305,7 @@ const AnalysisResultPage = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handleSignupSubmit = async () => {
|
const handleSignupSubmit = async () => {
|
||||||
// const db = JSON.parse(localStorage.getItem('elixify_users') || '{}');
|
// const db = JSON.parse(localStorage.getItem('limelite_users') || '{}');
|
||||||
// const existingUser = db[formData.phone];
|
// const existingUser = db[formData.phone];
|
||||||
const existingUser = false; // logic moved to backend, or we can check via api but it's fine
|
const existingUser = false; // logic moved to backend, or we can check via api but it's fine
|
||||||
|
|
||||||
@@ -457,7 +457,7 @@ const AnalysisResultPage = () => {
|
|||||||
const pdfHeight = (canvas.height * pdfWidth) / canvas.width;
|
const pdfHeight = (canvas.height * pdfWidth) / canvas.width;
|
||||||
|
|
||||||
pdf.addImage(imgData, 'PNG', 0, 0, pdfWidth, pdfHeight);
|
pdf.addImage(imgData, 'PNG', 0, 0, pdfWidth, pdfHeight);
|
||||||
pdf.save(`Elixify_Skin_Report_${formData.name || 'User'}.pdf`);
|
pdf.save(`Limelite_Skin_Report_${formData.name || 'User'}.pdf`);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error("PDF Generation Error:", err);
|
console.error("PDF Generation Error:", err);
|
||||||
alert("Failed to generate PDF. Please try again.");
|
alert("Failed to generate PDF. Please try again.");
|
||||||
@@ -532,7 +532,7 @@ const AnalysisResultPage = () => {
|
|||||||
{/* Header (Matching App.js) */}
|
{/* Header (Matching App.js) */}
|
||||||
<header className="fixed top-0 left-0 right-0 z-50 py-4 px-6 flex items-center justify-between bg-[#0097C3] shadow-lg">
|
<header className="fixed top-0 left-0 right-0 z-50 py-4 px-6 flex items-center justify-between bg-[#0097C3] shadow-lg">
|
||||||
<div className="flex items-center gap-4">
|
<div className="flex items-center gap-4">
|
||||||
<img src={process.env.PUBLIC_URL + '/assets/images/elixify_logo.png'} alt="Elixify Logo" className="h-12 md:h-16 w-auto brightness-0 invert" />
|
<img src={process.env.PUBLIC_URL + '/assets/images/limelite_logo.png'} alt="Limelite Logo" className="h-12 md:h-16 w-auto brightness-0 invert" />
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-center gap-4">
|
<div className="flex items-center gap-4">
|
||||||
<button
|
<button
|
||||||
@@ -796,7 +796,7 @@ const AnalysisResultPage = () => {
|
|||||||
<div className="flex gap-3">
|
<div className="flex gap-3">
|
||||||
<span className="text-black/40 mt-1.5 font-bold">•</span>
|
<span className="text-black/40 mt-1.5 font-bold">•</span>
|
||||||
<p className="text-[15px] leading-relaxed text-black/70 font-medium">
|
<p className="text-[15px] leading-relaxed text-black/70 font-medium">
|
||||||
To access previous reports, please contact us at <span className="text-black font-semibold">hello@elixify.com</span>
|
To access previous reports, please contact us at <span className="text-black font-semibold">hello@limelite.com</span>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex gap-3">
|
<div className="flex gap-3">
|
||||||
@@ -841,7 +841,7 @@ const AnalysisResultPage = () => {
|
|||||||
{/* Header Section */}
|
{/* Header Section */}
|
||||||
<div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', marginBottom: '15px' }}>
|
<div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', marginBottom: '15px' }}>
|
||||||
<div style={{ width: '120px' }}>
|
<div style={{ width: '120px' }}>
|
||||||
<img src={process.env.PUBLIC_URL + '/assets/images/elixify_logo.png'} style={{ height: '45px', objectFit: 'contain' }} alt="Logo" />
|
<img src={process.env.PUBLIC_URL + '/assets/images/limelite_logo.png'} style={{ height: '45px', objectFit: 'contain' }} alt="Logo" />
|
||||||
</div>
|
</div>
|
||||||
<div style={{ flex: 1, textAlign: 'center' }}>
|
<div style={{ flex: 1, textAlign: 'center' }}>
|
||||||
<h1 style={{ fontSize: '28px', fontWeight: '900', margin: 0, textTransform: 'uppercase', letterSpacing: '0.02em', color: '#0097C3', fontFamily: "'Playfair Display', serif" }}>Skin Analysis Report</h1>
|
<h1 style={{ fontSize: '28px', fontWeight: '900', margin: 0, textTransform: 'uppercase', letterSpacing: '0.02em', color: '#0097C3', fontFamily: "'Playfair Display', serif" }}>Skin Analysis Report</h1>
|
||||||
@@ -994,11 +994,11 @@ const AnalysisResultPage = () => {
|
|||||||
{/* Minimalist Footer */}
|
{/* Minimalist Footer */}
|
||||||
<div style={{ marginTop: 'auto', borderTop: '0.5px solid #eee', paddingTop: '15px' }}>
|
<div style={{ marginTop: 'auto', borderTop: '0.5px solid #eee', paddingTop: '15px' }}>
|
||||||
<p style={{ margin: '0 0 10px 0', fontSize: '9px', color: '#b3b3b3', textAlign: 'center', fontStyle: 'italic' }}>
|
<p style={{ margin: '0 0 10px 0', fontSize: '9px', color: '#b3b3b3', textAlign: 'center', fontStyle: 'italic' }}>
|
||||||
* This diagnostic data is interpreted by Elixify AI Skin Vision. For detailed medical prescriptions, please book a 1-on-1 therapist consultation.
|
* This diagnostic data is interpreted by Limelite AI Skin Vision. For detailed medical prescriptions, please book a 1-on-1 therapist consultation.
|
||||||
</p>
|
</p>
|
||||||
<div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>
|
<div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}>
|
||||||
<p style={{ margin: 0, fontSize: '10px', fontWeight: '800', color: '#1a1a1a' }}>ELIXIFY CLINICAL SYSTEMS</p>
|
<p style={{ margin: 0, fontSize: '10px', fontWeight: '800', color: '#1a1a1a' }}>LIMELITE CLINICAL SYSTEMS</p>
|
||||||
<p style={{ margin: 0, fontSize: '9px', color: '#999' }}>support@elixify.com | elixify.com</p>
|
<p style={{ margin: 0, fontSize: '9px', color: '#999' }}>support@limelite.com | limelite.com</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+2
-2
@@ -397,7 +397,7 @@ const App = () => {
|
|||||||
{/* Header */}
|
{/* Header */}
|
||||||
<header className="fixed top-0 left-0 right-0 z-[60] py-4 px-6 flex items-center justify-between bg-[#0097C3] shadow-lg">
|
<header className="fixed top-0 left-0 right-0 z-[60] py-4 px-6 flex items-center justify-between bg-[#0097C3] shadow-lg">
|
||||||
<div className="flex items-center gap-4">
|
<div className="flex items-center gap-4">
|
||||||
<img src={process.env.PUBLIC_URL + '/assets/images/elixify_logo.png'} alt="Elixify Logo" className="h-12 md:h-16 w-auto brightness-0 invert" />
|
<img src={process.env.PUBLIC_URL + '/assets/images/limelite_logo.png'} alt="Limelite Logo" className="h-12 md:h-16 w-auto brightness-0 invert" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="flex items-center gap-4">
|
<div className="flex items-center gap-4">
|
||||||
@@ -635,7 +635,7 @@ const App = () => {
|
|||||||
<div className="flex items-start gap-4">
|
<div className="flex items-start gap-4">
|
||||||
<div className="w-1.5 h-1.5 rounded-full bg-gray-400 mt-2.5 shrink-0"></div>
|
<div className="w-1.5 h-1.5 rounded-full bg-gray-400 mt-2.5 shrink-0"></div>
|
||||||
<p className="text-lg text-gray-700 leading-relaxed">
|
<p className="text-lg text-gray-700 leading-relaxed">
|
||||||
To access previous reports, please contact us at <a href="mailto:hello@elixify.com" className="font-bold text-black">hello@elixify.com</a>
|
To access previous reports, please contact us at <a href="mailto:hello@limelite.com" className="font-bold text-black">hello@limelite.com</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -33,8 +33,8 @@ const DashboardPage = () => {
|
|||||||
|
|
||||||
// Settings state
|
// Settings state
|
||||||
const [settings, setSettings] = useState({
|
const [settings, setSettings] = useState({
|
||||||
siteName: 'Elixify Skin Analyser',
|
siteName: 'Limelite Skin Analyser',
|
||||||
adminEmail: 'olivia@elixify.com',
|
adminEmail: 'olivia@limelite.com',
|
||||||
whatsappNotifications: true,
|
whatsappNotifications: true,
|
||||||
autoArchive: false
|
autoArchive: false
|
||||||
});
|
});
|
||||||
@@ -103,7 +103,7 @@ const DashboardPage = () => {
|
|||||||
{/* Sidebar */}
|
{/* Sidebar */}
|
||||||
<aside className="w-64 bg-[#0097C3] text-white flex flex-col shrink-0">
|
<aside className="w-64 bg-[#0097C3] text-white flex flex-col shrink-0">
|
||||||
<div className="p-6 mb-4">
|
<div className="p-6 mb-4">
|
||||||
<img src={process.env.PUBLIC_URL + '/assets/images/elixify_logo.png'} alt="ELIXIFY" className="h-10 w-auto brightness-0 invert" />
|
<img src={process.env.PUBLIC_URL + '/assets/images/limelite_logo.png'} alt="LIMELITE" className="h-10 w-auto brightness-0 invert" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<nav className="flex-1 px-0 mt-4">
|
<nav className="flex-1 px-0 mt-4">
|
||||||
@@ -137,7 +137,7 @@ const DashboardPage = () => {
|
|||||||
LA
|
LA
|
||||||
</div>
|
</div>
|
||||||
<div className="flex-1 min-w-0">
|
<div className="flex-1 min-w-0">
|
||||||
<p className="text-[13px] font-bold truncate">Elixify Admin</p>
|
<p className="text-[13px] font-bold truncate">Limelite Admin</p>
|
||||||
<p className="text-[10px] text-white/70 truncate tracking-wide">8778913301</p>
|
<p className="text-[10px] text-white/70 truncate tracking-wide">8778913301</p>
|
||||||
</div>
|
</div>
|
||||||
<button
|
<button
|
||||||
@@ -317,7 +317,7 @@ const DashboardPage = () => {
|
|||||||
<div className="flex items-start gap-4">
|
<div className="flex items-start gap-4">
|
||||||
<div className="w-2 h-2 rounded-full bg-gray-500 mt-2.5 shrink-0"></div>
|
<div className="w-2 h-2 rounded-full bg-gray-500 mt-2.5 shrink-0"></div>
|
||||||
<p className="text-xl text-gray-600 leading-relaxed">
|
<p className="text-xl text-gray-600 leading-relaxed">
|
||||||
To access previous reports, please contact us at <i className="text-gray-800 font-medium">hello@elixify.com</i>
|
To access previous reports, please contact us at <i className="text-gray-800 font-medium">hello@limelite.com</i>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ const LoginPage = () => {
|
|||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
setError('');
|
setError('');
|
||||||
|
|
||||||
if (credentials.email === 'admin@elixify.com' && credentials.password === 'admin@2026') {
|
if (credentials.email === 'admin@limelite.com' && credentials.password === 'admin@2026') {
|
||||||
navigate('/dashboard');
|
navigate('/dashboard');
|
||||||
} else {
|
} else {
|
||||||
setError('Incorrect admin credentials');
|
setError('Incorrect admin credentials');
|
||||||
@@ -24,7 +24,7 @@ const LoginPage = () => {
|
|||||||
<div className="bg-white w-full max-w-md p-10 shadow-2xl rounded-none">
|
<div className="bg-white w-full max-w-md p-10 shadow-2xl rounded-none">
|
||||||
<div className="flex flex-col items-center mb-10">
|
<div className="flex flex-col items-center mb-10">
|
||||||
<div className="bg-[#0097C3] p-4 mb-6">
|
<div className="bg-[#0097C3] p-4 mb-6">
|
||||||
<img src={process.env.PUBLIC_URL + '/assets/images/elixify_logo.png'} alt="Elixify" className="h-8 brightness-0 invert" />
|
<img src={process.env.PUBLIC_URL + '/assets/images/limelite_logo.png'} alt="Limelite" className="h-8 brightness-0 invert" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -37,7 +37,7 @@ const LoginPage = () => {
|
|||||||
type="email"
|
type="email"
|
||||||
required
|
required
|
||||||
className="w-full border-b-2 border-gray-200 py-3 focus:outline-none focus:border-[#0097C3] transition-colors text-black"
|
className="w-full border-b-2 border-gray-200 py-3 focus:outline-none focus:border-[#0097C3] transition-colors text-black"
|
||||||
placeholder="olivia@elixify.com"
|
placeholder="olivia@limelite.com"
|
||||||
value={credentials.email}
|
value={credentials.email}
|
||||||
onChange={(e) => setCredentials({ ...credentials, email: e.target.value })}
|
onChange={(e) => setCredentials({ ...credentials, email: e.target.value })}
|
||||||
/>
|
/>
|
||||||
|
|||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
export const saveToDB = (key, value) => {
|
export const saveToDB = (key, value) => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
const request = indexedDB.open('ElixifyDB', 1);
|
const request = indexedDB.open('LimeliteDB', 1);
|
||||||
request.onupgradeneeded = e => {
|
request.onupgradeneeded = e => {
|
||||||
const db = e.target.result;
|
const db = e.target.result;
|
||||||
if (!db.objectStoreNames.contains('analysisStore')) {
|
if (!db.objectStoreNames.contains('analysisStore')) {
|
||||||
@@ -21,7 +21,7 @@ export const saveToDB = (key, value) => {
|
|||||||
|
|
||||||
export const loadFromDB = (key) => {
|
export const loadFromDB = (key) => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
const request = indexedDB.open('ElixifyDB', 1);
|
const request = indexedDB.open('LimeliteDB', 1);
|
||||||
request.onupgradeneeded = e => {
|
request.onupgradeneeded = e => {
|
||||||
const db = e.target.result;
|
const db = e.target.result;
|
||||||
if (!db.objectStoreNames.contains('analysisStore')) {
|
if (!db.objectStoreNames.contains('analysisStore')) {
|
||||||
|
|||||||
Reference in New Issue
Block a user