├── schema.ts ├── LICENSE ├── types └── index.ts ├── README.md └── lifeAdmin.ts /schema.ts: -------------------------------------------------------------------------------- 1 | // Moved to ./types/index.ts 2 | // See lifeAdmin.ts for an implementation 3 | // (I have the master files in an Electron app folder and will 4 | // copy them here occasionally.) 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Johnny Noble 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /types/index.ts: -------------------------------------------------------------------------------- 1 | interface Dates { 2 | createdDate: string; // no harm always requiring it; why not? 3 | updatedDate: string; // allows us to do diffs 4 | } 5 | 6 | export interface ACMetadata extends Dates { 7 | // no description -- this lives on the relevant .00 note 8 | emoji?: string; 9 | /* TODO: think about AC versioning. 10 | Is it MAJOR for area, MINOR for category, PATCH? 11 | 1.1.0 = first area release 12 | 1.2.0 = this category updated; categories in area remain stable 13 | 2.1.0 = the categories in this area updated 14 | 15 | …or is the only thing that it makes sense to track a version on 16 | a category? And areas are just made up of versioned categories? 17 | */ 18 | version?: string; 19 | } 20 | 21 | export interface IDMetadata extends Dates { 22 | description?: string; 23 | emoji?: string; 24 | isHeader?: Boolean; // if you don't say it is, it isn't 25 | urls?: [string]; // an array of interesting URLs 26 | // not tags: we _generate_ tags, we don't store them 27 | } 28 | 29 | export interface Translation { 30 | title: string; 31 | // TODO: work this out when you get to it 32 | // metadata: Metadata; 33 | } 34 | 35 | export interface ID { 36 | id: string; 37 | title: string; 38 | metadata: IDMetadata; 39 | translations?: { 40 | [languageCode: string]: Translation; 41 | }; 42 | extensions?: Extensions; 43 | } 44 | 45 | export interface Category { 46 | id: string; 47 | title: string; 48 | metadata: ACMetadata; 49 | ids?: { 50 | [id: string]: ID; 51 | }; 52 | translations?: { 53 | [languageCode: string]: Translation; 54 | }; 55 | } 56 | 57 | export interface Area { 58 | id: string; 59 | title: string; 60 | metadata: ACMetadata; 61 | categories?: { 62 | [id: string]: Category; 63 | }; 64 | translations?: { 65 | [languageCode: string]: Translation; 66 | }; 67 | } 68 | 69 | export interface Extensions { 70 | jd__smallBusiness?: JDSmallBusiness; 71 | // operationsManual?: OperationsManual; 72 | // [key: string]: any; // Allows for future extensibility 73 | } 74 | 75 | export interface JDSmallBusiness { 76 | placeholder: string; 77 | } 78 | 79 | export interface OperationsManual { 80 | description: string; 81 | url?: string; 82 | version: string; 83 | createdDate: string; 84 | updatedDate: string; 85 | } 86 | 87 | export interface JohnnyDecimalSystem { 88 | systemId: string; // e.g. A01, ref. https://jdcm.al/13.11 89 | systemTitle: string; // e.g. "Johnny's personal system" 90 | schemaVersion: string; 91 | areas: { 92 | [id: string]: Area; 93 | }; 94 | } 95 | 96 | export interface Options { 97 | headerSquare: boolean; 98 | emoji: boolean; 99 | } 100 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Index specification 2 | 3 | This is the formal specification for the Johnny.Decimal index file. 4 | 5 | (I need to properly formalise it but this is a good start.) 6 | 7 | Discussion here (use Issues) and PRs are welcome. 8 | 9 | ## Why? 10 | 11 | If you're keeping a single file as your index, it makes sense for them all to be formatted the same way. 12 | 13 | One of the reasons you'd do this would be so that you could query it programmatically. That only works if the format is well-defined. 14 | 15 | This file is that definition. 16 | 17 | # Overview 18 | 19 | The idea is that we keep one index file, as plain text, and that it is human readable. It looks like this. I recommend this file be saved as `00.00 Index.txt` in your system. 20 | 21 | ```text 22 | 10-19 Your first area's title 23 | 11 Your first category's title 24 | 11.01 Your first ID's title 25 | 11.02 The second ID in category 11 26 | 12 Category twelve 27 | 20-29 Your second area 28 | 21 Category twenty-one 29 | 21.01 ...and so on 30 | ``` 31 | 32 | # Specification 33 | 34 | ## Areas 35 | 36 | Areas must start with an area number whose format is `a0-a9` where `a = [0..9]`. 37 | 38 | The title follows the area, is mandatory, and is of arbitrary length. 39 | 40 | ## Categories 41 | 42 | Categories must be 'contained' within their area: category `11` belongs to area `10-19`. 43 | 44 | They must start with a category number whose format is `ac` where `ac = [00..99]`. 45 | 46 | The title follows the category, is mandatory, and is of arbitrary length. 47 | 48 | ## IDs 49 | 50 | IDs must be 'contained' within their category: ID `11.01` belongs to category `11`. 51 | 52 | They must start with an ID number whose format is `ac.id` where `id = [00..99]`. 53 | 54 | The full range of IDs is therefore `00.00` through `99.99` inclusive. 55 | 56 | The title follows the ID, is mandatory, and is of arbitrary length. 57 | 58 | ## Order 59 | 60 | The index file must appear in order. This is incorrect. 61 | 62 | ```text 63 | 20-29 Second area 64 | 10-19 First area 65 | ``` 66 | 67 | ## Parents may be childless; orphans are disallowed 68 | 69 | This is fine. 70 | 71 | ```text 72 | 10-19 An area with no children 73 | 20-29 Another area 74 | 21 A category with no children 75 | ``` 76 | 77 | This is not. 78 | 79 | ```text 80 | 11 A category without a parent area 81 | 21.01 An ID without a parent category 82 | ``` 83 | 84 | ## White space 85 | 86 | While the examples shown above are indented for legibility, and such indentation is encouraged, white space should be ignored by a parser. 87 | 88 | This is a legal, if ugly, index file. 89 | 90 | ```text 91 | 10-19 Your first area's title 92 | 93 | 11 Your first category's title 94 | 11.01 The title of your first ID 95 | ``` 96 | 97 | ## Comments 98 | 99 | JavaScript comments are allowed. 100 | 101 | Multi-line comments may be used if they are the only text on the line. 102 | 103 | ```txt 104 | 10-19 My area // which I can comment like this 105 | 11 My category /* or like this */ 106 | /* multiline comments 107 | are allowed on their own lines 108 | */ 109 | 11.01 Whereas this /* is not, as it breaks 110 | the ID 111 | */ 112 | ``` 113 | 114 | ## Metadata 115 | 116 | Arbitrary metadata may be stored in key/value pairs directly below any item (area, category, ID) by entering: 117 | 118 | - A dash. 119 | - A space. 120 | - The key name. 121 | - A colon. 122 | - A space. 123 | - The value. 124 | 125 | The value may not span a (hard) newline. All values are strings. 126 | 127 | ```text 128 | 10-19 Area 129 | 11 Category 130 | 11.01 ID 131 | - Location: work email. 132 | ``` 133 | 134 | # schema.ts 135 | 136 | Working file for a TypeScript/JSON schema. See [this blog post](https://jdcm.al/22.00.0081/). 137 | -------------------------------------------------------------------------------- /lifeAdmin.ts: -------------------------------------------------------------------------------- 1 | import { JohnnyDecimalSystem } from "./types"; 2 | 3 | const lifeAdmin: JohnnyDecimalSystem = { 4 | systemId: "Z01", // JD:QS:LA reserved 5 | systemTitle: "Life Admin", 6 | schemaVersion: "1.0.0", 7 | areas: { 8 | "10-19": { 9 | id: "10-19", 10 | title: "Life admin", 11 | metadata: { 12 | createdDate: "2024-01-10T00:00:00", 13 | updatedDate: "2024-01-10T00:00:00", 14 | version: "", 15 | }, 16 | categories: { 17 | "10": { 18 | id: "10", 19 | title: "Life admin area management", 20 | metadata: { 21 | createdDate: "2024-01-10T00:00:00", 22 | updatedDate: "2024-01-10T00:00:00", 23 | }, 24 | ids: { 25 | "10.00": { 26 | id: "10.00", 27 | title: "Life admin area management", 28 | metadata: { 29 | description: 30 | "The standard 'life admin' area. See https://jdcm.al/14.11.", 31 | createdDate: "2024-01-10T00:00:00", 32 | updatedDate: "2024-01-10T00:00:00", 33 | }, 34 | }, 35 | }, 36 | }, 37 | "11": { 38 | id: "11", 39 | title: "Me & other living things", 40 | metadata: { 41 | createdDate: "2024-01-10T00:00:00", 42 | updatedDate: "2024-01-10T00:00:00", 43 | version: "", 44 | }, 45 | ids: { 46 | "11.00": { 47 | id: "11.00", 48 | title: "Me & other living things category management", 49 | metadata: { 50 | description: 51 | "> This **category** is all about you, and other things that have a beating heart: your family, friends, and pets.\n> \n> > If you have a lot going on in this category you might need to expand your system (see the [website](https://jdcm.al), [workbook](https://jdcm.al/14.02), or [workshop](https://jdcm.al/14.03)).\n> > *e.g. your health situation is complicated, managing your children’s care, schooling, and activities takes a lot of effort.*\n> \n> This is a **heading**. Don’t store anything here. See **02.03** in the manual for more information.", 52 | emoji: "\u2699\uFE0F", // gear 53 | isHeader: true, 54 | createdDate: "2024-01-10T00:00:00", 55 | updatedDate: "2024-01-10T00:00:00", 56 | }, 57 | }, 58 | "11.01": { 59 | id: "11.01", 60 | title: "Inbox", 61 | metadata: { 62 | description: 63 | "> This is the inbox for category **11 🙋 Me & other living things**. See **00.00 ■ System management** in the manual for more information.\n> \n> Pro tip: when you start to organise your system, move all of your stuff in to the relevant category inbox as a first step. This is a really simple way to go from total chaos to pretty good. Then tackle each category inbox in turn, moving each item to its proper home in an ID.", 64 | emoji: "\uD83D\uDCE5", // inbox tray 65 | createdDate: "2024-01-10T00:00:00", 66 | updatedDate: "2024-01-10T00:00:00", 67 | }, 68 | }, 69 | "11.02": { 70 | id: "11.02", 71 | title: "System manual", 72 | metadata: { 73 | description: 74 | "> We’ve saved the manual in your system for you. Find it here.\n> \n> This is version 1.0.4 of the Quick Start: Life admin pack.", 75 | emoji: "\uD83D\uDCD9", // orange book 76 | createdDate: "2024-01-10T00:00:00", 77 | updatedDate: "2024-01-10T00:00:00", 78 | }, 79 | }, 80 | "11.09": { 81 | id: "11.09", 82 | title: "Archive", 83 | metadata: { 84 | description: 85 | "> This is the archive for category **11 🙋 Me & other living things**. See **00.00 ■ System management** in the manual for more information.", 86 | emoji: "\uD83D\uDCE6", // package 87 | createdDate: "2024-01-10T00:00:00", 88 | updatedDate: "2024-01-10T00:00:00", 89 | }, 90 | }, 91 | "11.10": { 92 | id: "11.10", 93 | title: "Personal records", 94 | metadata: { 95 | description: "", 96 | createdDate: "", 97 | updatedDate: "", 98 | }, 99 | }, 100 | "11.11": { 101 | id: "11.11", 102 | title: "Birth certificate & proof of name", 103 | metadata: { 104 | description: "", 105 | createdDate: "", 106 | updatedDate: "", 107 | }, 108 | }, 109 | "11.12": { 110 | id: "11.12", 111 | title: "Passports, residency, & citizenship", 112 | metadata: { 113 | description: "", 114 | createdDate: "", 115 | updatedDate: "", 116 | }, 117 | }, 118 | "11.13": { 119 | id: "11.13", 120 | title: "Identity cards", 121 | metadata: { 122 | description: 123 | "> Documents issued by someone else as proof of your association with them.\n> *e.g. your employer or college, the government.*", 124 | createdDate: "", 125 | updatedDate: "", 126 | }, 127 | }, 128 | "11.14": { 129 | id: "11.14", 130 | title: "Licenses", 131 | metadata: { 132 | description: "", 133 | createdDate: "", 134 | updatedDate: "", 135 | }, 136 | }, 137 | "11.15": { 138 | id: "11.15", 139 | title: "Voter registration & elections", 140 | metadata: { 141 | description: "", 142 | createdDate: "", 143 | updatedDate: "", 144 | }, 145 | }, 146 | "11.16": { 147 | id: "11.16", 148 | title: "Legal documents & certificates", 149 | metadata: { 150 | description: "", 151 | createdDate: "", 152 | updatedDate: "", 153 | }, 154 | }, 155 | "11.17": { 156 | id: "11.17", 157 | title: "Academic records & qualifications", 158 | metadata: { 159 | description: "", 160 | createdDate: "", 161 | updatedDate: "", 162 | }, 163 | }, 164 | "11.20": { 165 | id: "11.20", 166 | title: "Physical health & wellbeing", 167 | metadata: { 168 | description: "", 169 | createdDate: "", 170 | updatedDate: "", 171 | }, 172 | }, 173 | "11.21": { 174 | id: "11.21", 175 | title: "Health insurance & claims", 176 | metadata: { 177 | description: "", 178 | createdDate: "", 179 | updatedDate: "", 180 | }, 181 | }, 182 | "11.22": { 183 | id: "11.22", 184 | title: "Health records & registrations", 185 | metadata: { 186 | description: "", 187 | createdDate: "", 188 | updatedDate: "", 189 | }, 190 | }, 191 | "11.23": { 192 | id: "11.23", 193 | title: "Primary care", 194 | metadata: { 195 | description: "", 196 | createdDate: "", 197 | updatedDate: "", 198 | }, 199 | }, 200 | "11.24": { 201 | id: "11.24", 202 | title: "Eyes, ears, & teeth", 203 | metadata: { 204 | description: "", 205 | createdDate: "", 206 | updatedDate: "", 207 | }, 208 | }, 209 | "11.25": { 210 | id: "11.25", 211 | title: "Immunity", 212 | metadata: { 213 | description: "", 214 | createdDate: "", 215 | updatedDate: "", 216 | }, 217 | }, 218 | "11.26": { 219 | id: "11.26", 220 | title: "Physical therapy", 221 | metadata: { 222 | description: "", 223 | createdDate: "", 224 | updatedDate: "", 225 | }, 226 | }, 227 | "11.27": { 228 | id: "11.27", 229 | title: "Fitness, nutrition, sleep, & other pro-active wellbeing", 230 | metadata: { 231 | description: "", 232 | createdDate: "", 233 | updatedDate: "", 234 | }, 235 | }, 236 | "11.28": { 237 | id: "11.28", 238 | title: "Reproductive health", 239 | metadata: { 240 | description: "", 241 | createdDate: "", 242 | updatedDate: "", 243 | }, 244 | }, 245 | "11.29": { 246 | id: "11.29", 247 | title: "Surgical & specialist care", 248 | metadata: { 249 | description: "", 250 | createdDate: "", 251 | updatedDate: "", 252 | }, 253 | }, 254 | "11.30": { 255 | id: "11.30", 256 | title: "Mental health & wellbeing", 257 | metadata: { 258 | description: "", 259 | createdDate: "", 260 | updatedDate: "", 261 | }, 262 | }, 263 | "11.31": { 264 | id: "11.31", 265 | title: "Psychologist, psychiatrist, & counselling", 266 | metadata: { 267 | description: "", 268 | createdDate: "", 269 | updatedDate: "", 270 | }, 271 | }, 272 | "11.32": { 273 | id: "11.32", 274 | title: "My thoughts, journalling, diaries, & other writing", 275 | metadata: { 276 | description: "", 277 | createdDate: "", 278 | updatedDate: "", 279 | }, 280 | }, 281 | "11.33": { 282 | id: "11.33", 283 | title: "Spiritual", 284 | metadata: { 285 | description: "", 286 | createdDate: "", 287 | updatedDate: "", 288 | }, 289 | }, 290 | "11.34": { 291 | id: "11.34", 292 | title: "Habits, routines, & planning", 293 | metadata: { 294 | description: "", 295 | createdDate: "", 296 | updatedDate: "", 297 | }, 298 | }, 299 | "11.35": { 300 | id: "11.35", 301 | title: "Brain training", 302 | metadata: { 303 | description: "", 304 | createdDate: "", 305 | updatedDate: "", 306 | }, 307 | }, 308 | "11.40": { 309 | id: "11.40", 310 | title: "Family", 311 | metadata: { 312 | description: "", 313 | createdDate: "", 314 | updatedDate: "", 315 | }, 316 | }, 317 | "11.41": { 318 | id: "11.41", 319 | title: "My partner", 320 | metadata: { 321 | description: "", 322 | createdDate: "", 323 | updatedDate: "", 324 | }, 325 | }, 326 | "11.42": { 327 | id: "11.42", 328 | title: "My kids", 329 | metadata: { 330 | description: "", 331 | createdDate: "", 332 | updatedDate: "", 333 | }, 334 | }, 335 | "11.43": { 336 | id: "11.43", 337 | title: "My family", 338 | metadata: { 339 | description: "", 340 | createdDate: "", 341 | updatedDate: "", 342 | }, 343 | }, 344 | "11.44": { 345 | id: "11.44", 346 | title: "Dating & relationships", 347 | metadata: { 348 | description: "", 349 | createdDate: "", 350 | updatedDate: "", 351 | }, 352 | }, 353 | "11.45": { 354 | id: "11.45", 355 | title: "Celebrations & gifting", 356 | metadata: { 357 | description: "", 358 | createdDate: "", 359 | updatedDate: "", 360 | }, 361 | }, 362 | "11.46": { 363 | id: "11.46", 364 | title: "Letters, cards, & mementos", 365 | metadata: { 366 | description: "", 367 | createdDate: "", 368 | updatedDate: "", 369 | }, 370 | }, 371 | "11.50": { 372 | id: "11.50", 373 | title: "Friends, clubs, & organisations", 374 | metadata: { 375 | description: "", 376 | createdDate: "", 377 | updatedDate: "", 378 | }, 379 | }, 380 | "11.51": { 381 | id: "11.51", 382 | title: "My friends", 383 | metadata: { 384 | description: "", 385 | createdDate: "", 386 | updatedDate: "", 387 | }, 388 | }, 389 | "11.52": { 390 | id: "11.52", 391 | title: "Groups, clubs, & volunteering", 392 | metadata: { 393 | description: "", 394 | createdDate: "", 395 | updatedDate: "", 396 | }, 397 | }, 398 | "11.53": { 399 | id: "11.53", 400 | title: "Official correspondence", 401 | metadata: { 402 | description: "", 403 | createdDate: "", 404 | updatedDate: "", 405 | }, 406 | }, 407 | "11.60": { 408 | id: "11.60", 409 | title: "Pets & other animals", 410 | metadata: { 411 | description: "", 412 | createdDate: "", 413 | updatedDate: "", 414 | }, 415 | }, 416 | "11.61": { 417 | id: "11.61", 418 | title: "Pet health insurance & claims", 419 | metadata: { 420 | description: "", 421 | createdDate: "", 422 | updatedDate: "", 423 | }, 424 | }, 425 | "11.62": { 426 | id: "11.62", 427 | title: "Pet health records & registrations", 428 | metadata: { 429 | description: "", 430 | createdDate: "", 431 | updatedDate: "", 432 | }, 433 | }, 434 | "11.70": { 435 | id: "11.70", 436 | title: "My brilliant career", 437 | metadata: { 438 | description: "", 439 | createdDate: "", 440 | updatedDate: "", 441 | }, 442 | }, 443 | "11.71": { 444 | id: "11.71", 445 | title: "My sales pitch", 446 | metadata: { 447 | description: "", 448 | createdDate: "", 449 | updatedDate: "", 450 | }, 451 | }, 452 | "11.72": { 453 | id: "11.72", 454 | title: "My jobs past, present, & future", 455 | metadata: { 456 | description: "", 457 | createdDate: "", 458 | updatedDate: "", 459 | }, 460 | }, 461 | "11.73": { 462 | id: "11.73", 463 | title: "My side-hustles", 464 | metadata: { 465 | description: "", 466 | createdDate: "", 467 | updatedDate: "", 468 | }, 469 | }, 470 | "11.80": { 471 | id: "11.80", 472 | title: "Personal development & who I am", 473 | metadata: { 474 | description: "", 475 | createdDate: "", 476 | updatedDate: "", 477 | }, 478 | }, 479 | "11.81": { 480 | id: "11.81", 481 | title: "Goals & dreams", 482 | metadata: { 483 | description: "", 484 | createdDate: "", 485 | updatedDate: "", 486 | }, 487 | }, 488 | "11.82": { 489 | id: "11.82", 490 | title: "Hobbies & learning", 491 | metadata: { 492 | description: "", 493 | createdDate: "", 494 | updatedDate: "", 495 | }, 496 | }, 497 | "11.83": { 498 | id: "11.83", 499 | title: "My library", 500 | metadata: { 501 | description: "", 502 | createdDate: "", 503 | updatedDate: "", 504 | }, 505 | }, 506 | }, 507 | }, 508 | "12": { 509 | id: "12", 510 | title: "Where I life & how I get around", 511 | metadata: { 512 | createdDate: "2024-01-10T00:00:00", 513 | updatedDate: "2024-01-10T00:00:00", 514 | }, 515 | ids: { 516 | "12.00": { 517 | id: "12.00", 518 | title: "System management", 519 | metadata: { 520 | description: "", 521 | createdDate: "", 522 | updatedDate: "", 523 | }, 524 | }, 525 | "12.01": { 526 | id: "12.01", 527 | title: "Inbox", 528 | metadata: { 529 | description: "", 530 | createdDate: "", 531 | updatedDate: "", 532 | }, 533 | }, 534 | "12.09": { 535 | id: "12.09", 536 | title: "Archive", 537 | metadata: { 538 | description: "", 539 | createdDate: "", 540 | updatedDate: "", 541 | }, 542 | }, 543 | "12.10": { 544 | id: "12.10", 545 | title: "Home records", 546 | metadata: { 547 | description: "", 548 | createdDate: "", 549 | updatedDate: "", 550 | }, 551 | }, 552 | "12.11": { 553 | id: "12.11", 554 | title: "Official documents", 555 | metadata: { 556 | description: "", 557 | createdDate: "", 558 | updatedDate: "", 559 | }, 560 | }, 561 | "12.12": { 562 | id: "12.12", 563 | title: "Home insurance & claims", 564 | metadata: { 565 | description: "", 566 | createdDate: "", 567 | updatedDate: "", 568 | }, 569 | }, 570 | "12.13": { 571 | id: "12.13", 572 | title: "Moving", 573 | metadata: { 574 | description: "", 575 | createdDate: "", 576 | updatedDate: "", 577 | }, 578 | }, 579 | "12.14": { 580 | id: "12.14", 581 | title: "Inventory", 582 | metadata: { 583 | description: "", 584 | createdDate: "", 585 | updatedDate: "", 586 | }, 587 | }, 588 | "12.15": { 589 | id: "12.15", 590 | title: "My home's user manual", 591 | metadata: { 592 | description: "", 593 | createdDate: "", 594 | updatedDate: "", 595 | }, 596 | }, 597 | "12.16": { 598 | id: "12.16", 599 | title: "Appliances, tools, & gadgets", 600 | metadata: { 601 | description: "", 602 | createdDate: "", 603 | updatedDate: "", 604 | }, 605 | }, 606 | "12.17": { 607 | id: "12.17", 608 | title: "Rates, taxes, & fees", 609 | metadata: { 610 | description: "", 611 | createdDate: "", 612 | updatedDate: "", 613 | }, 614 | }, 615 | "12.20": { 616 | id: "12.20", 617 | title: "Home services & health", 618 | metadata: { 619 | description: "", 620 | createdDate: "", 621 | updatedDate: "", 622 | }, 623 | }, 624 | "12.21": { 625 | id: "12.21", 626 | title: "Electricity, gas, & water", 627 | metadata: { 628 | description: "", 629 | createdDate: "", 630 | updatedDate: "", 631 | }, 632 | }, 633 | "12.22": { 634 | id: "12.22", 635 | title: "Internet, phone, TV, & cable", 636 | metadata: { 637 | description: "", 638 | createdDate: "", 639 | updatedDate: "", 640 | }, 641 | }, 642 | "12.23": { 643 | id: "12.23", 644 | title: "All other utilities & services", 645 | metadata: { 646 | description: "", 647 | createdDate: "", 648 | updatedDate: "", 649 | }, 650 | }, 651 | "12.24": { 652 | id: "12.24", 653 | title: "Repairs, maintenance, & upkeep", 654 | metadata: { 655 | description: "", 656 | createdDate: "", 657 | updatedDate: "", 658 | }, 659 | }, 660 | "12.25": { 661 | id: "12.25", 662 | title: "Renovation & improvements", 663 | metadata: { 664 | description: "", 665 | createdDate: "", 666 | updatedDate: "", 667 | }, 668 | }, 669 | "12.30": { 670 | id: "12.30", 671 | title: "Getting around", 672 | metadata: { 673 | description: "", 674 | createdDate: "", 675 | updatedDate: "", 676 | }, 677 | }, 678 | "12.31": { 679 | id: "12.31", 680 | title: "Motor vehicle purchase, leasing, & rental", 681 | metadata: { 682 | description: "", 683 | createdDate: "", 684 | updatedDate: "", 685 | }, 686 | }, 687 | "12.32": { 688 | id: "12.32", 689 | title: "Motor vehicle insurance & claims", 690 | metadata: { 691 | description: "", 692 | createdDate: "", 693 | updatedDate: "", 694 | }, 695 | }, 696 | "12.33": { 697 | id: "12.33", 698 | title: "Mechanics, repairs, & maintenance", 699 | metadata: { 700 | description: "", 701 | createdDate: "", 702 | updatedDate: "", 703 | }, 704 | }, 705 | "12.34": { 706 | id: "12.34", 707 | title: "Permits & tolls", 708 | metadata: { 709 | description: "", 710 | createdDate: "", 711 | updatedDate: "", 712 | }, 713 | }, 714 | "12.35": { 715 | id: "12.35", 716 | title: "Bicycles & scooters", 717 | metadata: { 718 | description: "", 719 | createdDate: "", 720 | updatedDate: "", 721 | }, 722 | }, 723 | "12.36": { 724 | id: "12.36", 725 | title: "Public transport", 726 | metadata: { 727 | description: "", 728 | createdDate: "", 729 | updatedDate: "", 730 | }, 731 | }, 732 | "12.40": { 733 | id: "12.40", 734 | title: "My kitchen & garden", 735 | metadata: { 736 | description: "", 737 | createdDate: "", 738 | updatedDate: "", 739 | }, 740 | }, 741 | "12.41": { 742 | id: "12.41", 743 | title: "Indoor plants", 744 | metadata: { 745 | description: "", 746 | createdDate: "", 747 | updatedDate: "", 748 | }, 749 | }, 750 | "12.42": { 751 | id: "12.42", 752 | title: "Outdoor plants", 753 | metadata: { 754 | description: "", 755 | createdDate: "", 756 | updatedDate: "", 757 | }, 758 | }, 759 | "12.43": { 760 | id: "12.43", 761 | title: "Growing herbs, vegetables, & fruit", 762 | metadata: { 763 | description: "", 764 | createdDate: "", 765 | updatedDate: "", 766 | }, 767 | }, 768 | "12.44": { 769 | id: "12.44", 770 | title: "Meals & recipes", 771 | metadata: { 772 | description: "", 773 | createdDate: "", 774 | updatedDate: "", 775 | }, 776 | }, 777 | "12.50": { 778 | id: "12.50", 779 | title: "Housemates, neighbours, & the neighbourhood", 780 | metadata: { 781 | description: "", 782 | createdDate: "", 783 | updatedDate: "", 784 | }, 785 | }, 786 | "12.51": { 787 | id: "12.51", 788 | title: "Housemates", 789 | metadata: { 790 | description: "", 791 | createdDate: "", 792 | updatedDate: "", 793 | }, 794 | }, 795 | "12.52": { 796 | id: "12.52", 797 | title: "Neighbours", 798 | metadata: { 799 | description: "", 800 | createdDate: "", 801 | updatedDate: "", 802 | }, 803 | }, 804 | "12.53": { 805 | id: "12.53", 806 | title: "The neighbourhood", 807 | metadata: { 808 | description: "", 809 | createdDate: "", 810 | updatedDate: "", 811 | }, 812 | }, 813 | }, 814 | }, 815 | "13": { 816 | id: "13", 817 | title: "Money earned, saved, owed, & spent", 818 | metadata: { 819 | createdDate: "2024-01-10T00:00:00", 820 | updatedDate: "2024-01-10T00:00:00", 821 | }, 822 | ids: { 823 | "13.00": { 824 | id: "13.00", 825 | title: "System management", 826 | metadata: { 827 | description: "", 828 | createdDate: "", 829 | updatedDate: "", 830 | }, 831 | }, 832 | "13.01": { 833 | id: "13.01", 834 | title: "Inbox", 835 | metadata: { 836 | description: "", 837 | createdDate: "", 838 | updatedDate: "", 839 | }, 840 | }, 841 | "13.09": { 842 | id: "13.09", 843 | title: "Archive", 844 | metadata: { 845 | description: "", 846 | createdDate: "", 847 | updatedDate: "", 848 | }, 849 | }, 850 | "13.10": { 851 | id: "13.10", 852 | title: "Earned", 853 | metadata: { 854 | description: "", 855 | createdDate: "", 856 | updatedDate: "", 857 | }, 858 | }, 859 | "13.11": { 860 | id: "13.11", 861 | title: "Payslips, invoices, & remittance", 862 | metadata: { 863 | description: "", 864 | createdDate: "", 865 | updatedDate: "", 866 | }, 867 | }, 868 | "13.12": { 869 | id: "13.12", 870 | title: "Expenses & claims", 871 | metadata: { 872 | description: "", 873 | createdDate: "", 874 | updatedDate: "", 875 | }, 876 | }, 877 | "13.13": { 878 | id: "13.13", 879 | title: "Government services", 880 | metadata: { 881 | description: "", 882 | createdDate: "", 883 | updatedDate: "", 884 | }, 885 | }, 886 | "13.14": { 887 | id: "13.14", 888 | title: "Gifts, prizes, inheritance, & windfalls", 889 | metadata: { 890 | description: "", 891 | createdDate: "", 892 | updatedDate: "", 893 | }, 894 | }, 895 | "13.15": { 896 | id: "13.15", 897 | title: "Selling my stuff", 898 | metadata: { 899 | description: "", 900 | createdDate: "", 901 | updatedDate: "", 902 | }, 903 | }, 904 | "13.20": { 905 | id: "13.20", 906 | title: "Saved", 907 | metadata: { 908 | description: "", 909 | createdDate: "", 910 | updatedDate: "", 911 | }, 912 | }, 913 | "13.21": { 914 | id: "13.21", 915 | title: "Budgets & planning", 916 | metadata: { 917 | description: "", 918 | createdDate: "", 919 | updatedDate: "", 920 | }, 921 | }, 922 | "13.22": { 923 | id: "13.22", 924 | title: "Bank accounts", 925 | metadata: { 926 | description: "", 927 | createdDate: "", 928 | updatedDate: "", 929 | }, 930 | }, 931 | "13.23": { 932 | id: "13.23", 933 | title: "Investments & assets", 934 | metadata: { 935 | description: "", 936 | createdDate: "", 937 | updatedDate: "", 938 | }, 939 | }, 940 | "13.24": { 941 | id: "13.24", 942 | title: "Pension", 943 | metadata: { 944 | description: "", 945 | createdDate: "", 946 | updatedDate: "", 947 | }, 948 | }, 949 | "13.30": { 950 | id: "13.30", 951 | title: "Owed", 952 | metadata: { 953 | description: "", 954 | createdDate: "", 955 | updatedDate: "", 956 | }, 957 | }, 958 | "13.31": { 959 | id: "13.31", 960 | title: "Credit cards", 961 | metadata: { 962 | description: "", 963 | createdDate: "", 964 | updatedDate: "", 965 | }, 966 | }, 967 | "13.32": { 968 | id: "13.32", 969 | title: "Mortgage", 970 | metadata: { 971 | description: "", 972 | createdDate: "", 973 | updatedDate: "", 974 | }, 975 | }, 976 | "13.33": { 977 | id: "13.33", 978 | title: "Personal loans", 979 | metadata: { 980 | description: "", 981 | createdDate: "", 982 | updatedDate: "", 983 | }, 984 | }, 985 | "13.34": { 986 | id: "13.34", 987 | title: "Tax returns & accounting", 988 | metadata: { 989 | description: "", 990 | createdDate: "", 991 | updatedDate: "", 992 | }, 993 | }, 994 | "13.35": { 995 | id: "13.35", 996 | title: "Tickets & fines", 997 | metadata: { 998 | description: "", 999 | createdDate: "", 1000 | updatedDate: "", 1001 | }, 1002 | }, 1003 | "13.40": { 1004 | id: "13.40", 1005 | title: "Spent & sent", 1006 | metadata: { 1007 | description: "", 1008 | createdDate: "", 1009 | updatedDate: "", 1010 | }, 1011 | }, 1012 | "13.41": { 1013 | id: "13.41", 1014 | title: "Purchase receipts", 1015 | metadata: { 1016 | description: "", 1017 | createdDate: "", 1018 | updatedDate: "", 1019 | }, 1020 | }, 1021 | "13.42": { 1022 | id: "13.42", 1023 | title: "Subscriptions, memberships, & donations", 1024 | metadata: { 1025 | description: "", 1026 | createdDate: "", 1027 | updatedDate: "", 1028 | }, 1029 | }, 1030 | "13.43": { 1031 | id: "13.43", 1032 | title: "Payment services", 1033 | metadata: { 1034 | description: "", 1035 | createdDate: "", 1036 | updatedDate: "", 1037 | }, 1038 | }, 1039 | "13.44": { 1040 | id: "13.44", 1041 | title: "Money transfer services", 1042 | metadata: { 1043 | description: "", 1044 | createdDate: "", 1045 | updatedDate: "", 1046 | }, 1047 | }, 1048 | "13.50": { 1049 | id: "13.50", 1050 | title: "Financial administration", 1051 | metadata: { 1052 | description: "", 1053 | createdDate: "", 1054 | updatedDate: "", 1055 | }, 1056 | }, 1057 | "13.51": { 1058 | id: "13.51", 1059 | title: "My credit rating", 1060 | metadata: { 1061 | description: "", 1062 | createdDate: "", 1063 | updatedDate: "", 1064 | }, 1065 | }, 1066 | }, 1067 | }, 1068 | "14": { 1069 | id: "14", 1070 | title: "My online life", 1071 | metadata: { 1072 | createdDate: "2024-01-10T00:00:00", 1073 | updatedDate: "2024-01-10T00:00:00", 1074 | }, 1075 | ids: { 1076 | "14.00": { 1077 | id: "14.00", 1078 | title: "System management", 1079 | metadata: { 1080 | description: "", 1081 | createdDate: "", 1082 | updatedDate: "", 1083 | }, 1084 | }, 1085 | "14.01": { 1086 | id: "14.01", 1087 | title: "Inbox", 1088 | metadata: { 1089 | description: "", 1090 | createdDate: "", 1091 | updatedDate: "", 1092 | }, 1093 | }, 1094 | "14.09": { 1095 | id: "14.09", 1096 | title: "Archive", 1097 | metadata: { 1098 | description: "", 1099 | createdDate: "", 1100 | updatedDate: "", 1101 | }, 1102 | }, 1103 | "14.10": { 1104 | id: "14.10", 1105 | title: "Computers & other devices", 1106 | metadata: { 1107 | description: "", 1108 | createdDate: "", 1109 | updatedDate: "", 1110 | }, 1111 | }, 1112 | "14.11": { 1113 | id: "14.11", 1114 | title: "My computers & servers", 1115 | metadata: { 1116 | description: "", 1117 | createdDate: "", 1118 | updatedDate: "", 1119 | }, 1120 | }, 1121 | "14.12": { 1122 | id: "14.12", 1123 | title: "My mobile devices", 1124 | metadata: { 1125 | description: "", 1126 | createdDate: "", 1127 | updatedDate: "", 1128 | }, 1129 | }, 1130 | "14.13": { 1131 | id: "14.13", 1132 | title: "My wi-fi & network devices", 1133 | metadata: { 1134 | description: "", 1135 | createdDate: "", 1136 | updatedDate: "", 1137 | }, 1138 | }, 1139 | "14.14": { 1140 | id: "14.14", 1141 | title: "My data storage & backups", 1142 | metadata: { 1143 | description: "", 1144 | createdDate: "", 1145 | updatedDate: "", 1146 | }, 1147 | }, 1148 | "14.15": { 1149 | id: "14.15", 1150 | title: "My accessories", 1151 | metadata: { 1152 | description: "", 1153 | createdDate: "", 1154 | updatedDate: "", 1155 | }, 1156 | }, 1157 | "14.20": { 1158 | id: "14.20", 1159 | title: "Software & accounts", 1160 | metadata: { 1161 | description: "", 1162 | createdDate: "", 1163 | updatedDate: "", 1164 | }, 1165 | }, 1166 | "14.21": { 1167 | id: "14.21", 1168 | title: "My emergency recovery kit", 1169 | metadata: { 1170 | description: "", 1171 | createdDate: "", 1172 | updatedDate: "", 1173 | }, 1174 | }, 1175 | "14.22": { 1176 | id: "14.22", 1177 | title: "Software, licenses, & downloads", 1178 | metadata: { 1179 | description: "", 1180 | createdDate: "", 1181 | updatedDate: "", 1182 | }, 1183 | }, 1184 | "14.23": { 1185 | id: "14.23", 1186 | title: "Email accounts", 1187 | metadata: { 1188 | description: "", 1189 | createdDate: "", 1190 | updatedDate: "", 1191 | }, 1192 | }, 1193 | "14.24": { 1194 | id: "14.24", 1195 | title: "Social media accounts", 1196 | metadata: { 1197 | description: "", 1198 | createdDate: "", 1199 | updatedDate: "", 1200 | }, 1201 | }, 1202 | "14.25": { 1203 | id: "14.25", 1204 | title: "Domains & hosting", 1205 | metadata: { 1206 | description: "", 1207 | createdDate: "", 1208 | updatedDate: "", 1209 | }, 1210 | }, 1211 | "14.26": { 1212 | id: "14.26", 1213 | title: "All other accounts", 1214 | metadata: { 1215 | description: "", 1216 | createdDate: "", 1217 | updatedDate: "", 1218 | }, 1219 | }, 1220 | "14.30": { 1221 | id: "14.30", 1222 | title: "My online presence", 1223 | metadata: { 1224 | description: "", 1225 | createdDate: "", 1226 | updatedDate: "", 1227 | }, 1228 | }, 1229 | "14.31": { 1230 | id: "14.31", 1231 | title: "My blog", 1232 | metadata: { 1233 | description: "", 1234 | createdDate: "", 1235 | updatedDate: "", 1236 | }, 1237 | }, 1238 | }, 1239 | }, 1240 | "15": { 1241 | id: "15", 1242 | title: "Travel, events, & entertainment", 1243 | metadata: { 1244 | createdDate: "2024-01-10T00:00:00", 1245 | updatedDate: "2024-01-10T00:00:00", 1246 | }, 1247 | ids: { 1248 | "15.00": { 1249 | id: "15.00", 1250 | title: "System management", 1251 | metadata: { 1252 | description: "", 1253 | createdDate: "", 1254 | updatedDate: "", 1255 | }, 1256 | }, 1257 | "15.01": { 1258 | id: "15.01", 1259 | title: "Inbox", 1260 | metadata: { 1261 | description: "", 1262 | createdDate: "", 1263 | updatedDate: "", 1264 | }, 1265 | }, 1266 | "15.09": { 1267 | id: "15.09", 1268 | title: "Archive", 1269 | metadata: { 1270 | description: "", 1271 | createdDate: "", 1272 | updatedDate: "", 1273 | }, 1274 | }, 1275 | "15.10": { 1276 | id: "15.10", 1277 | title: "Inspiration & history", 1278 | metadata: { 1279 | description: "", 1280 | createdDate: "", 1281 | updatedDate: "", 1282 | }, 1283 | }, 1284 | "15.11": { 1285 | id: "15.11", 1286 | title: "Places I've been, or want to go", 1287 | metadata: { 1288 | description: "", 1289 | createdDate: "", 1290 | updatedDate: "", 1291 | }, 1292 | }, 1293 | "15.12": { 1294 | id: "15.12", 1295 | title: "Places I'd like to eat or drink", 1296 | metadata: { 1297 | description: "", 1298 | createdDate: "", 1299 | updatedDate: "", 1300 | }, 1301 | }, 1302 | "15.13": { 1303 | id: "15.13", 1304 | title: "Inspirational or useful websites, apps, & guides", 1305 | metadata: { 1306 | description: "", 1307 | createdDate: "", 1308 | updatedDate: "", 1309 | }, 1310 | }, 1311 | "15.20": { 1312 | id: "15.20", 1313 | title: "Administration & checklist", 1314 | metadata: { 1315 | description: "", 1316 | createdDate: "", 1317 | updatedDate: "", 1318 | }, 1319 | }, 1320 | "15.21": { 1321 | id: "15.21", 1322 | title: "Important documents & lists", 1323 | metadata: { 1324 | description: "", 1325 | createdDate: "", 1326 | updatedDate: "", 1327 | }, 1328 | }, 1329 | "15.22": { 1330 | id: "15.22", 1331 | title: "Going-away checklists", 1332 | metadata: { 1333 | description: "", 1334 | createdDate: "", 1335 | updatedDate: "", 1336 | }, 1337 | }, 1338 | "15.23": { 1339 | id: "15.23", 1340 | title: "Travel insurance & claims", 1341 | metadata: { 1342 | description: "", 1343 | createdDate: "", 1344 | updatedDate: "", 1345 | }, 1346 | }, 1347 | "15.24": { 1348 | id: "15.24", 1349 | title: "Loyalty programs", 1350 | metadata: { 1351 | description: "", 1352 | createdDate: "", 1353 | updatedDate: "", 1354 | }, 1355 | }, 1356 | "15.30": { 1357 | id: "15.30", 1358 | title: "Events", 1359 | metadata: { 1360 | description: "", 1361 | createdDate: "", 1362 | updatedDate: "", 1363 | }, 1364 | }, 1365 | "15.31": { 1366 | id: "15.31", 1367 | title: "Eating out", 1368 | metadata: { 1369 | description: "", 1370 | createdDate: "", 1371 | updatedDate: "", 1372 | }, 1373 | }, 1374 | "15.32": { 1375 | id: "15.32", 1376 | title: "Music", 1377 | metadata: { 1378 | description: "", 1379 | createdDate: "", 1380 | updatedDate: "", 1381 | }, 1382 | }, 1383 | "15.33": { 1384 | id: "15.33", 1385 | title: "Movies", 1386 | metadata: { 1387 | description: "", 1388 | createdDate: "", 1389 | updatedDate: "", 1390 | }, 1391 | }, 1392 | "15.34": { 1393 | id: "15.34", 1394 | title: "The arts", 1395 | metadata: { 1396 | description: "", 1397 | createdDate: "", 1398 | updatedDate: "", 1399 | }, 1400 | }, 1401 | "15.35": { 1402 | id: "15.35", 1403 | title: "Sport", 1404 | metadata: { 1405 | description: "", 1406 | createdDate: "", 1407 | updatedDate: "", 1408 | }, 1409 | }, 1410 | "15.36": { 1411 | id: "15.36", 1412 | title: "Fairs & shows", 1413 | metadata: { 1414 | description: "", 1415 | createdDate: "", 1416 | updatedDate: "", 1417 | }, 1418 | }, 1419 | "15.37": { 1420 | id: "15.37", 1421 | title: "Conferences & expos", 1422 | metadata: { 1423 | description: "", 1424 | createdDate: "", 1425 | updatedDate: "", 1426 | }, 1427 | }, 1428 | "15.40": { 1429 | id: "15.40", 1430 | title: "Short or routine trips", 1431 | metadata: { 1432 | description: "", 1433 | createdDate: "", 1434 | updatedDate: "", 1435 | }, 1436 | }, 1437 | "15.41": { 1438 | id: "15.41", 1439 | title: "All short trips", 1440 | metadata: { 1441 | description: "", 1442 | createdDate: "", 1443 | updatedDate: "", 1444 | }, 1445 | }, 1446 | "15.50": { 1447 | id: "15.50", 1448 | title: "Longer trips", 1449 | metadata: { 1450 | description: "", 1451 | createdDate: "", 1452 | updatedDate: "", 1453 | }, 1454 | }, 1455 | "15.51": { 1456 | id: "15.51", 1457 | title: "Longer trips from the past", 1458 | metadata: { 1459 | description: "", 1460 | createdDate: "", 1461 | updatedDate: "", 1462 | }, 1463 | }, 1464 | }, 1465 | }, 1466 | }, 1467 | }, 1468 | }, 1469 | }; 1470 | 1471 | // module.exports = lifeAdmin; 1472 | --------------------------------------------------------------------------------