From f29035ce81802950826d930a58aca2d0de45a4b5 Mon Sep 17 00:00:00 2001 From: Todd Date: Sun, 24 May 2026 13:30:30 -0400 Subject: [PATCH] login --- .gitignore | 3 + client/public/images/operators/Mat.jpeg | Bin 0 -> 5189 bytes .../public/images/operators/barrier-heavy.svg | 27 ++ .../images/operators/barrier-parking.svg | 28 ++ .../images/operators/liftmaster-csl24.jpg | Bin 0 -> 31004 bytes .../images/operators/liftmaster-csw24.jpg | Bin 0 -> 96274 bytes .../images/operators/liftmaster-ihsl24ul.jpg | Bin 0 -> 8768 bytes .../operators/liftmaster-la500-bundle.jpg | Bin 0 -> 86361 bytes .../images/operators/slide-commercial.svg | 30 +++ .../images/operators/slide-residential.svg | 27 ++ .../images/operators/swing-commercial.svg | 31 +++ .../images/operators/swing-residential.svg | 28 ++ client/public/images/operators/techno.jpeg | Bin 0 -> 6437 bytes client/src/App.jsx | 84 ++++-- client/src/components/Login.jsx | 101 +++++++ client/src/components/QuoteSummary.jsx | 63 ++--- client/src/components/StepAccessControl.jsx | 146 +++++++++-- client/src/components/StepGroundLoops.jsx | 109 ++++++-- client/src/components/StepOperator.jsx | 247 +++++++++++++----- client/src/components/Wizard.jsx | 54 +++- client/src/data/pricing.json | 120 --------- client/src/utils/quoteCalculator.js | 117 ++++++--- server/data/pricing.json | 111 +++++--- server/index.js | 78 +++++- server/package-lock.json | 69 ++++- server/package.json | 4 +- 26 files changed, 1092 insertions(+), 385 deletions(-) create mode 100644 client/public/images/operators/Mat.jpeg create mode 100644 client/public/images/operators/barrier-heavy.svg create mode 100644 client/public/images/operators/barrier-parking.svg create mode 100644 client/public/images/operators/liftmaster-csl24.jpg create mode 100644 client/public/images/operators/liftmaster-csw24.jpg create mode 100644 client/public/images/operators/liftmaster-ihsl24ul.jpg create mode 100644 client/public/images/operators/liftmaster-la500-bundle.jpg create mode 100644 client/public/images/operators/slide-commercial.svg create mode 100644 client/public/images/operators/slide-residential.svg create mode 100644 client/public/images/operators/swing-commercial.svg create mode 100644 client/public/images/operators/swing-residential.svg create mode 100644 client/public/images/operators/techno.jpeg create mode 100644 client/src/components/Login.jsx delete mode 100644 client/src/data/pricing.json diff --git a/.gitignore b/.gitignore index 9451024..0668628 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,6 @@ node_modules/ dist/ .DS_Store *.log + +# Environment variables +.env diff --git a/client/public/images/operators/Mat.jpeg b/client/public/images/operators/Mat.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..119c953df78b76ff0c53460be4b62e3657c5d3d4 GIT binary patch literal 5189 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 + + + + + + + + + + + + + + + + + + + + + + + + BG-500 + Heavy Duty Barrier + diff --git a/client/public/images/operators/barrier-parking.svg b/client/public/images/operators/barrier-parking.svg new file mode 100644 index 0000000..f22bc75 --- /dev/null +++ b/client/public/images/operators/barrier-parking.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + BG-200 + Parking Barrier + diff --git a/client/public/images/operators/liftmaster-csl24.jpg b/client/public/images/operators/liftmaster-csl24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..98a32d9c5c7367d3f7060eef445dcf4d24bfba87 GIT binary patch literal 31004 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%0A1OaCqb3#p|tDm9Tmtc1mEz?VvNY8bED5pd2 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 literal 0 HcmV?d00001 diff --git a/client/public/images/operators/liftmaster-csw24.jpg b/client/public/images/operators/liftmaster-csw24.jpg new file mode 100644 index 0000000000000000000000000000000000000000..99c7d42838cffaffc0fb56a55549d1dbfd03a241 GIT binary patch literal 96274 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�zvut= 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�%+_Y^DJ5>a}9+N7gzysYA`M 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 literal 0 HcmV?d00001 diff --git a/client/public/images/operators/liftmaster-ihsl24ul.jpg b/client/public/images/operators/liftmaster-ihsl24ul.jpg new file mode 100644 index 0000000000000000000000000000000000000000..97965e071e106b919f36f303384b06430b3bf326 GIT binary patch literal 8768 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 HoA3YGo@H4B literal 0 HcmV?d00001 diff --git a/client/public/images/operators/slide-commercial.svg b/client/public/images/operators/slide-commercial.svg new file mode 100644 index 0000000..12874a7 --- /dev/null +++ b/client/public/images/operators/slide-commercial.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + SL-3000 + Commercial Slide + diff --git a/client/public/images/operators/slide-residential.svg b/client/public/images/operators/slide-residential.svg new file mode 100644 index 0000000..716fdf6 --- /dev/null +++ b/client/public/images/operators/slide-residential.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + SL-1500 + Light Commercial Slide + diff --git a/client/public/images/operators/swing-commercial.svg b/client/public/images/operators/swing-commercial.svg new file mode 100644 index 0000000..dc963b6 --- /dev/null +++ b/client/public/images/operators/swing-commercial.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SG-2000 + Commercial Swing + diff --git a/client/public/images/operators/swing-residential.svg b/client/public/images/operators/swing-residential.svg new file mode 100644 index 0000000..054ad18 --- /dev/null +++ b/client/public/images/operators/swing-residential.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + SG-1000 + Residential Swing + diff --git a/client/public/images/operators/techno.jpeg b/client/public/images/operators/techno.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..07e1053120e38a24167eda2f3bd985dd185f77cf GIT binary patch literal 6437 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 literal 0 HcmV?d00001 diff --git a/client/src/App.jsx b/client/src/App.jsx index b0ff7e1..efcd20a 100644 --- a/client/src/App.jsx +++ b/client/src/App.jsx @@ -1,46 +1,90 @@ -import { useState, useEffect } from 'react'; +import { useState, useEffect, useCallback } from 'react'; import Wizard from './components/Wizard'; -import pricingData from './data/pricing.json'; +import Login from './components/Login'; export default function App() { const [pricing, setPricing] = useState(null); const [loading, setLoading] = useState(true); + const [authenticated, setAuthenticated] = useState(false); + + const fetchPricing = useCallback(async () => { + try { + const res = await fetch('/api/pricing', { credentials: 'include' }); + if (!res.ok) { + if (res.status === 401) { + setAuthenticated(false); + setLoading(false); + return; + } + throw new Error('API unavailable'); + } + const data = await res.json(); + setPricing(data); + setAuthenticated(true); + setLoading(false); + } catch { + setPricing(null); + setLoading(false); + } + }, []); useEffect(() => { - fetch('/api/pricing') - .then((res) => { - if (!res.ok) throw new Error('API unavailable'); - return res.json(); - }) - .then((data) => { - setPricing(data); - setLoading(false); - }) - .catch(() => { - setPricing(pricingData); - setLoading(false); + fetchPricing(); + }, [fetchPricing]); + + const handleLogin = () => { + setAuthenticated(true); + setLoading(true); + fetchPricing(); + }; + + const handleLogout = async () => { + try { + await fetch('/api/logout', { + method: 'POST', + credentials: 'include', }); - }, []); + } catch { + // Proceed even if logout request fails + } + setAuthenticated(false); + setPricing(null); + }; + + if (!authenticated && !loading) { + return ; + } if (loading) { return ( -

