EverydayTech Platform - Developer Reference
Complete Source Code Documentation - All Applications
Loading...
Searching...
No Matches
docsData.js
Go to the documentation of this file.
1// Centralized documentation content and structure
2// Each doc has: slug, title, icon, summary, and sections [{ heading, body?, steps?, list? }]
3
4export const docGroups = [
5 {
6 title: 'Getting Started',
7 id: 'getting-started',
8 items: [
9 {
10 slug: 'overview',
11 title: 'Overview',
12 icon: 'menu_book',
13 summary: 'What the IBG MSP Platform offers and how it fits your workflow.',
14 sections: [
15 {
16 heading: 'Welcome',
17 body: 'The IBG MSP Platform unifies Remote Monitoring & Management (RMM) with Professional Services Automation (PSA) in a multi-tenant architecture designed for MSPs.'
18 }
19 ]
20 },
21 {
22 slug: 'quick-start',
23 title: 'Quick Start',
24 icon: 'rocket_launch',
25 summary: 'Create an account, configure your org, and deploy agents.',
26 sections: [
27 {
28 heading: 'Steps',
29 steps: [
30 {
31 title: 'Create Your Account',
32 text: 'Sign up or log in to your workspace.'
33 },
34 {
35 title: 'Set Up Organization',
36 text: 'Configure profile, branding, and default settings.'
37 },
38 {
39 title: 'Deploy Agents',
40 text: 'Install monitoring agents on endpoints to start reporting metrics.'
41 }
42 ]
43 }
44 ]
45 },
46 {
47 slug: 'themes',
48 title: 'Changing Themes',
49 icon: 'palette',
50 summary: 'Customize your dashboard appearance with light, dark, and accessibility themes.',
51 image: '/images/docs/dashboard-theme.png',
52 sections: [
53 {
54 heading: 'Available Themes',
55 body: 'The platform offers 7 theme options to match your preferences and accessibility needs:',
56 list: [
57 'System - Automatically matches your operating system preference',
58 'Light - Clean, bright interface ideal for well-lit environments',
59 'Dark - Easy on the eyes in low-light conditions, reduces eye strain',
60 'Blue - Professional blue-accented interface',
61 'Green - Nature-inspired green accents with a calming palette',
62 'High Contrast - Maximum readability with stark black/white contrast and bold text',
63 'Colorblind - Scientifically-tested colors safe for all types of color vision deficiency'
64 ]
65 },
66 {
67 heading: 'Changing Theme from Header',
68 body: 'The quickest way to switch themes is using the theme selector in the navigation header.',
69 steps: [
70 {
71 title: 'Locate the Theme Button',
72 text: 'Look for the theme icon in the top navigation bar (it shows a palette, sun, or moon icon depending on your current theme).'
73 },
74 {
75 title: 'Open Theme Menu',
76 text: 'Click the theme button to open a dropdown menu showing all available themes.'
77 },
78 {
79 title: 'Select Your Theme',
80 text: 'Click on any theme name to apply it immediately. The interface will update instantly.'
81 },
82 {
83 title: 'Automatic Save',
84 text: 'Your selection is saved automatically and will persist across sessions and devices.'
85 }
86 ]
87 },
88 {
89 heading: 'Changing Theme in Settings',
90 body: 'You can also change your theme from the Settings page for a more detailed configuration experience.',
91 steps: [
92 {
93 title: 'Navigate to Settings',
94 text: 'Click on "Settings" in the main navigation menu.'
95 },
96 {
97 title: 'Find Display Section',
98 text: 'Scroll to the "Display Preferences" section where theme options are located.'
99 },
100 {
101 title: 'Select Theme',
102 text: 'Choose your preferred theme from the dropdown menu.'
103 },
104 {
105 title: 'Save Changes',
106 text: 'Click "Save Display Settings" to apply your selection.'
107 }
108 ]
109 },
110 {
111 heading: 'Accessibility Themes',
112 body: 'Two specialized themes are available for enhanced accessibility:',
113 list: [
114 'High Contrast - Features pure black text on white backgrounds with 21:1 contrast ratio (WCAG AAA), thick 2-3px borders, and bold fonts for maximum legibility. Perfect for users with low vision or viewing in bright sunlight.',
115 'Colorblind - Uses a scientifically-tested color palette that works for all types of color blindness. Includes visual symbols (✓, ⚠, ✗) alongside colors to ensure status indicators are always distinguishable.'
116 ]
117 },
118 {
119 heading: 'System Theme Behavior',
120 body: 'When you select "System" theme, the platform automatically matches your operating system\'s light or dark mode preference. If you change your OS preference, the platform theme will update automatically without requiring a page refresh.'
121 },
122 {
123 heading: 'Theme Persistence',
124 body: 'Your theme preference is saved in two places: locally in your browser and in your user profile on the server. This means your theme will be consistent across all your devices and will persist even if you clear your browser data.'
125 },
126 {
127 heading: 'Tips',
128 list: [
129 'Try the High Contrast theme if you find text difficult to read',
130 'Use the Colorblind theme if you have difficulty distinguishing status colors',
131 'Dark theme is recommended for extended use in low-light environments',
132 'System theme is great if you switch between day and night work schedules'
133 ]
134 }
135 ]
136 }
137 ]
138 },
139 {
140 title: 'Pages',
141 id: 'pages',
142 items: [
143 {
144 slug: 'dashboard',
145 title: 'Dashboard',
146 icon: 'space_dashboard',
147 summary: 'Your high-level MSP overview: tickets, alerts, agents, and billing.',
148 image: '/images/docs/dashboard-real.png',
149 sections: [
150 {
151 heading: 'At a Glance',
152 list: [
153 'Active Tickets: Open or in-progress requests',
154 'Critical Alerts: Unread alerts from agents and systems',
155 'Online Agents: Endpoints reporting in',
156 'Invoiced/Payments This Month: Voided invoices are excluded'
157 ]
158 },
159 {
160 heading: 'Tips',
161 body: 'Use the refresh action to fetch the latest metrics.'
162 }
163 ]
164 },
165 {
166 slug: 'tickets',
167 title: 'Tickets',
168 icon: 'confirmation_number',
169 summary: 'Create, triage, and resolve customer requests with SLAs.',
170 image: '/images/docs/dashboard-tickets.png',
171 sections: [
172 {
173 heading: 'Workflow',
174 steps: [
175 { title: 'Create a ticket', text: 'Tickets → New. Enter title, description, priority, and customer.' },
176 { title: 'Update status', text: 'Assign, change priority, and close when resolved.' },
177 { title: 'Search & filter', text: 'Use the search bar and filters for status/priority/date.' }
178 ]
179 }
180 ]
181 },
182 {
183 slug: 'customers',
184 title: 'Customers',
185 icon: 'groups',
186 summary: 'Manage customer records and view related tickets and invoices.',
187 image: '/images/docs/dashboard-customers.png',
188 sections: [
189 {
190 heading: 'Basics',
191 list: [
192 'Add a customer: Customers → New',
193 'Search: Filter by name, email, or tags',
194 'Profile: View associated tickets, invoices, and contracts'
195 ]
196 }
197 ]
198 },
199 {
200 slug: 'knowledge-base',
201 title: 'Knowledge Base',
202 icon: 'menu_book',
203 summary: 'Create and maintain documentation for internal or customer use.',
204 image: '/images/docs/dashboard-kb.png',
205 sections: [
206 {
207 heading: 'Authoring',
208 list: [
209 'New article: Knowledge Base → New',
210 'Edit: Open an article and choose Edit',
211 'Search: Find articles by title or content'
212 ]
213 }
214 ]
215 },
216 {
217 slug: 'products',
218 title: 'Products',
219 icon: 'inventory_2',
220 summary: 'Billable items and stock-managed products for invoicing.',
221 image: '/images/docs/dashboard-products.png',
222 sections: [
223 {
224 heading: 'Catalog',
225 list: [
226 'Add product: price (ex GST), stock tracking, low stock alerts',
227 'Search: Filter by name or supplier',
228 'Use in invoices: Add products to line items for consistent pricing'
229 ]
230 }
231 ]
232 },
233 {
234 slug: 'invoices',
235 title: 'Invoices',
236 icon: 'receipt_long',
237 summary: 'Create, edit, void, and delete invoices with stock restocking.',
238 image: '/images/docs/dashboard-invoices.png',
239 sections: [
240 {
241 heading: 'Lifecycle',
242 steps: [
243 { title: 'Create', text: 'Invoices → New. Select customer, add items, save.' },
244 { title: 'Edit', text: 'Update items and dates; totals update automatically.' },
245 { title: 'Void', text: 'Choose Void, enter a reason; stock is restocked, reports exclude voided.' },
246 { title: 'Delete', text: 'Allowed for Draft or Voided (not Paid); deletes items and restocks if needed.' }
247 ]
248 },
249 {
250 heading: 'Note',
251 body: 'Company info (ABN, address) is configured in Settings and appears on printed invoices.'
252 }
253 ]
254 },
255 {
256 slug: 'purchase-orders',
257 title: 'Purchase Orders',
258 icon: 'shopping_cart',
259 summary: 'Track purchase orders, receiving, and stock updates.',
260 image: '/images/docs/dashboard-po.png',
261 sections: [
262 {
263 heading: 'Process',
264 list: [
265 'Create PO: Add supplier, items, expected dates',
266 'Edit/Receive: Update lines as goods arrive',
267 'Search: Filter by PO number, supplier, date'
268 ]
269 }
270 ]
271 },
272 {
273 slug: 'contracts',
274 title: 'Contracts',
275 icon: 'contract_edit',
276 summary: 'Define service contracts, SLAs, and entitlements per customer.',
277 image: '/images/docs/dashboard-contracts.png',
278 sections: [
279 {
280 heading: 'Details',
281 list: [
282 'Create/Edit: Set start/end, SLA hours, billing terms',
283 'Tenant visibility: Root admins can see tenant context in lists',
284 'Reporting: Contracts integrate with tickets and billing'
285 ]
286 }
287 ]
288 },
289 {
290 slug: 'monitoring',
291 title: 'Monitoring',
292 icon: 'monitor_heart',
293 summary: 'View metrics from deployed agents and set alert thresholds.',
294 image: '/images/docs/dashboard-monitoring.png',
295 sections: [
296 {
297 heading: 'Signals',
298 list: [
299 'Agents: Deploy to endpoints to report CPU, memory, disk',
300 'Alerts: Configure thresholds in Settings → Notifications',
301 'Incidents: Critical alerts appear on the Dashboard'
302 ]
303 }
304 ]
305 },
306 {
307 slug: 'agents',
308 title: 'Agents',
309 icon: 'smart_toy',
310 summary: 'See agent status, last seen, and assigned tickets.',
311 image: '/images/docs/dashboard-agents.png',
312 sections: [
313 {
314 heading: 'Overview',
315 list: [
316 'Status: Online agents report in within the last 5 minutes',
317 'Assignments: View tickets linked to agents'
318 ]
319 }
320 ]
321 },
322 {
323 slug: 'reports',
324 title: 'Reports',
325 icon: 'insights',
326 summary: 'Analyze revenue, customer activity, and invoice aging.',
327 image: '/images/docs/dashboard-reports.png',
328 sections: [
329 {
330 heading: 'Dashboards',
331 list: [
332 'Revenue: Monthly totals (voided invoices excluded)',
333 'Top Customers: By revenue and ticket count',
334 'Invoice Aging: Overdue breakdown across time buckets'
335 ]
336 }
337 ]
338 },
339 {
340 slug: 'integrations',
341 title: 'Integrations',
342 icon: 'extension',
343 summary: 'Connect Slack, Xero, Mailgun, Splashtop per tenant.',
344 image: '/images/docs/dashboard-integrations.png',
345 sections: [
346 {
347 heading: 'Setup',
348 list: [
349 'Enable: Choose a provider and configure credentials',
350 'Per-tenant: Root admins can manage integrations for any tenant'
351 ]
352 }
353 ]
354 },
355 {
356 slug: 'settings',
357 title: 'Settings',
358 icon: 'tune',
359 summary: 'Customize general, company, tax, notifications, and display.',
360 image: '/images/docs/dashboard-settings.png',
361 sections: [
362 {
363 heading: 'Areas',
364 list: [
365 'General: Company name, timezone, date format',
366 'Company: ABN, address, phone, email',
367 'Tax: Default GST rate',
368 'Notifications: Email/Slack and alert thresholds',
369 'Display: Theme and items per page',
370 'Tenant control: Root admins select a tenant to load/save tenant-specific settings'
371 ]
372 }
373 ]
374 }
375 ]
376 },
377 {
378 title: 'Support',
379 id: 'support',
380 items: [
381 {
382 slug: 'faq',
383 title: 'FAQ',
384 icon: 'help',
385 summary: 'Common questions and answers.',
386 sections: [
387 {
388 heading: 'General',
389 list: [
390 'Tenants: Unlimited tenants supported'
391 ]
392 }
393 ]
394 },
395 {
396 slug: 'troubleshooting',
397 title: 'Troubleshooting',
398 icon: 'bug_report',
399 summary: 'Fix common setup and runtime issues.',
400 sections: [
401 {
402 heading: 'Docker permissions',
403 body: 'If you see permission denied on /var/run/docker.sock, run with sudo or add your user to the docker group.'
404 },
405 {
406 heading: 'Backend cannot connect to DB',
407 list: [
408 'Verify database container is running',
409 'Check connection string and credentials',
410 'Confirm network and ports are accessible'
411 ]
412 }
413 ]
414 },
415 {
416 slug: 'contact-support',
417 title: 'Contact Support',
418 icon: 'support_agent',
419 summary: 'How to get help when you need it.',
420 sections: [
421 {
422 heading: 'Contact',
423 body: 'Reach out via your support channel or email with logs and steps to reproduce.'
424 }
425 ]
426 }
427 ]
428 }
429];
430
431export function findDoc(slug) {
432 for (const group of docGroups) {
433 const match = group.items.find((i) => i.slug === slug);
434 if (match) return { group, doc: match };
435 }
436 return null;
437}