EverydayTech Platform - Developer Reference
Complete Source Code Documentation - All Applications
Loading...
Searching...
No Matches
page.tsx
Go to the documentation of this file.
1"use client";
2import { useState } from "react";
3import Link from "next/link";
4import { Icon } from '@/contexts/IconContext';
5
6export default function StartHerePage() {
7 const [activeGuide, setActiveGuide] = useState<string>("overview");
8
9 const guides = [
10 { id: "overview", title: "Getting Started", icon: "rocket_launch" },
11 { id: "interface", title: "Understanding the Interface", icon: "computer" },
12 { id: "sales", title: "Making Sales", icon: "payments" },
13 { id: "customers", title: "Managing Customers", icon: "groups" },
14 { id: "products", title: "Product Management", icon: "inventory_2" },
15 { id: "stock", title: "Stock Takes", icon: "fact_check" },
16 { id: "search", title: "Search & Filters", icon: "search" },
17 { id: "reports", title: "Reports & Analytics", icon: "assessment" },
18 { id: "tips", title: "Tips & Best Practices", icon: "tips_and_updates" },
19 ];
20
21 return (
22 <div className="min-h-screen bg-bg">
23 {/* Header */}
24 <div className="py-12 px-6" style={{ background: 'linear-gradient(to right, #2563eb, #7c3aed)' }}>
25 <div className="max-w-7xl mx-auto">
26 <h1 className="text-4xl font-bold mb-3 flex items-center gap-3" style={{ color: 'white' }}>
27 <Icon name="rocket_launch" size={40} />
28 Welcome to Everyday POS
29 </h1>
30 <p className="text-xl" style={{ color: 'rgba(255, 255, 255, 0.9)' }}>Your complete guide to using the dashboard</p>
31 </div>
32 </div>
33
34 <div className="max-w-7xl mx-auto py-8 px-6">
35 <div className="grid grid-cols-1 lg:grid-cols-4 gap-6">
36 {/* Sidebar Navigation */}
37 <div className="lg:col-span-1">
38 <div className="bg-surface rounded-lg shadow-sm p-4 sticky top-6">
39 <h3 className="font-semibold text-text mb-3">Quick Guide</h3>
40 <nav className="space-y-1">
41 {guides.map((guide) => (
42 <button
43 key={guide.id}
44 onClick={() => setActiveGuide(guide.id)}
45 className={`w-full text-left px-3 py-2 rounded-md text-sm transition-colors flex items-center gap-2 ${
46 activeGuide === guide.id
47 ? "bg-brand/10 text-brand font-medium"
48 : "text-text hover:bg-surface-2"
49 }`}
50 >
51 <Icon name={guide.icon} size={18} />
52 {guide.title}
53 </button>
54 ))}
55 </nav>
56
57 <div className="mt-6 pt-6 border-t border-border">
58 <Link
59 href="/pages/technical/documentation"
60 className="text-sm text-brand hover:text-brand/80 flex items-center gap-1"
61 >
62 <Icon name="menu_book" size={18} />
63 Technical Documentation →
64 </Link>
65 </div>
66 </div>
67 </div>
68
69 {/* Main Content */}
70 <div className="lg:col-span-3">
71 <div className="bg-surface rounded-lg shadow-sm p-8">
72 {activeGuide === "overview" && (
73 <div className="space-y-6">
74 <h2 className="text-3xl font-bold text-text">Getting Started</h2>
75
76 <div className="bg-info/10 border border-info/30 rounded-lg p-6">
77 <h3 className="text-lg font-semibold text-text mb-2 flex items-center gap-2">
78 <Icon name="waving_hand" size={24} />
79 Welcome to Everyday POS!
80 </h3>
81 <p className="text-text mb-3">
82 This guide will help you learn the essential features of Everyday POS. Even if you're an
83 experienced user, spending 5 minutes here might teach you something new!
84 </p>
85 <p className="text-sm text-muted">
86 Select a topic from the sidebar to get started, or explore the quick access cards below.
87 </p>
88 </div>
89
90 <div className="bg-warn/10 border border-warn/30 rounded-lg p-4">
91 <h3 className="text-sm font-semibold text-text mb-2 flex items-center gap-2">
92 <Icon name="lightbulb" size={20} />
93 What Makes This System Different?
94 </h3>
95 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
96 <li><strong>Real-time updates</strong> - Changes are reflected immediately across all devices</li>
97 <li><strong>Smart search</strong> - Find products, customers, and data quickly with intelligent search</li>
98 <li><strong>Flexible reporting</strong> - Generate reports on-demand with customizable date ranges</li>
99 <li><strong>Multi-location support</strong> - Manage multiple stores from one dashboard</li>
100 <li><strong>Dual dashboard</strong> - Switch between Store and Retailer views for different operational needs</li>
101 <li><strong>Audit trails</strong> - Complete staff activity logging and system transaction monitoring</li>
102 <li><strong>Technical controls</strong> - Advanced security, compliance, and diagnostics tools</li>
103 </ul>
104 </div>
105
106 <div className="bg-success/10 border border-success/30 rounded-lg p-4 mt-4">
107 <h3 className="text-sm font-semibold text-text mb-2 flex items-center gap-2">
108 <Icon name="new_releases" size={20} />
109 Recently Added Features
110 </h3>
111 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
112 <li><strong>Audit Logs</strong> - Track staff login/logout activity and system transactions</li>
113 <li><strong>Store Management</strong> - Full CRUD operations for location management with topology view</li>
114 <li><strong>POS Lane Configuration</strong> - Manage lane profiles and hardware settings</li>
115 <li><strong>Device Management</strong> - Configure barcode scanners, printers, EFTPOS, cameras, scales</li>
116 <li><strong>Retail Operations</strong> - Sale processing, pricing, stock control, loyalty, gift cards, EOD</li>
117 <li><strong>Technical Settings</strong> - Security, firewall, GDPR, PCI, network topology, database</li>
118 <li><strong>Media Management</strong> - Photo storage, cloud integration, receipt format customization</li>
119 </ul>
120 </div>
121
122 <div className="grid grid-cols-1 md:grid-cols-2 gap-4 mt-8">
123 <div className="border border-border rounded-lg p-6 hover:shadow-md transition-shadow">
124 <div className="flex items-center gap-2 mb-3">
125 <Icon name="computer" size={32} className="text-info" />
126 </div>
127 <h3 className="text-lg font-semibold text-text mb-2">Understanding the Interface</h3>
128 <p className="text-muted text-sm mb-4">
129 Learn how to navigate the dashboard, use search features, and customize your view
130 </p>
131 <button
132 onClick={() => setActiveGuide("interface")}
133 className="text-brand hover:text-brand/80 text-sm font-medium"
134 >
135 Learn more →
136 </button>
137 </div>
138
139 <div className="border border-border rounded-lg p-6 hover:shadow-md transition-shadow">
140 <div className="flex items-center gap-2 mb-3">
141 <Icon name="payments" size={32} className="text-success" />
142 </div>
143 <h3 className="text-lg font-semibold text-text mb-2">Making Sales</h3>
144 <p className="text-muted text-sm mb-4">
145 Learn how to process sales, accept payments, and handle returns
146 </p>
147 <button
148 onClick={() => setActiveGuide("sales")}
149 className="text-brand hover:text-brand/80 text-sm font-medium"
150 >
151 Learn more →
152 </button>
153 </div>
154
155 <div className="border border-border rounded-lg p-6 hover:shadow-md transition-shadow">
156 <div className="flex items-center gap-2 mb-3">
157 <Icon name="groups" size={32} className="text-brand2" />
158 </div>
159 <h3 className="text-lg font-semibold text-text mb-2">Managing Customers</h3>
160 <p className="text-muted text-sm mb-4">
161 Add new customers, track loyalty, and manage accounts
162 </p>
163 <button
164 onClick={() => setActiveGuide("customers")}
165 className="text-brand hover:text-brand/80 text-sm font-medium"
166 >
167 Learn more →
168 </button>
169 </div>
170
171 <div className="border border-border rounded-lg p-6 hover:shadow-md transition-shadow">
172 <div className="flex items-center gap-2 mb-3">
173 <Icon name="inventory_2" size={32} className="text-warn" />
174 </div>
175 <h3 className="text-lg font-semibold text-text mb-2">Product Management</h3>
176 <p className="text-muted text-sm mb-4">
177 Update product information, pricing, and inventory
178 </p>
179 <button
180 onClick={() => setActiveGuide("products")}
181 className="text-brand hover:text-brand/80 text-sm font-medium"
182 >
183 Learn more →
184 </button>
185 </div>
186
187 <div className="border border-border rounded-lg p-6 hover:shadow-md transition-shadow">
188 <div className="flex items-center gap-2 mb-3">
189 <Icon name="fact_check" size={32} className="text-brand" />
190 </div>
191 <h3 className="text-lg font-semibold text-text mb-2">Stock Takes</h3>
192 <p className="text-muted text-sm mb-4">
193 Create and manage stocktakes to keep inventory accurate
194 </p>
195 <button
196 onClick={() => setActiveGuide("stock")}
197 className="text-brand hover:text-brand/80 text-sm font-medium"
198 >
199 Learn more →
200 </button>
201 </div>
202
203 <div className="border border-border rounded-lg p-6 hover:shadow-md transition-shadow">
204 <div className="flex items-center gap-2 mb-3">
205 <Icon name="search" size={32} className="text-info" />
206 </div>
207 <h3 className="text-lg font-semibold text-text mb-2">Search & Filters</h3>
208 <p className="text-muted text-sm mb-4">
209 Master the search functionality to find anything quickly
210 </p>
211 <button
212 onClick={() => setActiveGuide("search")}
213 className="text-brand hover:text-brand/80 text-sm font-medium"
214 >
215 Learn more →
216 </button>
217 </div>
218 </div>
219
220 <div className="mt-8 p-6 bg-success/10 border border-success/30 rounded-lg">
221 <h3 className="text-lg font-semibold text-text mb-2 flex items-center gap-2">
222 <Icon name="navigation" size={24} />
223 Quick Navigation Tips
224 </h3>
225 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
226 <li>Use the left sidebar to navigate between different sections</li>
227 <li>Click on section headers in tables to sort by that column</li>
228 <li>Look for the Refresh button to reload data</li>
229 <li>Most pages have search and filter options at the top</li>
230 <li>Check the <Link href="/pages/technical/documentation" className="underline font-medium text-brand hover:text-brand/80">Technical Documentation</Link> for developer guides</li>
231 </ul>
232 </div>
233 </div>
234 )}
235
236 {activeGuide === "interface" && (
237 <div className="space-y-6">
238 <h2 className="text-3xl font-bold text-text flex items-center gap-2">
239 <Icon name="computer" size={40} />
240 Understanding the Interface
241 </h2>
242
243 <div className="space-y-4">
244 <div className="border-l-4 border-info bg-info/10 p-4">
245 <h3 className="font-semibold text-text mb-2">Navigation Layout</h3>
246 <p className="text-text text-sm mb-3">
247 The dashboard uses a consistent layout across all pages:
248 </p>
249 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
250 <li><strong>Left Sidebar</strong> - Main navigation menu organized by category</li>
251 <li><strong>Top Bar</strong> - Page title and primary action buttons</li>
252 <li><strong>Content Area</strong> - Main workspace with data and forms</li>
253 <li><strong>Bottom Area</strong> - Pagination and additional controls</li>
254 </ul>
255 </div>
256
257 <div className="border-l-4 border-success bg-success/10 p-4">
258 <h3 className="font-semibold text-text mb-2">Working with Tables</h3>
259 <p className="text-text text-sm mb-2">
260 Most data is displayed in sortable tables:
261 </p>
262 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
263 <li><strong>Click column headers</strong> to sort ascending</li>
264 <li><strong>Click again</strong> to sort descending</li>
265 <li><strong>Use search boxes</strong> to filter visible rows</li>
266 <li><strong>Pagination controls</strong> navigate through large datasets</li>
267 <li>Sorting is instant and happens in your browser</li>
268 </ul>
269 </div>
270
271 <div className="border-l-4 border-brand2 bg-brand2/10 p-4">
272 <h3 className="font-semibold text-text mb-2">Action Buttons</h3>
273 <div className="space-y-2 text-sm">
274 <div className="flex items-center gap-3">
275 <span className="px-3 py-1 bg-info text-white rounded text-xs font-medium">View</span>
276 <span className="text-text">Opens details in a modal or new page</span>
277 </div>
278 <div className="flex items-center gap-3">
279 <span className="px-3 py-1 bg-success text-white rounded text-xs font-medium">Edit</span>
280 <span className="text-text">Modify existing records</span>
281 </div>
282 <div className="flex items-center gap-3">
283 <span className="px-3 py-1 bg-danger text-white rounded text-xs font-medium">Delete</span>
284 <span className="text-text">Remove records (asks for confirmation)</span>
285 </div>
286 <div className="flex items-center gap-3">
287 <span className="px-3 py-1 bg-surface-2 text-text border border-border rounded text-xs font-medium flex items-center gap-1">
288 <Icon name="refresh" size={14} />
289 Refresh
290 </span>
291 <span className="text-text">Reload data from server</span>
292 </div>
293 </div>
294 </div>
295
296 <div className="border-l-4 border-warn bg-warn/10 p-4">
297 <h3 className="font-semibold text-text mb-2">Status Badges</h3>
298 <p className="text-text text-sm mb-3">
299 Color-coded badges indicate item status at a glance:
300 </p>
301 <div className="space-y-2 text-sm">
302 <div className="flex items-center gap-3">
303 <span className="px-2 py-1 bg-success/20 text-success rounded text-xs font-medium">Complete</span>
304 <span className="text-text">Finalized transactions</span>
305 </div>
306 <div className="flex items-center gap-3">
307 <span className="px-2 py-1 bg-warn/20 text-warn rounded text-xs font-medium">Pending</span>
308 <span className="text-text">In progress or awaiting action</span>
309 </div>
310 <div className="flex items-center gap-3">
311 <span className="px-2 py-1 bg-danger/20 text-danger rounded text-xs font-medium">LOW STOCK</span>
312 <span className="text-text">Inventory below minimum level</span>
313 </div>
314 </div>
315 </div>
316
317 <div className="border-l-4 border-brand bg-brand/10 p-4">
318 <h3 className="font-semibold text-text mb-2">Modals & Popups</h3>
319 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
320 <li>Click outside the modal or press <strong>×</strong> to close</li>
321 <li>Form changes are only saved when you click Save/Submit</li>
322 <li>Use Cancel to discard changes</li>
323 <li>Delete actions require confirmation</li>
324 </ul>
325 </div>
326 </div>
327
328 <div className="mt-6 p-4 bg-info/10 border border-info/30 rounded-lg">
329 <h3 className="font-semibold text-text mb-2 flex items-center gap-2">
330 <Icon name="tips_and_updates" size={20} />
331 Pro Tips
332 </h3>
333 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
334 <li>Most forms auto-save as you type</li>
335 <li>Use keyboard shortcuts: Enter to submit, Esc to close modals</li>
336 <li>Hover over buttons to see tooltips</li>
337 <li>Look for the (i) icon for additional help</li>
338 </ul>
339 </div>
340 </div>
341 )}
342
343 {activeGuide === "sales" && (
344 <div className="space-y-6">
345 <h2 className="text-3xl font-bold text-text flex items-center gap-2">
346 <Icon name="payments" size={40} />
347 Making Sales
348 </h2>
349
350 <div className="space-y-4">
351 <div className="border-l-4 border-success bg-success/10 p-4">
352 <h3 className="font-semibold text-text mb-2">Step 1: Navigate to Sales Page</h3>
353 <p className="text-text text-sm mb-2">
354 Click on <strong>Selling → Sell</strong> in the left sidebar
355 </p>
356 <Link
357 href="/pages/sales"
358 className="inline-block mt-2 px-4 py-2 bg-success text-white rounded hover:bg-success/90 text-sm"
359 >
360 Go to Sales Page
361 </Link>
362 </div>
363
364 <div className="border-l-4 border-info bg-info/10 p-4">
365 <h3 className="font-semibold text-text mb-2">Step 2: Add Products</h3>
366 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
367 <li>Search for products by name, barcode, or SKU</li>
368 <li>Click on a product to add it to the cart</li>
369 <li>Adjust quantities as needed</li>
370 <li>Remove items by clicking the trash icon</li>
371 </ul>
372 </div>
373
374 <div className="border-l-4 border-brand2 bg-brand2/10 p-4">
375 <h3 className="font-semibold text-text mb-2">Step 3: Select Customer (Optional)</h3>
376 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
377 <li>Search for an existing customer</li>
378 <li>Link loyalty accounts for rewards</li>
379 <li>Leave blank for walk-in customers</li>
380 </ul>
381 </div>
382
383 <div className="border-l-4 border-warn bg-warn/10 p-4">
384 <h3 className="font-semibold text-text mb-2">Step 4: Process Payment</h3>
385 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
386 <li>Choose payment method: Cash, Card, or Other</li>
387 <li>Enter the payment amount</li>
388 <li>Click <strong>Complete Sale</strong> to finalize</li>
389 <li>Print or email receipt</li>
390 </ul>
391 </div>
392 </div>
393
394 <div className="mt-6 p-4 bg-warn/10 border border-warn/30 rounded-lg">
395 <h3 className="font-semibold text-text mb-2 flex items-center gap-2">
396 <Icon name="lightbulb" size={20} />
397 Tips & Tricks
398 </h3>
399 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
400 <li>Use barcode scanner for faster checkout</li>
401 <li>View recent sales in <strong>Selling → Invoices</strong></li>
402 <li>Check daily totals in <strong>Selling → End of Day</strong></li>
403 </ul>
404 </div>
405 </div>
406 )}
407
408 {activeGuide === "customers" && (
409 <div className="space-y-6">
410 <h2 className="text-3xl font-bold text-text flex items-center gap-2">
411 <Icon name="groups" size={40} />
412 Managing Customers
413 </h2>
414
415 <div className="space-y-4">
416 <div className="border-l-4 border-success bg-success/10 p-4">
417 <h3 className="font-semibold text-text mb-2">Adding New Customers</h3>
418 <p className="text-text text-sm mb-2">
419 Navigate to <strong>Customers → Customers</strong> and click <strong>+ Add Customer</strong>
420 </p>
421 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2 mt-2">
422 <li>Enter customer name and contact information</li>
423 <li>Add email for digital receipts</li>
424 <li>Set up loyalty program if applicable</li>
425 </ul>
426 <Link
427 href="/pages/customers"
428 className="inline-block mt-2 px-4 py-2 bg-success text-white rounded hover:bg-success/90 text-sm"
429 >
430 Manage Customers
431 </Link>
432 </div>
433
434 <div className="border-l-4 border-info bg-info/10 p-4">
435 <h3 className="font-semibold text-text mb-2">Viewing Customer Details</h3>
436 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
437 <li>Click on any customer to view their profile</li>
438 <li>See purchase history and account balance</li>
439 <li>Edit contact information as needed</li>
440 <li>View loyalty points and rewards</li>
441 </ul>
442 </div>
443
444 <div className="border-l-4 border-brand2 bg-brand2/10 p-4">
445 <h3 className="font-semibold text-text mb-2">Loyalty Programs</h3>
446 <p className="text-text text-sm mb-2">
447 Go to <strong>Customers → Loyalty</strong> to manage rewards programs
448 </p>
449 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
450 <li>Track customer loyalty points</li>
451 <li>Redeem rewards during checkout</li>
452 <li>View loyalty program performance</li>
453 </ul>
454 <Link
455 href="/pages/customers/loyalty"
456 className="inline-block mt-2 px-4 py-2 bg-brand2 text-white rounded hover:bg-brand2/90 text-sm"
457 >
458 View Loyalty Programs
459 </Link>
460 </div>
461
462 <div className="border-l-4 border-warn bg-warn/10 p-4">
463 <h3 className="font-semibold text-text mb-2">Customer Accounts</h3>
464 <p className="text-text text-sm mb-2">
465 Manage credit accounts at <strong>Customers → Customer Accounts</strong>
466 </p>
467 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
468 <li>Set credit limits for customers</li>
469 <li>Track outstanding balances</li>
470 <li>Process account payments</li>
471 <li>Generate account statements</li>
472 </ul>
473 </div>
474 </div>
475 </div>
476 )}
477
478 {activeGuide === "products" && (
479 <div className="space-y-6">
480 <h2 className="text-3xl font-bold text-text flex items-center gap-2">
481 <Icon name="inventory_2" size={40} />
482 Product Management
483 </h2>
484
485 <div className="space-y-4">
486 <div className="border-l-4 border-success bg-success/10 p-4">
487 <h3 className="font-semibold text-text mb-2">Viewing Products</h3>
488 <p className="text-text text-sm mb-2">
489 Access your product catalog at <strong>Products → Products</strong>
490 </p>
491 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
492 <li>Search by name, barcode, or product ID</li>
493 <li>Filter by stock levels or price range</li>
494 <li>Sort by various criteria</li>
495 <li>View product details and stock levels</li>
496 </ul>
497 <Link
498 href="/pages/products"
499 className="inline-block mt-2 px-4 py-2 bg-success text-white rounded hover:bg-success/90 text-sm"
500 >
501 View Products
502 </Link>
503 </div>
504
505 <div className="border-l-4 border-info bg-info/10 p-4">
506 <h3 className="font-semibold text-text mb-2">Adjusting Stock Levels</h3>
507 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
508 <li>Click <strong>Edit Stock</strong> on any product</li>
509 <li>Enter adjustment amount (positive to add, negative to reduce)</li>
510 <li>Select reason: Received, Damage, Return, etc.</li>
511 <li>Click <strong>Update Stock</strong> to save</li>
512 </ul>
513 </div>
514
515 <div className="border-l-4 border-brand2 bg-brand2/10 p-4">
516 <h3 className="font-semibold text-text mb-2">Managing Purchase Orders</h3>
517 <p className="text-text text-sm mb-2">
518 Go to <strong>Products → Purchase Orders</strong>
519 </p>
520 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
521 <li>Create new purchase orders for suppliers</li>
522 <li>Track order status and delivery</li>
523 <li>Receive stock and update inventory</li>
524 </ul>
525 <Link
526 href="/purchase-orders"
527 className="inline-block mt-2 px-4 py-2 bg-brand2 text-white rounded hover:bg-brand2/90 text-sm"
528 >
529 Manage Purchase Orders
530 </Link>
531 </div>
532
533 <div className="border-l-4 border-warn bg-warn/10 p-4">
534 <h3 className="font-semibold text-text mb-2">Price Changes</h3>
535 <p className="text-text text-sm mb-2">
536 Manage pricing at <strong>Products → Price Changes</strong>
537 </p>
538 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
539 <li>Schedule future price changes</li>
540 <li>Apply bulk price updates</li>
541 <li>View pending changes</li>
542 <li>Generate price tags and labels</li>
543 </ul>
544 </div>
545 </div>
546 </div>
547 )}
548
549 {activeGuide === "stock" && (
550 <div className="space-y-6">
551 <h2 className="text-3xl font-bold text-text flex items-center gap-2">
552 <Icon name="fact_check" size={40} />
553 Stock Takes
554 </h2>
555
556 <div className="space-y-4">
557 <div className="border-l-4 border-success bg-success/10 p-4">
558 <h3 className="font-semibold text-text mb-2">What is a Stock Take?</h3>
559 <p className="text-text text-sm">
560 A stock take (or stocktake) is a physical count of your inventory to verify that your
561 system records match reality. This helps identify discrepancies, theft, or damage.
562 </p>
563 </div>
564
565 <div className="border-l-4 border-info bg-info/10 p-4">
566 <h3 className="font-semibold text-text mb-2">Creating a New Stock Take</h3>
567 <p className="text-text text-sm mb-2">
568 Navigate to <strong>Products → Stocktake</strong>
569 </p>
570 <ol className="list-decimal list-inside text-text text-sm space-y-2 ml-2">
571 <li>Click <strong>Create New Stocktake</strong></li>
572 <li>Enter a description (e.g., "Monthly Stock Take - Jan 2025")</li>
573 <li>Select the store/location</li>
574 <li>Add any comments or notes</li>
575 <li>Click <strong>Create</strong></li>
576 </ol>
577 <Link
578 href="/pages/products/stocktake"
579 className="inline-block mt-2 px-4 py-2 bg-info text-white rounded hover:bg-info/90 text-sm"
580 >
581 Start Stock Take
582 </Link>
583 </div>
584
585 <div className="border-l-4 border-brand2 bg-brand2/10 p-4">
586 <h3 className="font-semibold text-text mb-2">Counting Stock</h3>
587 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
588 <li>Scan product barcodes or search by name</li>
589 <li>Enter the physical count quantity</li>
590 <li>System will calculate variance</li>
591 <li>Continue until all products are counted</li>
592 </ul>
593 </div>
594
595 <div className="border-l-4 border-warn bg-warn/10 p-4">
596 <h3 className="font-semibold text-text mb-2">Finalizing Stock Take</h3>
597 <ol className="list-decimal list-inside text-text text-sm space-y-2 ml-2">
598 <li>Review all counted items</li>
599 <li>Check variances (differences between system and physical count)</li>
600 <li>Investigate large discrepancies</li>
601 <li>Click <strong>Finalize</strong> to update system inventory</li>
602 <li>Generate variance report for records</li>
603 </ol>
604 </div>
605
606 <div className="border-l-4 border-danger bg-danger/10 p-4">
607 <h3 className="font-semibold text-text mb-2 flex items-center gap-2">
608 <Icon name="warning" size={20} />
609 Important Notes
610 </h3>
611 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
612 <li>Stop sales during stock take for accuracy</li>
613 <li>Count carefully - errors affect inventory records</li>
614 <li>Save progress regularly</li>
615 <li>Finalizing updates all stock levels permanently</li>
616 </ul>
617 </div>
618 </div>
619
620 <div className="mt-6 p-4 bg-success/10 border border-success/30 rounded-lg">
621 <h3 className="font-semibold text-text mb-2 flex items-center gap-2">
622 <Icon name="lightbulb" size={20} />
623 Best Practices
624 </h3>
625 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
626 <li>Schedule stock takes during quiet hours</li>
627 <li>Use teams to count different sections</li>
628 <li>Do monthly or quarterly stock takes</li>
629 <li>Keep previous stock take reports for comparison</li>
630 </ul>
631 </div>
632 </div>
633 )}
634
635 {activeGuide === "reports" && (
636 <div className="space-y-6">
637 <h2 className="text-3xl font-bold text-text flex items-center gap-2">
638 <Icon name="assessment" size={40} />
639 Reports & Analytics
640 </h2>
641
642 <div className="space-y-4">
643 <div className="border-l-4 border-success bg-success/10 p-4">
644 <h3 className="font-semibold text-text mb-2">Sales Reports</h3>
645 <p className="text-text text-sm mb-2">
646 View detailed sales analytics at <strong>Reports → Sales Reports</strong>
647 </p>
648 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
649 <li>Daily, weekly, and monthly sales trends</li>
650 <li>Hourly sales patterns</li>
651 <li>Payment method breakdown</li>
652 <li>Top-selling products</li>
653 </ul>
654 <Link
655 href="/pages/reports/sales-reports"
656 className="inline-block mt-2 px-4 py-2 bg-success text-white rounded hover:bg-success/90 text-sm"
657 >
658 View Sales Reports
659 </Link>
660 </div>
661
662 <div className="border-l-4 border-info bg-info/10 p-4">
663 <h3 className="font-semibold text-text mb-2">Analytics Dashboard</h3>
664 <p className="text-text text-sm mb-2">
665 Interactive dashboards at <strong>Reports → Analytics Dashboard</strong>
666 </p>
667 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
668 <li>Visual charts and graphs</li>
669 <li>KPI tracking (revenue, profit, items sold)</li>
670 <li>Customizable date ranges</li>
671 <li>Export data to Excel</li>
672 </ul>
673 <Link
674 href="/pages/reports/analytics"
675 className="inline-block mt-2 px-4 py-2 bg-info text-white rounded hover:bg-info/90 text-sm"
676 >
677 View Analytics
678 </Link>
679 </div>
680
681 <div className="border-l-4 border-brand2 bg-brand2/10 p-4">
682 <h3 className="font-semibold text-text mb-2">End of Day Reports</h3>
683 <p className="text-text text-sm mb-2">
684 Daily reconciliation at <strong>Selling → End of Day</strong>
685 </p>
686 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
687 <li>Total sales by payment type</li>
688 <li>Cash reconciliation</li>
689 <li>Refunds and voids summary</li>
690 <li>Print daily report</li>
691 </ul>
692 <Link
693 href="/pages/sales/end-of-day"
694 className="inline-block mt-2 px-4 py-2 bg-brand2 text-white rounded hover:bg-brand2/90 text-sm"
695 >
696 Go to End of Day
697 </Link>
698 </div>
699
700 <div className="border-l-4 border-warn bg-warn/10 p-4">
701 <h3 className="font-semibold text-text mb-2">Inventory Reports</h3>
702 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
703 <li>Low stock alerts</li>
704 <li>Stock movement history</li>
705 <li>Product performance</li>
706 <li>Supplier analysis</li>
707 </ul>
708 </div>
709 </div>
710
711 <div className="mt-6 p-4 bg-info/10 border border-info/30 rounded-lg">
712 <h3 className="font-semibold text-text mb-2 flex items-center gap-2">
713 <Icon name="lightbulb" size={20} />
714 Using Reports Effectively
715 </h3>
716 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
717 <li>Review sales reports daily to track performance</li>
718 <li>Use date filters to compare periods</li>
719 <li>Export reports for accounting records</li>
720 <li>Set up alerts for low stock items</li>
721 </ul>
722 </div>
723 </div>
724 )}
725
726 {activeGuide === 'search' && (
727 <div>
728 <h2 className="text-2xl font-bold text-text mb-6 flex items-center gap-2">
729 <Icon name="search" size={36} />
730 Search & Filters
731 </h2>
732
733 <div className="mb-6 p-4 bg-gradient-to-r from-info/10 to-brand/10 border border-info/30 rounded-lg">
734 <h3 className="font-semibold text-text mb-2 flex items-center gap-2">
735 <Icon name="search" size={20} />
736 Powerful Search at Your Fingertips
737 </h3>
738 <p className="text-text text-sm">
739 The search system is designed to find what you need instantly. Most pages feature live search -
740 results update as you type without needing to press Enter or click buttons.
741 </p>
742 </div>
743
744 <div className="space-y-6">
745 <div className="border-l-4 border-info bg-info/10 p-4">
746 <h3 className="font-semibold text-text mb-3">Basic Search</h3>
747 <p className="text-text text-sm mb-3">
748 Search boxes appear at the top of most pages. Simply start typing:
749 </p>
750 <div className="bg-surface p-3 rounded border border-border mb-3">
751 <ul className="text-text text-sm space-y-2">
752 <li className="flex items-start">
753 <span className="text-info mr-2">•</span>
754 <span><strong>Products:</strong> Search by name, PLU, SKU, or barcode</span>
755 </li>
756 <li className="flex items-start">
757 <span className="text-success mr-2">•</span>
758 <span><strong>Customers:</strong> Search by name, phone, or account number</span>
759 </li>
760 <li className="flex items-start">
761 <span className="text-warn mr-2">•</span>
762 <span><strong>Sales:</strong> Search by invoice number, customer, or amount</span>
763 </li>
764 </ul>
765 </div>
766 <div className="bg-surface-2 p-3 rounded border border-border">
767 <p className="text-muted text-xs mb-2">Example:</p>
768 <code className="text-sm text-text">Type: "canon" → Instantly shows all Canon products</code>
769 </div>
770 </div>
771
772 <div className="border-l-4 border-success bg-success/10 p-4">
773 <h3 className="font-semibold text-text mb-3">Advanced Product Search</h3>
774 <p className="text-text text-sm mb-3">
775 Use special prefixes to search by specific fields:
776 </p>
777 <div className="bg-surface p-3 rounded border border-border space-y-3">
778 <div>
779 <code className="text-sm font-semibold text-info">pid=123</code>
780 <p className="text-muted text-xs mt-1">Jump directly to product with ID 123</p>
781 </div>
782 <div>
783 <code className="text-sm font-semibold text-success">plu=4567</code>
784 <p className="text-muted text-xs mt-1">Find product with PLU code 4567</p>
785 </div>
786 <div>
787 <code className="text-sm font-semibold text-warn">sku=ABC-123</code>
788 <p className="text-muted text-xs mt-1">Search by SKU/model number</p>
789 </div>
790 <div>
791 <code className="text-sm font-semibold text-brand2">barcode=9876543210</code>
792 <p className="text-muted text-xs mt-1">Find product by barcode scan</p>
793 </div>
794 </div>
795 <div className="mt-3 p-3 bg-warn/10 border border-warn/30 rounded">
796 <p className="text-text text-xs">
797 <strong className="flex items-center gap-1">
798 <Icon name="lightbulb" size={14} />
799 Pro Tip:
800 </strong> These searches work in the main search bar too!
801 Type "pid=123" from anywhere to quickly jump to that product.
802 </p>
803 </div>
804 </div>
805
806 <div className="border-l-4 border-brand2 bg-brand2/10 p-4">
807 <h3 className="font-semibold text-text mb-3">Filters & Date Ranges</h3>
808 <p className="text-text text-sm mb-3">
809 Many pages include filter dropdowns to narrow results:
810 </p>
811 <ul className="list-disc list-inside text-text text-sm space-y-2 ml-2">
812 <li><strong>Date filters:</strong> Today, This Week, This Month, Custom Range</li>
813 <li><strong>Status filters:</strong> Complete, Pending, Cancelled, All</li>
814 <li><strong>Category filters:</strong> Filter by product category or department</li>
815 <li><strong>Payment filters:</strong> Cash, Card, Account, All Methods</li>
816 </ul>
817 <div className="mt-3 bg-surface p-3 rounded border border-border">
818 <p className="text-text text-sm mb-2"><strong>Combining Filters:</strong></p>
819 <p className="text-muted text-xs">
820 Use search + filters together for precise results. Example: Search "Invoice #1234"
821 then filter by "This Week" to find recent invoices matching that number.
822 </p>
823 </div>
824 </div>
825
826 <div className="border-l-4 border-warn bg-warn/10 p-4">
827 <h3 className="font-semibold text-text mb-3">Table Sorting</h3>
828 <p className="text-text text-sm mb-3">
829 Click any column header to sort by that field:
830 </p>
831 <div className="bg-surface p-3 rounded border border-border space-y-2">
832 <div className="flex items-center text-sm">
833 <span className="text-info mr-2">▲</span>
834 <span className="text-text">Click once: Sort ascending (A→Z, 0→9)</span>
835 </div>
836 <div className="flex items-center text-sm">
837 <span className="text-danger mr-2">▼</span>
838 <span className="text-text">Click twice: Sort descending (Z→A, 9→0)</span>
839 </div>
840 <div className="flex items-center text-sm">
841 <span className="text-muted mr-2">⬍</span>
842 <span className="text-text">Click third time: Remove sort</span>
843 </div>
844 </div>
845 <div className="mt-3 p-3 bg-info/10 border border-info/30 rounded">
846 <p className="text-text text-xs">
847 <strong>Note:</strong> Sorting is instant and happens in your browser -
848 no page reload needed!
849 </p>
850 </div>
851 </div>
852
853 <div className="border-l-4 border-brand bg-brand/10 p-4">
854 <h3 className="font-semibold text-text mb-3">Quick Search Tips</h3>
855 <div className="space-y-3">
856 <div className="bg-surface p-3 rounded border border-border">
857 <p className="font-semibold text-text text-sm mb-2 flex items-center gap-1">
858 <Icon name="rocket_launch" size={16} />
859 Speed Techniques:
860 </p>
861 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
862 <li>Search is case-insensitive - type lowercase for speed</li>
863 <li>Partial matches work - "hp" finds "HP LaserJet"</li>
864 <li>Numbers-only searches check IDs, PLUs, and barcodes</li>
865 <li>Use keyboard: Press Tab to move through results</li>
866 </ul>
867 </div>
868 <div className="bg-surface p-3 rounded border border-border">
869 <p className="font-semibold text-text text-sm mb-2 flex items-center gap-1">
870 <Icon name="speed" size={16} />
871 Performance Notes:
872 </p>
873 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
874 <li>First search may take a moment while data loads</li>
875 <li>Subsequent searches are instant (cached locally)</li>
876 <li>Large result sets limited to 100 items - use filters to narrow</li>
877 <li>Refresh page if data seems outdated</li>
878 </ul>
879 </div>
880 </div>
881 </div>
882 </div>
883
884 <div className="mt-6 p-4 bg-info/10 border border-info/30 rounded-lg">
885 <h3 className="font-semibold text-text mb-2 flex items-center gap-2">
886 <Icon name="lightbulb" size={20} />
887 Search Best Practices
888 </h3>
889 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
890 <li>Be specific when possible - exact matches appear first</li>
891 <li>Use advanced search prefixes for instant lookups</li>
892 <li>Combine search with filters for precision</li>
893 <li>Click column headers to sort results your way</li>
894 <li>Clear search to see all items again</li>
895 </ul>
896 </div>
897 </div>
898 )}
899
900 {activeGuide === 'tips' && (
901 <div>
902 <h2 className="text-2xl font-bold text-text mb-6 flex items-center gap-2">
903 <Icon name="tips_and_updates" size={36} />
904 Tips & Best Practices
905 </h2>
906
907 <div className="mb-6 p-4 bg-gradient-to-r from-warn/10 to-success/10 border border-warn/30 rounded-lg">
908 <h3 className="font-semibold text-text mb-2 flex items-center gap-2">
909 <Icon name="lightbulb" size={20} />
910 Work Smarter, Not Harder
911 </h3>
912 <p className="text-text text-sm">
913 Even experienced users can learn new tricks. These tips help you work faster and avoid common pitfalls.
914 </p>
915 </div>
916
917 <div className="space-y-6">
918 <div className="border-l-4 border-success bg-success/10 p-4">
919 <h3 className="font-semibold text-text mb-3 flex items-center gap-2">
920 <Icon name="speed" size={20} />
921 Performance Optimization
922 </h3>
923 <div className="space-y-3">
924 <div>
925 <p className="font-semibold text-text text-sm mb-2">Database Performance</p>
926 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
927 <li>First page load may be slower - subsequent loads are cached</li>
928 <li>Use date filters to limit large reports (faster queries)</li>
929 <li>Sorting large tables happens in browser (instant)</li>
930 <li>Refresh only when you need updated data</li>
931 </ul>
932 </div>
933 <div className="bg-surface p-3 rounded border border-border">
934 <p className="text-text text-sm">
935 <strong>Why sorting is instant:</strong> We load data once, then sort in your browser.
936 This means you can sort by different columns without waiting for the server.
937 </p>
938 </div>
939 </div>
940 </div>
941
942 <div className="border-l-4 border-info bg-info/10 p-4">
943 <h3 className="font-semibold text-text mb-3 flex items-center gap-2">
944 <Icon name="keyboard" size={20} />
945 Keyboard Shortcuts
946 </h3>
947 <div className="bg-surface p-3 rounded border border-border space-y-2">
948 <div className="flex justify-between items-center text-sm">
949 <code className="bg-surface-2 px-2 py-1 rounded text-text">Ctrl + K</code>
950 <span className="text-text">Focus search bar</span>
951 </div>
952 <div className="flex justify-between items-center text-sm">
953 <code className="bg-surface-2 px-2 py-1 rounded text-text">Enter</code>
954 <span className="text-text">Submit form / Select item</span>
955 </div>
956 <div className="flex justify-between items-center text-sm">
957 <code className="bg-surface-2 px-2 py-1 rounded text-text">Esc</code>
958 <span className="text-text">Close modal / Clear search</span>
959 </div>
960 <div className="flex justify-between items-center text-sm">
961 <code className="bg-surface-2 px-2 py-1 rounded text-text">Tab</code>
962 <span className="text-text">Navigate through form fields</span>
963 </div>
964 <div className="flex justify-between items-center text-sm">
965 <code className="bg-surface-2 px-2 py-1 rounded text-text">Arrow Keys</code>
966 <span className="text-text">Navigate table rows</span>
967 </div>
968 </div>
969 </div>
970
971 <div className="border-l-4 border-brand2 bg-brand2/10 p-4">
972 <h3 className="font-semibold text-text mb-3 flex items-center gap-2">
973 <Icon name="track_changes" size={20} />
974 Common Workflow Tips
975 </h3>
976 <div className="space-y-3">
977 <div className="bg-surface p-3 rounded border border-border">
978 <p className="font-semibold text-text text-sm mb-2">Starting Your Day:</p>
979 <ol className="list-decimal list-inside text-text text-sm space-y-1 ml-2">
980 <li>Check dashboard for overnight activity</li>
981 <li>Review low stock alerts</li>
982 <li>Check pending orders or layaways</li>
983 <li>Verify cash drawer balance</li>
984 </ol>
985 </div>
986 <div className="bg-surface p-3 rounded border border-border">
987 <p className="font-semibold text-text text-sm mb-2">During Peak Hours:</p>
988 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
989 <li>Keep search bar handy for quick product lookups</li>
990 <li>Use barcode scanner to speed up sales</li>
991 <li>Add notes to sales for special requests</li>
992 <li>Create customer accounts for regulars</li>
993 </ul>
994 </div>
995 <div className="bg-surface p-3 rounded border border-border">
996 <p className="font-semibold text-text text-sm mb-2">End of Day:</p>
997 <ol className="list-decimal list-inside text-text text-sm space-y-1 ml-2">
998 <li>Run End of Day report</li>
999 <li>Reconcile cash and card payments</li>
1000 <li>Review any voided or refunded sales</li>
1001 <li>Export reports for accounting</li>
1002 </ol>
1003 </div>
1004 </div>
1005 </div>
1006
1007 <div className="border-l-4 border-danger bg-danger/10 p-4">
1008 <h3 className="font-semibold text-text mb-3 flex items-center gap-2">
1009 <Icon name="warning" size={20} />
1010 Common Pitfalls to Avoid
1011 </h3>
1012 <div className="space-y-3">
1013 <div className="flex items-start">
1014 <span className="text-danger font-bold mr-2">✗</span>
1015 <div>
1016 <p className="font-semibold text-text text-sm">Don't refresh during save operations</p>
1017 <p className="text-muted text-xs">Wait for "Saving..." to complete to avoid data loss</p>
1018 </div>
1019 </div>
1020 <div className="flex items-start">
1021 <span className="text-danger font-bold mr-2">✗</span>
1022 <div>
1023 <p className="font-semibold text-text text-sm">Don't delete without checking references</p>
1024 <p className="text-muted text-xs">Deleting products with sales history can cause issues</p>
1025 </div>
1026 </div>
1027 <div className="flex items-start">
1028 <span className="text-danger font-bold mr-2">✗</span>
1029 <div>
1030 <p className="font-semibold text-text text-sm">Don't ignore low stock warnings</p>
1031 <p className="text-muted text-xs">Set up reorder points to avoid stockouts</p>
1032 </div>
1033 </div>
1034 <div className="flex items-start">
1035 <span className="text-danger font-bold mr-2">✗</span>
1036 <div>
1037 <p className="font-semibold text-text text-sm">Don't forget to save before closing</p>
1038 <p className="text-muted text-xs">Forms don't auto-save - click Save button</p>
1039 </div>
1040 </div>
1041 </div>
1042 </div>
1043
1044 <div className="border-l-4 border-brand bg-brand/10 p-4">
1045 <h3 className="font-semibold text-text mb-3 flex items-center gap-2">
1046 <Icon name="build" size={20} />
1047 Troubleshooting Quick Fixes
1048 </h3>
1049 <div className="space-y-3">
1050 <div className="bg-surface p-3 rounded border border-border">
1051 <p className="font-semibold text-text text-sm mb-2">If search isn't working:</p>
1052 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
1053 <li>Clear your browser cache (Ctrl+Shift+Delete)</li>
1054 <li>Refresh the page (F5)</li>
1055 <li>Check your internet connection</li>
1056 </ul>
1057 </div>
1058 <div className="bg-surface p-3 rounded border border-border">
1059 <p className="font-semibold text-text text-sm mb-2">If data looks outdated:</p>
1060 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
1061 <li>Click the Refresh button on the page</li>
1062 <li>Check if another user made recent changes</li>
1063 <li>Verify your system clock is correct</li>
1064 </ul>
1065 </div>
1066 <div className="bg-surface p-3 rounded border border-border">
1067 <p className="font-semibold text-text text-sm mb-2">If forms won't save:</p>
1068 <ul className="list-disc list-inside text-text text-sm space-y-1 ml-2">
1069 <li>Check all required fields are filled (marked with *)</li>
1070 <li>Look for red error messages below fields</li>
1071 <li>Verify numbers don't have invalid characters</li>
1072 <li>Try logging out and back in</li>
1073 </ul>
1074 </div>
1075 </div>
1076 </div>
1077
1078 <div className="border-l-4 border-warn bg-warn/10 p-4">
1079 <h3 className="font-semibold text-text mb-3 flex items-center gap-2">
1080 <Icon name="star" size={20} />
1081 Power User Secrets
1082 </h3>
1083 <div className="space-y-2">
1084 <div className="flex items-start">
1085 <span className="text-warn font-bold mr-2">★</span>
1086 <p className="text-text text-sm">Right-click table rows for quick actions menu (where available)</p>
1087 </div>
1088 <div className="flex items-start">
1089 <span className="text-warn font-bold mr-2">★</span>
1090 <p className="text-text text-sm">Use browser bookmarks for frequently accessed pages</p>
1091 </div>
1092 <div className="flex items-start">
1093 <span className="text-warn font-bold mr-2">★</span>
1094 <p className="text-text text-sm">Keep multiple tabs open for different tasks</p>
1095 </div>
1096 <div className="flex items-start">
1097 <span className="text-warn font-bold mr-2">★</span>
1098 <p className="text-text text-sm">Export reports regularly for backup records</p>
1099 </div>
1100 <div className="flex items-start">
1101 <span className="text-warn font-bold mr-2">★</span>
1102 <p className="text-text text-sm">Use browser's Find (Ctrl+F) to search within reports</p>
1103 </div>
1104 </div>
1105 </div>
1106 </div>
1107
1108 <div className="mt-6 p-4 bg-info/10 border border-info/30 rounded-lg">
1109 <h3 className="font-semibold text-text mb-2 flex items-center gap-2">
1110 <Icon name="school" size={20} />
1111 Keep Learning
1112 </h3>
1113 <p className="text-text text-sm mb-3">
1114 This system is constantly being improved. Check back here occasionally to learn about new features and tips.
1115 </p>
1116 <p className="text-text text-sm">
1117 Need technical details? Visit <Link href="/pages/technical/documentation" className="underline font-semibold text-brand hover:text-brand/80">Technical Documentation</Link> for API references and developer guides.
1118 </p>
1119 </div>
1120 </div>
1121 )}
1122 </div>
1123 </div>
1124 </div>
1125 </div>
1126 </div>
1127 );
1128}