-
+
+
+
+

Loading...

+
); } if (!pricing) { return ( -
-
Failed to load pricing data
+
+
+
Failed to load pricing data
+ +
); } return (
- +
); } diff --git a/client/src/components/Login.jsx b/client/src/components/Login.jsx new file mode 100644 index 0000000..cad3aa9 --- /dev/null +++ b/client/src/components/Login.jsx @@ -0,0 +1,101 @@ +import { useState } from 'react'; + +export default function Login({ onLogin }) { + const [password, setPassword] = useState(''); + const [error, setError] = useState(''); + const [loading, setLoading] = useState(false); + + const handleSubmit = async (e) => { + e.preventDefault(); + setError(''); + setLoading(true); + + try { + const res = await fetch('/api/login', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ password }), + credentials: 'include', + }); + + if (res.ok) { + onLogin(); + } else { + setError('Invalid password. Please try again.'); + setPassword(''); + } + } catch { + setError('Connection error. Please try again.'); + } finally { + setLoading(false); + } + }; + + return ( +
+
+
+
+
+ + + +
+

+ Gate Quote +

+

+ Enter the access code to continue +

+
+ +
+
+ + setPassword(e.target.value)} + placeholder="Enter access code" + autoFocus + disabled={loading} + className="w-full px-4 py-3 text-lg text-center border-2 border-gray-200 rounded-xl placeholder-gray-400 focus:border-blue-500 focus:ring-2 focus:ring-blue-200 outline-none transition-all disabled:opacity-50" + /> +
+ + {error && ( +
+ {error} +
+ )} + + +
+ +

+ Gate Operator Quotation System +

