diff --git a/backend/seed.js b/backend/seed.js index f125fcd..40e578e 100644 --- a/backend/seed.js +++ b/backend/seed.js @@ -16,8 +16,8 @@ const { generateSalt, hashPassword } = require('./utils/hash'); // ---- Default admin credentials (change after first login) ---- const ADMIN = { username: 'admin', - email: process.env.SEED_ADMIN_EMAIL || 'admin@ai-solutions.com', - password: process.env.SEED_ADMIN_PASSWORD || 'Admin@2026!', + email: process.env.SEED_ADMIN_EMAIL || 'kit24h.ismt.edu.np', + password: process.env.SEED_ADMIN_PASSWORD || 'Admin@234', }; const solutions = [ diff --git a/public/favicon-32.png b/public/favicon-32.png new file mode 100644 index 0000000..7bd203a Binary files /dev/null and b/public/favicon-32.png differ diff --git a/public/favicon-64.png b/public/favicon-64.png new file mode 100644 index 0000000..6d211ec Binary files /dev/null and b/public/favicon-64.png differ diff --git a/public/favicon.ico b/public/favicon.ico index a11777c..46ef26c 100644 Binary files a/public/favicon.ico and b/public/favicon.ico differ diff --git a/public/index.html b/public/index.html index 4e52e5f..1af77b6 100644 --- a/public/index.html +++ b/public/index.html @@ -2,6 +2,8 @@
+ + diff --git a/public/logo-lockup.png b/public/logo-lockup.png new file mode 100644 index 0000000..4cff3f0 Binary files /dev/null and b/public/logo-lockup.png differ diff --git a/public/logo.png b/public/logo.png new file mode 100644 index 0000000..e47dc5d Binary files /dev/null and b/public/logo.png differ diff --git a/public/logo192.png b/public/logo192.png index fc44b0a..bb854c7 100644 Binary files a/public/logo192.png and b/public/logo192.png differ diff --git a/public/logo512.png b/public/logo512.png index a4e47a6..2876715 100644 Binary files a/public/logo512.png and b/public/logo512.png differ diff --git a/public/manifest.json b/public/manifest.json index 080d6c7..2b924b1 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -1,6 +1,6 @@ { - "short_name": "React App", - "name": "Create React App Sample", + "short_name": "AI-Solutions", + "name": "AI-Solutions — Digital Employee Experience", "icons": [ { "src": "favicon.ico", @@ -20,6 +20,6 @@ ], "start_url": ".", "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" + "theme_color": "#e8590c", + "background_color": "#f7f3ee" } diff --git a/scripts/make-icons.js b/scripts/make-icons.js new file mode 100644 index 0000000..4cb987a --- /dev/null +++ b/scripts/make-icons.js @@ -0,0 +1,38 @@ +// One-off: crop the brain-network icon out of public/logo.png (a wide +// lockup) into square app icons / favicons. Run: node scripts/make-icons.js +const path = require('path'); +const Jimp = require('jimp'); + +const SRC = path.resolve(__dirname, '../public/logo.png'); +const OUT = path.resolve(__dirname, '../public'); + +(async () => { + const img = await Jimp.read(SRC); + const W = img.bitmap.width; + const H = img.bitmap.height; + + // The icon sits on the left of the lockup. Crop a square around it. + const side = Math.round(H * 0.60); + const cx = Math.round(W * 0.285); + const cy = Math.round(H * 0.52); + let x = Math.max(0, Math.round(cx - side / 2)); + let y = Math.max(0, Math.round(cy - side / 2)); + if (x + side > W) x = W - side; + if (y + side > H) y = H - side; + + const icon = img.clone().crop(x, y, side, side); + + await icon.clone().resize(512, 512).writeAsync(path.join(OUT, 'logo512.png')); + await icon.clone().resize(192, 192).writeAsync(path.join(OUT, 'logo192.png')); + await icon.clone().resize(64, 64).writeAsync(path.join(OUT, 'favicon-64.png')); + await icon.clone().resize(32, 32).writeAsync(path.join(OUT, 'favicon-32.png')); + + // Tight horizontal lockup for the navbar/footer — trim the uniform + // cream border so the logo isn't tiny when scaled to nav height. + const lockup = img.clone().autocrop(0.02); + await lockup.writeAsync(path.join(OUT, 'logo-lockup.png')); + + console.log(`source ${W}x${H} — icon square ${side}px at (${x}, ${y})`); + console.log(`lockup ${lockup.bitmap.width}x${lockup.bitmap.height}`); + console.log('wrote logo512, logo192, favicon-64, favicon-32, logo-lockup'); +})().catch((e) => { console.error(e); process.exit(1); }); diff --git a/src/components/Brand.js b/src/components/Brand.js index 38495db..03246e2 100644 --- a/src/components/Brand.js +++ b/src/components/Brand.js @@ -1,19 +1,22 @@ -// Brand mark — mono wordmark + dark rounded "AI" square (DESIGN.md §Brand). +// Brand mark — the AI-Solutions logo lockup (public/logo-lockup.png). +// On dark surfaces it sits on a light rounded plate so it stays legible. import { Link } from 'react-router-dom'; function Brand({ to = '/', onDark = false }) { - const inner = ( - - AI - - ai-solutions - - + const img = ( +