+
+
+
+ ); +} diff --git a/client/src/components/QuoteSummary.jsx b/client/src/components/QuoteSummary.jsx index bc6883a..c67b76f 100644 --- a/client/src/components/QuoteSummary.jsx +++ b/client/src/components/QuoteSummary.jsx @@ -4,7 +4,10 @@ import { calculateQuote } from '../utils/quoteCalculator'; export default function QuoteSummary({ pricing, selections, onBack, onNew }) { const quoteRef = useRef(null); const quote = calculateQuote(pricing, selections); - const operator = pricing.operators.find((o) => o.id === selections.operator); + const operator = + selections.operator && typeof selections.operator === 'object' + ? selections.operator + : pricing.operators.find((o) => o.id === selections.operator); const handleDownloadPDF = async () => { const html2canvas = (await import('html2canvas')).default; @@ -40,7 +43,8 @@ export default function QuoteSummary({ pricing, selections, onBack, onNew }) { heightLeft -= pageHeight - margin; } - pdf.save(`Gate_Quote_${operator?.model || 'Quote'}.pdf`); + const modelName = operator?.tiltModel || operator?.model || 'Quote'; + pdf.save('Gate_Quote_' + modelName + '.pdf'); }; return ( @@ -89,12 +93,31 @@ export default function QuoteSummary({ pricing, selections, onBack, onNew }) {
{operator && ( -
-
- Selected Operator +
+ {operator.imageFile && !operator.tiltModel && ( + {operator.name} { e.target.style.display = 'none'; }} + /> + )} +
+
+ Selected Operator +
+
+ {operator.tiltName || operator.name} +
+
+ Model: {operator.tiltModel || operator.model} +
+ {operator.tiltDescription && ( +
+ {operator.tiltDescription} +
+ )}
-
{operator.name}
-
Model: {operator.model}
)} @@ -152,9 +175,9 @@ export default function QuoteSummary({ pricing, selections, onBack, onNew }) {
)} -
-
- Subtotal +
+
+ Total Cost {pricing.currency.symbol} {quote.subtotal.toLocaleString(pricing.currency.locale, { @@ -163,26 +186,6 @@ export default function QuoteSummary({ pricing, selections, onBack, onNew }) { })}
-
- HST ({((quote.taxRate ?? 0) * 100).toFixed(0)}%) - - {pricing.currency.symbol} - {quote.tax.toLocaleString(pricing.currency.locale, { - minimumFractionDigits: 2, - maximumFractionDigits: 2, - })} - -
-
- Total Estimate - - {pricing.currency.symbol} - {quote.total.toLocaleString(pricing.currency.locale, { - minimumFractionDigits: 2, - maximumFractionDigits: 2, - })} - -
diff --git a/client/src/components/StepAccessControl.jsx b/client/src/components/StepAccessControl.jsx index 5ce32b2..9450c40 100644 --- a/client/src/components/StepAccessControl.jsx +++ b/client/src/components/StepAccessControl.jsx @@ -1,7 +1,12 @@ export default function StepAccessControl({ accessControl, + remoteButtonOptions, selected, + remoteButtons, + remoteQuantity, onToggle, + onSetRemoteButtons, + onSetRemoteQuantity, onBack, onNext, }) { @@ -29,44 +34,129 @@ export default function StepAccessControl({
{accessControl.map((ac) => { const isSelected = selected.includes(ac.id); + const isRemote = ac.id === 'remote-kit'; + return ( - + + {isSelected && isRemote && ( +
+
+ +
+ {remoteButtonOptions.map((opt) => { + const isBtnSelected = remoteButtons === Number(opt.id); + return ( + + ); + })} +
+
+ +
+ +
+ +
+ {remoteQuantity} +
+ + + {remoteQuantity > 1 ? 'remotes' : 'remote'} + +
+
-
- + )} +
); })}
diff --git a/client/src/components/StepGroundLoops.jsx b/client/src/components/StepGroundLoops.jsx index 4404ebd..f95a7f8 100644 --- a/client/src/components/StepGroundLoops.jsx +++ b/client/src/components/StepGroundLoops.jsx @@ -1,14 +1,17 @@ export default function StepGroundLoops({ + detectors, styles, + sizes, types, value, onSetNeeded, onSetStyle, onToggleType, + onSetSize, onNext, onBack, }) { - const { needed, style, types: selectedTypes } = value; + const { needed, style, types: selectedTypes, typeSizes } = value; return (
@@ -118,43 +121,95 @@ export default function StepGroundLoops({
{types.map((t) => { const isSelected = selectedTypes.includes(t.id); + const currentSize = typeSizes[t.id]; return ( - + + {isSelected && ( +
+
+ + - )} + Includes 1 Loop Detector (+C${(detectors?.[0]?.price ?? 250).toLocaleString('en-CA')}) +
+
+ +
+ {sizes.map((s) => { + const isSizeSelected = currentSize === s.id; + return ( + + ); + })} +
+
-
- + )} +
); })}
diff --git a/client/src/components/StepOperator.jsx b/client/src/components/StepOperator.jsx index b99cd91..8bc0246 100644 --- a/client/src/components/StepOperator.jsx +++ b/client/src/components/StepOperator.jsx @@ -1,36 +1,10 @@ +import { useState } from 'react'; + const categoryLabels = { swing: 'Swing Gate Operators', slide: 'Slide Gate Operators', barrier: 'Barrier Gate Operators', -}; - -const categoryIcons = { - swing: ( - - - - - - - - ), - slide: ( - - - - - - - - ), - barrier: ( - - - - - - - ), + tilt: 'Tilt Gate Operators', }; export default function StepOperator({ operators, selected, onSelect }) { @@ -52,53 +26,186 @@ export default function StepOperator({ operators, selected, onSelect }) {
{operators - .filter((o) => o.category === cat) - .map((op) => ( -
- - ))} + + ); + })} + + {cat === 'tilt' && }
))}
); } + +function TiltOperatorCard({ selected, onSelect }) { + const [model, setModel] = useState(''); + const [description, setDescription] = useState(''); + const [price, setPrice] = useState(''); + const [errors, setErrors] = useState({}); + + const isTiltSelected = selected && typeof selected === 'object'; + + const handleSelect = () => { + const newErrors = {}; + if (!model.trim()) newErrors.model = 'Model is required'; + if (!description.trim()) newErrors.description = 'Description is required'; + if (!price || isNaN(Number(price)) || Number(price) <= 0) newErrors.price = 'Enter a valid price'; + + setErrors(newErrors); + if (Object.keys(newErrors).length > 0) return; + + onSelect({ + id: 'tilt', + tiltModel: model.trim(), + tiltDescription: description.trim(), + tiltPrice: Number(price), + tiltName: 'Tilt Gate Operator', + }); + }; + + const handleDeselect = () => { + onSelect(null); + }; + + const displayModel = isTiltSelected ? selected.tiltModel : model; + const displayDescription = isTiltSelected ? selected.tiltDescription : description; + const displayPrice = isTiltSelected ? selected.tiltPrice : price; + + return ( +
+
+
+
Custom Tilt Gate Operator
+ {isTiltSelected && ( + + Selected + + )} +
+ +
+
+ + setModel(e.target.value)} + disabled={isTiltSelected} + placeholder="e.g. TG-500" + className={`w-full px-3 py-2 text-sm border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 ${ + errors.model ? 'border-red-400 bg-red-50' : 'border-gray-300' + } ${isTiltSelected ? 'bg-gray-100 text-gray-500 cursor-not-allowed' : ''}`} + /> + {errors.model &&

{errors.model}

} +
+ +
+ + setDescription(e.target.value)} + disabled={isTiltSelected} + placeholder="e.g. Heavy-duty tilt gate operator, 24V DC" + className={`w-full px-3 py-2 text-sm border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 ${ + errors.description ? 'border-red-400 bg-red-50' : 'border-gray-300' + } ${isTiltSelected ? 'bg-gray-100 text-gray-500 cursor-not-allowed' : ''}`} + /> + {errors.description &&

{errors.description}

} +
+ +
+ + setPrice(e.target.value)} + disabled={isTiltSelected} + placeholder="e.g. 2995" + min="0" + step="0.01" + className={`w-full px-3 py-2 text-sm border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 ${ + errors.price ? 'border-red-400 bg-red-50' : 'border-gray-300' + } ${isTiltSelected ? 'bg-gray-100 text-gray-500 cursor-not-allowed' : ''}`} + /> + {errors.price &&

{errors.price}

} +
+
+ +
+ {isTiltSelected ? ( + + ) : ( + + )} +
+
+
+ ); +} diff --git a/client/src/components/Wizard.jsx b/client/src/components/Wizard.jsx index 7457735..8a2fea0 100644 --- a/client/src/components/Wizard.jsx +++ b/client/src/components/Wizard.jsx @@ -11,8 +11,11 @@ const initialState = { needed: false, style: null, types: [], + typeSizes: {}, }, accessControl: [], + remoteButtons: 4, + remoteQuantity: 1, }; function reducer(state, action) { @@ -22,7 +25,7 @@ function reducer(state, action) { case 'SET_GROUND_LOOPS_NEEDED': return { ...state, - groundLoops: { needed: action.payload, style: null, types: [] }, + groundLoops: { needed: action.payload, style: null, types: [], typeSizes: {} }, step: action.payload ? state.step : state.step + 1, }; case 'SET_GROUND_LOOP_STYLE': @@ -33,6 +36,12 @@ function reducer(state, action) { case 'TOGGLE_GROUND_LOOP_TYPE': { const id = action.payload; const exists = state.groundLoops.types.includes(id); + const newTypeSizes = { ...state.groundLoops.typeSizes }; + if (!exists) { + newTypeSizes[id] = '4x8'; + } else { + delete newTypeSizes[id]; + } return { ...state, groundLoops: { @@ -40,6 +49,7 @@ function reducer(state, action) { types: exists ? state.groundLoops.types.filter((t) => t !== id) : [...state.groundLoops.types, id], + typeSizes: newTypeSizes, }, }; } @@ -51,12 +61,28 @@ function reducer(state, action) { accessControl: exists ? state.accessControl.filter((a) => a !== id) : [...state.accessControl, id], + remoteButtons: id === 'remote-kit' && !exists ? 4 : state.remoteButtons, }; } + case 'SET_REMOTE_BUTTONS': + return { ...state, remoteButtons: action.payload }; + case 'SET_REMOTE_QUANTITY': + return { ...state, remoteQuantity: Math.max(1, action.payload) }; case 'NEXT_STEP': return { ...state, step: Math.min(state.step + 1, 4) }; case 'PREV_STEP': return { ...state, step: Math.max(state.step - 1, 1) }; + case 'SET_GROUND_LOOP_SIZE': + return { + ...state, + groundLoops: { + ...state.groundLoops, + typeSizes: { + ...state.groundLoops.typeSizes, + [action.payload.typeId]: action.payload.sizeId, + }, + }, + }; case 'GO_TO_STEP': return { ...state, step: Math.min(action.payload, 4) }; case 'RESET': @@ -66,9 +92,9 @@ function reducer(state, action) { } } -export default function Wizard({ pricing }) { +export default function Wizard({ pricing, onLogout }) { const [state, dispatch] = useReducer(reducer, initialState); - const { step, operator, groundLoops, accessControl } = state; + const { step, operator, groundLoops, accessControl, remoteButtons, remoteQuantity } = state; const steps = [ { num: 1, label: 'Operator' }, @@ -79,7 +105,17 @@ export default function Wizard({ pricing }) { return (
-
+
+

Gate Operator Quotation System

@@ -141,12 +177,15 @@ export default function Wizard({ pricing }) { {step === 2 && ( dispatch({ type: 'SET_GROUND_LOOPS_NEEDED', payload: needed })} onSetStyle={(id) => dispatch({ type: 'SET_GROUND_LOOP_STYLE', payload: id })} onToggleType={(id) => dispatch({ type: 'TOGGLE_GROUND_LOOP_TYPE', payload: id })} + onSetSize={(typeId, sizeId) => dispatch({ type: 'SET_GROUND_LOOP_SIZE', payload: { typeId, sizeId } })} onNext={() => dispatch({ type: 'NEXT_STEP' })} onBack={() => dispatch({ type: 'PREV_STEP' })} /> @@ -155,8 +194,13 @@ export default function Wizard({ pricing }) { {step === 3 && ( dispatch({ type: 'TOGGLE_ACCESS_CONTROL', payload: id })} + onSetRemoteButtons={(count) => dispatch({ type: 'SET_REMOTE_BUTTONS', payload: count })} + onSetRemoteQuantity={(qty) => dispatch({ type: 'SET_REMOTE_QUANTITY', payload: qty })} onBack={() => dispatch({ type: 'PREV_STEP' })} onNext={() => dispatch({ type: 'NEXT_STEP' })} /> @@ -165,7 +209,7 @@ export default function Wizard({ pricing }) { {step === 4 && ( dispatch({ type: 'PREV_STEP' })} onNew={() => dispatch({ type: 'RESET' })} /> diff --git a/client/src/data/pricing.json b/client/src/data/pricing.json deleted file mode 100644 index c0dbc8a..0000000 --- a/client/src/data/pricing.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "currency": { - "symbol": "C$", - "code": "CAD", - "locale": "en-CA" - }, - "operators": [ - { - "id": "swing-residential", - "name": "Residential Swing Gate Operator", - "model": "SG-1000", - "category": "swing", - "description": "12V DC swing gate operator for residential gates up to 14 ft", - "basePrice": 2495, - "image": "swing", - "requiredParts": [ - { "id": "op-unit-swing", "name": "Operator Unit (SG-1000)", "qty": 2, "unitPrice": 1247.50 }, - { "id": "bracket-kit", "name": "Gate Bracket Kit", "qty": 2, "unitPrice": 85 }, - { "id": "photo-eye", "name": "Photo Eye Kit", "qty": 1, "unitPrice": 125 }, - { "id": "hinges", "name": "Gate Hinges (Heavy Duty)", "qty": 4, "unitPrice": 45 } - ] - }, - { - "id": "swing-commercial", - "name": "Commercial Swing Gate Operator", - "model": "SG-2000", - "category": "swing", - "description": "24V DC heavy-duty swing operator for commercial gates up to 24 ft", - "basePrice": 3995, - "image": "swing", - "requiredParts": [ - { "id": "op-unit-swing-hd", "name": "Heavy Duty Operator Unit (SG-2000)", "qty": 2, "unitPrice": 1997.50 }, - { "id": "bracket-kit-hd", "name": "Commercial Bracket Kit", "qty": 2, "unitPrice": 145 }, - { "id": "photo-eye", "name": "Photo Eye Kit", "qty": 1, "unitPrice": 125 }, - { "id": "hinges-hd", "name": "Commercial Gate Hinges", "qty": 4, "unitPrice": 75 }, - { "id": "warning-light", "name": "Strobe Warning Light", "qty": 1, "unitPrice": 195 } - ] - }, - { - "id": "slide-residential", - "name": "Light Commercial Slide Gate Operator", - "model": "SL-1500", - "category": "slide", - "description": "12V DC slide operator for residential and light commercial gates up to 20 ft", - "basePrice": 2495, - "image": "slide", - "requiredParts": [ - { "id": "op-unit-slide-lc", "name": "Slide Operator Unit (SL-1500)", "qty": 1, "unitPrice": 2495 }, - { "id": "rack-kit-lc", "name": "Slide Gate Rack Kit (10ft sections)", "qty": 2, "unitPrice": 175 }, - { "id": "photo-eye", "name": "Photo Eye Kit", "qty": 1, "unitPrice": 125 } - ] - }, - { - "id": "slide-commercial", - "name": "Commercial Slide Gate Operator", - "model": "SL-3000", - "category": "slide", - "description": "24V DC slide gate operator for commercial gates up to 40 ft", - "basePrice": 3895, - "image": "slide", - "requiredParts": [ - { "id": "op-unit-slide", "name": "Heavy Duty Operator Unit (SL-3000)", "qty": 1, "unitPrice": 3895 }, - { "id": "rack-kit", "name": "Slide Gate Rack Kit (10ft sections)", "qty": 4, "unitPrice": 175 }, - { "id": "photo-eye", "name": "Photo Eye Kit", "qty": 1, "unitPrice": 125 }, - { "id": "warning-light", "name": "Strobe Warning Light", "qty": 1, "unitPrice": 195 }, - { "id": "sensor-loop", "name": "Vehicle Loop Sensor", "qty": 1, "unitPrice": 285 } - ] - }, - { - "id": "barrier-parking", - "name": "Parking Barrier Gate Operator", - "model": "BG-200", - "category": "barrier", - "description": "120V AC barrier gate for parking lots and access control up to 20 ft", - "basePrice": 3195, - "image": "barrier", - "requiredParts": [ - { "id": "op-unit-barrier", "name": "Barrier Arm Assembly (BG-200)", "qty": 1, "unitPrice": 3195 }, - { "id": "barrier-arm", "name": "Barrier Arm (8ft Aluminum)", "qty": 1, "unitPrice": 395 }, - { "id": "loop-detector", "name": "Loop Detector Card", "qty": 1, "unitPrice": 345 }, - { "id": "warning-light", "name": "LED Warning Light", "qty": 2, "unitPrice": 145 }, - { "id": "signage", "name": "Gate Signage Kit", "qty": 1, "unitPrice": 120 } - ] - }, - { - "id": "barrier-heavy", - "name": "Heavy Duty Barrier Gate Operator", - "model": "BG-500", - "category": "barrier", - "description": "230V AC heavy-duty barrier gate for industrial sites up to 30 ft", - "basePrice": 5495, - "image": "barrier", - "requiredParts": [ - { "id": "op-unit-barrier-hd", "name": "Heavy Duty Barrier Assembly (BG-500)", "qty": 1, "unitPrice": 5495 }, - { "id": "barrier-arm-hd", "name": "Barrier Arm (16ft Steel)", "qty": 1, "unitPrice": 695 }, - { "id": "loop-detector", "name": "Loop Detector Card", "qty": 2, "unitPrice": 345 }, - { "id": "warning-light-hd", "name": "LED Warning Light Kit", "qty": 2, "unitPrice": 195 }, - { "id": "signage", "name": "Gate Signage Kit", "qty": 1, "unitPrice": 120 }, - { "id": "safety-edge", "name": "Safety Edge Sensor", "qty": 1, "unitPrice": 295 } - ] - } - ], - "groundLoopStyles": [ - { "id": "saw-cut", "name": "Saw-Cut Installation", "description": "Loop cut into existing pavement and sealed flush", "additionalCost": 0 }, - { "id": "pave-over", "name": "Pave-Over Installation", "description": "Surface-mount loop installed on top of pavement with protective casing", "additionalCost": 195 } - ], - "groundLoopTypes": [ - { "id": "interrupt", "name": "Interrupt Loop", "description": "Primary vehicle detection loop for gate activation", "price": 425 }, - { "id": "shadow", "name": "Shadow Loop", "description": "Secondary safety loop located behind gate to prevent closure on vehicle", "price": 375 }, - { "id": "exit", "name": "Exit Loop", "description": "Free exit loop on departure side for automatic exit detection", "price": 375 } - ], - "accessControl": [ - { "id": "keypad", "name": "Digital Keypad", "model": "KP-200", "description": "Weatherproof digital keypad with backlit keys, 500 user codes", "price": 295 }, - { "id": "card-reader", "name": "Proximity Card Reader", "model": "PR-500", "description": "125kHz proximity card reader with 1000 card capacity", "price": 445 }, - { "id": "intercom", "name": "Audio/Video Intercom", "model": "AV-700", "description": "2-wire audio/video intercom with color camera", "price": 895 }, - { "id": "remote-kit", "name": "Remote Control Kit", "model": "RC-4", "description": "4-button remote control with 2 remotes, rolling code", "price": 195 }, - { "id": "solar-kit", "name": "Solar Panel Kit", "model": "SP-100", "description": "100W solar panel with charge controller and battery", "price": 695 }, - { "id": "gsm-controller", "name": "GSM Cellular Controller", "model": "GSM-4G", "description": "4G cellular controller with app, no phone line needed", "price": 595 } - ] -} diff --git a/client/src/utils/quoteCalculator.js b/client/src/utils/quoteCalculator.js index 1d93bcc..071737c 100644 --- a/client/src/utils/quoteCalculator.js +++ b/client/src/utils/quoteCalculator.js @@ -4,20 +4,35 @@ export function calculateQuote(pricing, selections) { let subtotal = 0; if (operator) { - const op = pricing.operators.find((o) => o.id === operator); - if (op) { - op.requiredParts.forEach((part) => { - const lineTotal = part.qty * part.unitPrice; - items.push({ - type: 'part', - category: 'Required Equipment', - name: part.name, - qty: part.qty, - unitPrice: part.unitPrice, - lineTotal, - }); - subtotal += lineTotal; + // Custom tilt operator (object with tiltModel, tiltDescription, tiltPrice) + if (typeof operator === 'object' && operator.tiltModel) { + items.push({ + type: 'tiltOperator', + category: 'Required Equipment', + name: operator.tiltName + ' (' + operator.tiltModel + ')', + description: operator.tiltDescription, + qty: 1, + unitPrice: operator.tiltPrice, + lineTotal: operator.tiltPrice, }); + subtotal += operator.tiltPrice; + } else { + // Pre-defined operator by ID + const op = pricing.operators.find((o) => o.id === operator); + if (op) { + op.requiredParts.forEach((part) => { + const lineTotal = part.qty * part.unitPrice; + items.push({ + type: 'part', + category: 'Required Equipment', + name: part.name, + qty: part.qty, + unitPrice: part.unitPrice, + lineTotal, + }); + subtotal += lineTotal; + }); + } } } @@ -28,7 +43,7 @@ export function calculateQuote(pricing, selections) { items.push({ type: 'groundLoopStyle', category: 'Ground Loops', - name: `Installation: ${gls.name}`, + name: 'Installation: ' + gls.name, qty: 1, unitPrice: gls.additionalCost, lineTotal: gls.additionalCost, @@ -38,18 +53,40 @@ export function calculateQuote(pricing, selections) { } if (groundLoops.types && groundLoops.types.length > 0) { + // Default detector pricing + const detectorPrice = pricing.loopDetectors?.[0]?.price ?? 250; + groundLoops.types.forEach((typeId) => { const glt = pricing.groundLoopTypes.find((t) => t.id === typeId); if (glt) { + // Look up the size for this loop type + const sizeId = groundLoops.typeSizes?.[typeId]; + const size = pricing.groundLoopSizes?.find((s) => s.id === sizeId); + const sizeCost = size?.additionalCost ?? 0; + const lineTotal = glt.price + sizeCost; + items.push({ type: 'groundLoopType', category: 'Ground Loops', - name: glt.name, + name: glt.name + (size ? ' (' + size.name + ')' : ''), qty: 1, unitPrice: glt.price, - lineTotal: glt.price, + sizeCost: sizeCost, + sizeName: size?.name || null, + lineTotal, }); - subtotal += glt.price; + subtotal += lineTotal; + + // Add loop detector for this loop type + items.push({ + type: 'loopDetector', + category: 'Ground Loops', + name: 'Loop Detector (' + glt.name + ')', + qty: 1, + unitPrice: detectorPrice, + lineTotal: detectorPrice, + }); + subtotal += detectorPrice; } }); } @@ -57,24 +94,38 @@ export function calculateQuote(pricing, selections) { if (accessControl && accessControl.length > 0) { accessControl.forEach((acId) => { - const ac = pricing.accessControl.find((a) => a.id === acId); - if (ac) { - items.push({ - type: 'accessControl', - category: 'Access Control', - name: ac.name, - qty: 1, - unitPrice: ac.price, - lineTotal: ac.price, - }); - subtotal += ac.price; + if (acId === 'remote-kit') { + const buttonCount = selections.remoteButtons || 4; + const qty = selections.remoteQuantity || 1; + const option = pricing.remoteButtonOptions?.find((o) => Number(o.id) === buttonCount); + if (option) { + const lineTotal = option.price * qty; + items.push({ + type: 'accessControl', + category: 'Access Control', + name: option.name + (qty > 1 ? ' (x' + qty + ')' : ''), + qty: qty, + unitPrice: option.price, + lineTotal, + }); + subtotal += lineTotal; + } + } else { + const ac = pricing.accessControl.find((a) => a.id === acId); + if (ac) { + items.push({ + type: 'accessControl', + category: 'Access Control', + name: ac.name, + qty: 1, + unitPrice: ac.price, + lineTotal: ac.price, + }); + subtotal += ac.price; + } } }); } - const taxRate = 0.13; - const tax = subtotal * taxRate; - const total = subtotal + tax; - - return { items, subtotal, tax, taxRate, total }; + return { items, subtotal, total: subtotal }; } diff --git a/server/data/pricing.json b/server/data/pricing.json index c0dbc8a..6474a3f 100644 --- a/server/data/pricing.json +++ b/server/data/pricing.json @@ -8,112 +8,137 @@ { "id": "swing-residential", "name": "Residential Swing Gate Operator", - "model": "SG-1000", + "model": "LA500", "category": "swing", - "description": "12V DC swing gate operator for residential gates up to 14 ft", + "description": "24V DC Swing Gate Linear Operator ", "basePrice": 2495, "image": "swing", + "imageFile": "liftmaster-la500-bundle.jpg", "requiredParts": [ - { "id": "op-unit-swing", "name": "Operator Unit (SG-1000)", "qty": 2, "unitPrice": 1247.50 }, - { "id": "bracket-kit", "name": "Gate Bracket Kit", "qty": 2, "unitPrice": 85 }, - { "id": "photo-eye", "name": "Photo Eye Kit", "qty": 1, "unitPrice": 125 }, - { "id": "hinges", "name": "Gate Hinges (Heavy Duty)", "qty": 4, "unitPrice": 45 } + { "id": "op-unit-swing", "name": "Operator Unit (LA500)", "qty": 2, "unitPrice": 1247.50 }, + { "id": "mounting-post", "name": "Mounting Post", "qty": 1, "unitPrice": 85 }, + { "id": "prep-cost", "name": "In House Prep Cost", "qty": 1, "unitPrice": 150 }, + { "id": "shipping", "name": "Shipping Cost", "qty": 1, "unitPrice": 200 } ] }, { "id": "swing-commercial", "name": "Commercial Swing Gate Operator", - "model": "SG-2000", + "model": "CSW24UL", "category": "swing", - "description": "24V DC heavy-duty swing operator for commercial gates up to 24 ft", + "description": "24V DC Heavy Duty Swing Gate Operator", "basePrice": 3995, "image": "swing", + "imageFile": "liftmaster-csw24.jpg", "requiredParts": [ - { "id": "op-unit-swing-hd", "name": "Heavy Duty Operator Unit (SG-2000)", "qty": 2, "unitPrice": 1997.50 }, - { "id": "bracket-kit-hd", "name": "Commercial Bracket Kit", "qty": 2, "unitPrice": 145 }, - { "id": "photo-eye", "name": "Photo Eye Kit", "qty": 1, "unitPrice": 125 }, - { "id": "hinges-hd", "name": "Commercial Gate Hinges", "qty": 4, "unitPrice": 75 }, - { "id": "warning-light", "name": "Strobe Warning Light", "qty": 1, "unitPrice": 195 } + { "id": "op-unit-swing-hd", "name": "Heavy Duty Operator Unit (CSW24UL)", "qty": 2, "unitPrice": 1997.50 }, + { "id": "mount-pad", "name": "Mounting Pad", "qty": 2, "unitPrice": 145 }, + { "id": "prep-cost", "name": "In House Prep Cost", "qty": 1, "unitPrice": 150 }, + { "id": "shipping", "name": "Shipping Cost", "qty": 1, "unitPrice": 200 }, + { "id": "mounting-post", "name": "Mounting Post", "qty": 2, "unitPrice": 85 } ] }, { "id": "slide-residential", "name": "Light Commercial Slide Gate Operator", - "model": "SL-1500", + "model": "CSL24UL", "category": "slide", - "description": "12V DC slide operator for residential and light commercial gates up to 20 ft", + "description": "24V DC Light Duty Slide Gate Operator", "basePrice": 2495, "image": "slide", + "imageFile": "liftmaster-csl24.jpg", "requiredParts": [ - { "id": "op-unit-slide-lc", "name": "Slide Operator Unit (SL-1500)", "qty": 1, "unitPrice": 2495 }, - { "id": "rack-kit-lc", "name": "Slide Gate Rack Kit (10ft sections)", "qty": 2, "unitPrice": 175 }, - { "id": "photo-eye", "name": "Photo Eye Kit", "qty": 1, "unitPrice": 125 } + { "id": "op-unit-slide-lc", "name": "Slide Operator Unit (CSL24UL)", "qty": 1, "unitPrice": 2495 }, + { "id": "mount-pad", "name": "Mounting Pad", "qty": 2, "unitPrice": 145 }, + { "id": "prep-cost", "name": "In House Prep Cost", "qty": 1, "unitPrice": 150 }, + { "id": "shipping", "name": "Shipping Cost", "qty": 1, "unitPrice": 200 }, + { "id": "mounting-post", "name": "Mounting Post", "qty": 2, "unitPrice": 85 } ] }, { "id": "slide-commercial", "name": "Commercial Slide Gate Operator", - "model": "SL-3000", + "model": "IHSL24UL", "category": "slide", - "description": "24V DC slide gate operator for commercial gates up to 40 ft", + "description": "24V DC Commercial Gate Operator", "basePrice": 3895, "image": "slide", + "imageFile": "liftmaster-ihsl24ul.jpg", "requiredParts": [ - { "id": "op-unit-slide", "name": "Heavy Duty Operator Unit (SL-3000)", "qty": 1, "unitPrice": 3895 }, - { "id": "rack-kit", "name": "Slide Gate Rack Kit (10ft sections)", "qty": 4, "unitPrice": 175 }, - { "id": "photo-eye", "name": "Photo Eye Kit", "qty": 1, "unitPrice": 125 }, - { "id": "warning-light", "name": "Strobe Warning Light", "qty": 1, "unitPrice": 195 }, - { "id": "sensor-loop", "name": "Vehicle Loop Sensor", "qty": 1, "unitPrice": 285 } + { "id": "op-unit-slide", "name": "Slide Operator Unit (IHSL24UL)", "qty": 1, "unitPrice": 3895 }, + { "id": "prep-cost", "name": "In House Prep Cost", "qty": 1, "unitPrice": 150 }, + { "id": "shipping", "name": "Shipping Cost", "qty": 1, "unitPrice": 200 }, + { "id": "mounting-post", "name": "Mounting Post", "qty": 2, "unitPrice": 85 } ] }, { "id": "barrier-parking", - "name": "Parking Barrier Gate Operator", - "model": "BG-200", + "name": "Barrier Gate Operator", + "model": "MAT", "category": "barrier", - "description": "120V AC barrier gate for parking lots and access control up to 20 ft", + "description": "Mega Arm Tower Barrier Gate Operator", "basePrice": 3195, "image": "barrier", + "imageFile": "Mat.jpeg", "requiredParts": [ - { "id": "op-unit-barrier", "name": "Barrier Arm Assembly (BG-200)", "qty": 1, "unitPrice": 3195 }, - { "id": "barrier-arm", "name": "Barrier Arm (8ft Aluminum)", "qty": 1, "unitPrice": 395 }, - { "id": "loop-detector", "name": "Loop Detector Card", "qty": 1, "unitPrice": 345 }, - { "id": "warning-light", "name": "LED Warning Light", "qty": 2, "unitPrice": 145 }, - { "id": "signage", "name": "Gate Signage Kit", "qty": 1, "unitPrice": 120 } + { "id": "op-unit-barrier", "name": "Mega Arm Tower Barrier Gate Operator(MAT)", "qty": 1, "unitPrice": 3195 }, + { "id": "barrier-arm", "name": "Barrier Arm (8ft Aluminum)", "qty": 1, "unitPrice": 395 } ] }, { "id": "barrier-heavy", - "name": "Heavy Duty Barrier Gate Operator", - "model": "BG-500", + "name": "Techna Barrier Gate Operator", + "model": "CBG24DC", "category": "barrier", - "description": "230V AC heavy-duty barrier gate for industrial sites up to 30 ft", + "description": "Commercial Barrier Gate operator", "basePrice": 5495, "image": "barrier", + "imageFile": "techno.jpeg", "requiredParts": [ - { "id": "op-unit-barrier-hd", "name": "Heavy Duty Barrier Assembly (BG-500)", "qty": 1, "unitPrice": 5495 }, - { "id": "barrier-arm-hd", "name": "Barrier Arm (16ft Steel)", "qty": 1, "unitPrice": 695 }, - { "id": "loop-detector", "name": "Loop Detector Card", "qty": 2, "unitPrice": 345 }, - { "id": "warning-light-hd", "name": "LED Warning Light Kit", "qty": 2, "unitPrice": 195 }, - { "id": "signage", "name": "Gate Signage Kit", "qty": 1, "unitPrice": 120 }, - { "id": "safety-edge", "name": "Safety Edge Sensor", "qty": 1, "unitPrice": 295 } + { "id": "op-unit-barrier-hd", "name": "Techna Barrier Gate Operator (CBG24DC)", "qty": 1, "unitPrice": 5495 }, + { "id": "barrier-arm-hd", "name": "Barrier Arm (16ft Steel)", "qty": 1, "unitPrice": 695 } ] + }, + { + "id": "tilt", + "name": "Tilt Gate Operator", + "model": "", + "category": "tilt", + "description": "Enter tilt gate operator details below", + "basePrice": 0, + "image": "tilt", + "imageFile": "", + "isCustom": true, + "requiredParts": [] } ], "groundLoopStyles": [ { "id": "saw-cut", "name": "Saw-Cut Installation", "description": "Loop cut into existing pavement and sealed flush", "additionalCost": 0 }, { "id": "pave-over", "name": "Pave-Over Installation", "description": "Surface-mount loop installed on top of pavement with protective casing", "additionalCost": 195 } ], + "loopDetectors": [ + { "id": "single", "name": "Single-Channel Loop Detector", "description": "Detects vehicle presence over the loop wire", "price": 250 } + ], + "groundLoopSizes": [ + { "id": "4x8", "name": "4' x 8'", "description": "Standard loop size for residential applications", "additionalCost": 0 }, + { "id": "6x12", "name": "6' x 12'", "description": "Larger loop size for commercial or wide driveways", "additionalCost": 175 } + ], "groundLoopTypes": [ { "id": "interrupt", "name": "Interrupt Loop", "description": "Primary vehicle detection loop for gate activation", "price": 425 }, { "id": "shadow", "name": "Shadow Loop", "description": "Secondary safety loop located behind gate to prevent closure on vehicle", "price": 375 }, { "id": "exit", "name": "Exit Loop", "description": "Free exit loop on departure side for automatic exit detection", "price": 375 } ], + "remoteButtonOptions": [ + { "id": "1", "name": "1-Button Remote", "price": 95 }, + { "id": "2", "name": "2-Button Remote", "price": 125 }, + { "id": "3", "name": "3-Button Remote", "price": 165 }, + { "id": "4", "name": "4-Button Remote", "price": 195 } + ], "accessControl": [ { "id": "keypad", "name": "Digital Keypad", "model": "KP-200", "description": "Weatherproof digital keypad with backlit keys, 500 user codes", "price": 295 }, { "id": "card-reader", "name": "Proximity Card Reader", "model": "PR-500", "description": "125kHz proximity card reader with 1000 card capacity", "price": 445 }, { "id": "intercom", "name": "Audio/Video Intercom", "model": "AV-700", "description": "2-wire audio/video intercom with color camera", "price": 895 }, - { "id": "remote-kit", "name": "Remote Control Kit", "model": "RC-4", "description": "4-button remote control with 2 remotes, rolling code", "price": 195 }, + { "id": "remote-kit", "name": "Remote Control", "model": "", "description": "Remote controls with rolling code technology", "price": 0 }, { "id": "solar-kit", "name": "Solar Panel Kit", "model": "SP-100", "description": "100W solar panel with charge controller and battery", "price": 695 }, { "id": "gsm-controller", "name": "GSM Cellular Controller", "model": "GSM-4G", "description": "4G cellular controller with app, no phone line needed", "price": 595 } ] diff --git a/server/index.js b/server/index.js index 601fff4..0b29e5a 100644 --- a/server/index.js +++ b/server/index.js @@ -1,35 +1,98 @@ +require('dotenv').config({ path: require('path').join(__dirname, '..', '.env') }); + const express = require('express'); const cors = require('cors'); const path = require('path'); const fs = require('fs'); const os = require('os'); +const session = require('express-session'); const app = express(); const PORT = process.env.PORT || 3001; -app.use(cors()); +app.use(cors({ + origin: process.env.NODE_ENV === 'production' ? false : 'http://localhost:5173', + credentials: true, +})); +app.use(express.json()); + +app.use(session({ + secret: process.env.APP_SESSION_SECRET || 'dev-secret-change-in-production', + resave: false, + saveUninitialized: false, + cookie: { + httpOnly: true, + secure: process.env.NODE_ENV === 'production', + sameSite: process.env.NODE_ENV === 'production' ? 'strict' : 'lax', + maxAge: 24 * 60 * 60 * 1000, // 24 hours + }, +})); const pricingData = JSON.parse( fs.readFileSync(path.join(__dirname, 'data', 'pricing.json'), 'utf-8') ); -app.get('/api/pricing', (req, res) => { +// Auth middleware +function requireAuth(req, res, next) { + if (req.session && req.session.authenticated) { + return next(); + } + res.status(401).json({ error: 'Unauthorized' }); +} + +// Login +app.post('/api/login', (req, res) => { + const { password } = req.body; + if (password === process.env.APP_PASSWORD) { + req.session.authenticated = true; + return res.json({ success: true }); + } + res.status(401).json({ error: 'Invalid password' }); +}); + +// Logout +app.post('/api/logout', (req, res) => { + req.session.destroy((err) => { + if (err) { + return res.status(500).json({ error: 'Failed to logout' }); + } + res.clearCookie('connect.sid'); + res.json({ success: true }); + }); +}); + +// Check auth status +app.get('/api/auth/status', (req, res) => { + res.json({ authenticated: !!(req.session && req.session.authenticated) }); +}); + +// Protected API routes +app.get('/api/pricing', requireAuth, (req, res) => { res.json(pricingData); }); -app.get('/api/pricing/:category', (req, res) => { +app.get('/api/pricing/:category', requireAuth, (req, res) => { const { category } = req.params; - const validCategories = ['operators', 'groundLoopStyles', 'groundLoopTypes', 'accessControl']; + const validCategories = ['operators', 'groundLoopStyles', 'groundLoopSizes', 'loopDetectors', 'groundLoopTypes', 'accessControl', 'remoteButtonOptions']; if (validCategories.includes(category)) { return res.json(pricingData[category]); } res.status(400).json({ error: `Invalid category. Use: ${validCategories.join(', ')}` }); }); +// Serve static files with auth protection const clientDist = path.join(__dirname, '..', 'client', 'dist'); if (fs.existsSync(clientDist)) { - app.use(express.static(clientDist)); - app.get('*', (req, res) => { + // Allow unauthenticated access to login page assets and auth endpoints + app.use('/assets', express.static(path.join(clientDist, 'assets'))); + + // Login page is always accessible + app.get('/login', (req, res) => { + res.sendFile(path.join(clientDist, 'index.html')); + }); + + // All other routes require auth + app.get('*', requireAuth, (req, res) => { res.sendFile(path.join(clientDist, 'index.html')); }); } @@ -47,5 +110,6 @@ function getLocalIP() { app.listen(PORT, '0.0.0.0', () => { const ip = getLocalIP(); console.log(`\n Local: http://localhost:${PORT}`); - console.log(` Network: http://${ip}:${PORT}\n`); + console.log(` Network: http://${ip}:${PORT}`); + console.log(` Login: http://localhost:${PORT}/login\n`); }); diff --git a/server/package-lock.json b/server/package-lock.json index 4fef64e..bf5982d 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -9,7 +9,9 @@ "version": "1.0.0", "dependencies": { "cors": "^2.8.5", - "express": "^4.18.2" + "dotenv": "^17.4.2", + "express": "^4.18.2", + "express-session": "^1.19.0" } }, "node_modules/accepts": { @@ -174,6 +176,18 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/dotenv": { + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.4.2.tgz", + "integrity": "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -294,6 +308,29 @@ "url": "https://opencollective.com/express" } }, + "node_modules/express-session": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.19.0.tgz", + "integrity": "sha512-0csaMkGq+vaiZTmSMMGkfdCOabYv192VbytFypcvI0MANrp+4i/7yEkJ0sbAEhycQjntaKGzYfjfXQyVb7BHMA==", + "license": "MIT", + "dependencies": { + "cookie": "~0.7.2", + "cookie-signature": "~1.0.7", + "debug": "~2.6.9", + "depd": "~2.0.0", + "on-headers": "~1.1.0", + "parseurl": "~1.3.3", + "safe-buffer": "~5.2.1", + "uid-safe": "~2.1.5" + }, + "engines": { + "node": ">= 0.8.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/finalhandler": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", @@ -576,6 +613,15 @@ "node": ">= 0.8" } }, + "node_modules/on-headers": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -619,6 +665,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -823,6 +878,18 @@ "node": ">= 0.6" } }, + "node_modules/uid-safe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", + "license": "MIT", + "dependencies": { + "random-bytes": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", diff --git a/server/package.json b/server/package.json index 9ece317..6c12019 100644 --- a/server/package.json +++ b/server/package.json @@ -8,6 +8,8 @@ }, "dependencies": { "cors": "^2.8.5", - "express": "^4.18.2" + "dotenv": "^17.4.2", + "express": "^4.18.2", + "express-session": "^1.19.0" } }