@powerhousedao/academy 0.1.0-dev.3 → 0.1.0-dev.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +1 -1
  3. package/docs/academy/01-GetStarted/00-ExploreDemoPackage.md +78 -0
  4. package/docs/academy/01-GetStarted/{03-ToDoList/01-CreateNewPowerhouseProject.md → 01-CreateNewPowerhouseProject.md} +10 -8
  5. package/docs/academy/01-GetStarted/02-DefineToDoListDocumentModel.md +97 -0
  6. package/docs/academy/01-GetStarted/{03-ToDoList/03-ImplementOperationReducers.md → 03-ImplementOperationReducers.md} +20 -16
  7. package/docs/academy/01-GetStarted/{03-ToDoList/04-BuildToDoListEditor.md → 04-BuildToDoListEditor.md} +15 -15
  8. package/docs/academy/01-GetStarted/{00-GetStarted.mdx → home.mdx} +41 -52
  9. package/docs/academy/{02-AdvancedTutorial/01-Create/01-SetupBuilderEnvironment.md → 02-MasteryTrack/01-BuilderEnvironment/01-Prerequisites.md} +78 -43
  10. package/docs/academy/02-MasteryTrack/01-BuilderEnvironment/02-StandardDocumentModelWorkflow.md +253 -0
  11. package/docs/academy/{02-AdvancedTutorial/01-Create/00-BuilderTools.md → 02-MasteryTrack/01-BuilderEnvironment/03-BuilderTools.md} +1 -1
  12. package/docs/academy/02-MasteryTrack/01-BuilderEnvironment/_category_.json +7 -0
  13. package/docs/academy/02-MasteryTrack/02-DocumentModelCreation/01-WhatIsADocumentModel.md +188 -0
  14. package/docs/academy/02-MasteryTrack/02-DocumentModelCreation/02-SpecifyTheStateSchema.md +72 -0
  15. package/docs/academy/02-MasteryTrack/02-DocumentModelCreation/03-SpecifyDocumentOperations.md +119 -0
  16. package/docs/academy/02-MasteryTrack/02-DocumentModelCreation/04-UseTheDocumentModelGenerator.md +116 -0
  17. package/docs/academy/02-MasteryTrack/02-DocumentModelCreation/05-ImplementDocumentReducers.md +282 -0
  18. package/docs/academy/02-MasteryTrack/02-DocumentModelCreation/06-ImplementDocumentModelTests.md +277 -0
  19. package/docs/academy/02-MasteryTrack/02-DocumentModelCreation/07-ExampleToDoListRepository.md +1 -0
  20. package/docs/academy/02-MasteryTrack/02-DocumentModelCreation/_category_.json +7 -0
  21. package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/03-BuildingUserExperiences/02-ConfiguringDrives.md +2 -2
  22. package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/03-BuildingUserExperiences/03-BuildingADriveExplorer.md +1 -1
  23. package/docs/academy/02-MasteryTrack/03-BuildingUserExperiences/07-DocumentTools/00-DocumentToolbar.md +20 -0
  24. package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/03-BuildingUserExperiences/07-DocumentTools/01-OperationHistory.md +1 -1
  25. package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/01-ReadingAndWritingThroughTheAPI.mdx +2 -2
  26. package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/02-GraphQLAtPowerhouse.md +1 -1
  27. package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/graphql/index.md +1 -1
  28. package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/05-Launch/02-IntroductionToPackages.md +2 -2
  29. package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/05-Launch/03-RunOnACloudServer.md +3 -3
  30. package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/05-Launch/03-SetupEnvironment.md +1 -1
  31. package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/_category_.json +1 -1
  32. package/docs/academy/04-APIReferences/00-PowerhouseCLI.md +740 -0
  33. package/docs/academy/04-APIReferences/01-ReactHooks.md +16 -0
  34. package/docs/academy/04-APIReferences/02-ReactorAPI.md +1 -0
  35. package/docs/academy/04-APIReferences/03-Configuration.md +64 -0
  36. package/docs/academy/{04-ComponentLibrary/01-PowerhouseDesignSystem.md → 06-ComponentLibrary/00-DocumentEngineering.md} +8 -8
  37. package/docs/academy/{04-ComponentLibrary → 06-ComponentLibrary}/02-BuildingWithScalars.md +2 -2
  38. package/docs/academy/{04-ComponentLibrary → 06-ComponentLibrary}/03-Scalar-Components/01-phid-field.mdx +1 -1
  39. package/docs/academy/{06-Cookbook.md → 07-Cookbook.md} +24 -18
  40. package/docs/academy/08-Glossary.md +82 -0
  41. package/docusaurus.config.ts +7 -14
  42. package/package.json +11 -8
  43. package/scripts/generate-combined-cli-docs.ts +80 -0
  44. package/sidebars.ts +100 -14
  45. package/src/components/HomepageFeatures/index.tsx +10 -10
  46. package/src/css/custom.css +11 -0
  47. package/src/pages/{index.tsx → _archive-homepage.tsx} +1 -1
  48. package/src/theme/DocCardList/index.tsx +30 -0
  49. package/static/img/storybook-icon.svg +18 -0
  50. package/docs/academy/01-GetStarted/01-InstallDemoPackage.md +0 -38
  51. package/docs/academy/01-GetStarted/02-LoginWithRenown.md +0 -32
  52. package/docs/academy/01-GetStarted/03-ToDoList/02-DefineToDoListDocumentModel.md +0 -86
  53. package/docs/academy/01-GetStarted/03-ToDoList/_category_.json +0 -8
  54. package/docs/academy/01-GetStarted/_category_.json +0 -3
  55. package/docs/academy/02-AdvancedTutorial/01-Create/02-MoreTutorials/_category_.json +0 -8
  56. package/docs/academy/02-AdvancedTutorial/01-Create/02-StandardDocumentModelWorkflow.md +0 -229
  57. package/docs/academy/03-APIReferences/00-PowerhouseCLI.md +0 -40
  58. package/docs/academy/03-APIReferences/01-ReactHooks.md +0 -3
  59. package/docs/academy/03-APIReferences/02-ReactorUsage.md +0 -1
  60. package/docs/academy/07-Glossary.md +0 -53
  61. /package/docs/academy/01-GetStarted/{03-ToDoList/images → images}/DocumentModelHeader.png +0 -0
  62. /package/docs/academy/01-GetStarted/{03-ToDoList/images → images}/DocumentModelOperations.png +0 -0
  63. /package/docs/academy/01-GetStarted/{03-ToDoList/images → images}/OpenDocumentModelEditor.gif +0 -0
  64. /package/docs/academy/01-GetStarted/{03-ToDoList/images → images}/completeEditor.png +0 -0
  65. /package/docs/academy/01-GetStarted/{03-ToDoList/images → images}/connectApp.gif +0 -0
  66. /package/docs/academy/01-GetStarted/{03-ToDoList/images → images}/form.png +0 -0
  67. /package/docs/academy/01-GetStarted/{03-ToDoList/images → images}/mytodolist.gif +0 -0
  68. /package/docs/academy/01-GetStarted/{03-ToDoList/images → images}/reducers.png +0 -0
  69. /package/docs/academy/01-GetStarted/{03-ToDoList/images → images}/vscode.png +0 -0
  70. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/03-BuildingUserExperiences/01-BuildingBeautifulDocumentEditors.md +0 -0
  71. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/03-BuildingUserExperiences/07-DocumentTools/02-RevisionHistoryTimeline.md +0 -0
  72. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/03-BuildingUserExperiences/07-DocumentTools/_category_.json +0 -0
  73. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/03-BuildingUserExperiences/07-DocumentTools/images/committer-address-popup.png +0 -0
  74. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/03-BuildingUserExperiences/07-DocumentTools/images/revision-hash-popup.png +0 -0
  75. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/03-BuildingUserExperiences/07-DocumentTools/images/revision-history-list.png +0 -0
  76. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/03-BuildingUserExperiences/07-DocumentTools/images/signature-details-popup.png +0 -0
  77. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/03-BuildingUserExperiences/08-Authorization/01-RenownAuthenticationFlow.md +0 -0
  78. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/03-BuildingUserExperiences/08-Authorization/02-Authorization.md +0 -0
  79. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/03-BuildingUserExperiences/08-Authorization/_category_.json +0 -0
  80. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/03-BuildingUserExperiences/08-Authorization/images/ConnectAddress.png +0 -0
  81. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/03-BuildingUserExperiences/08-Authorization/images/LoginComplete.png +0 -0
  82. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/03-BuildingUserExperiences/08-Authorization/images/OperationsHistory.png +0 -0
  83. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/03-BuildingUserExperiences/08-Authorization/images/RenownLogin.png +0 -0
  84. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/03-BuildingUserExperiences/08-Authorization/images/ReturnToConnect.png +0 -0
  85. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/03-BuildingUserExperiences/_category_.json +0 -0
  86. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/03-BuildingUserExperiences/images/CreateDrive.png +0 -0
  87. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/03-BuildingUserExperiences/images/CreateNewDrive.png +0 -0
  88. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/03-BuildingUserExperiences/images/mytodolist.gif +0 -0
  89. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/03-WorkingWithSubgraphs/02-GraphQLAndSubgraphs.mdx +0 -0
  90. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/03-WorkingWithSubgraphs/03-WorkingWithSubgraphs.md +0 -0
  91. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/03-WorkingWithSubgraphs/_category_.json +0 -0
  92. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/04-analytics-processor.md +0 -0
  93. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/05-AnalyticsProcessorTutorial/01-SetupBuilderEnvironment.md +0 -0
  94. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/05-AnalyticsProcessorTutorial/02-CreateNewPowerhouseProject.md +0 -0
  95. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/05-AnalyticsProcessorTutorial/03-GenerateAnAnalyticsProcessor.md +0 -0
  96. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/05-AnalyticsProcessorTutorial/04-UpdateAnalyticsProcessor.md +0 -0
  97. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/05-AnalyticsProcessorTutorial/_category_.json +0 -0
  98. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/05-AnalyticsProcessorTutorial/images/Create-SPV.gif +0 -0
  99. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/05-AnalyticsProcessorTutorial/images/Create-a-new-asset.png +0 -0
  100. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/05-AnalyticsProcessorTutorial/images/Create-a-transaction.gif +0 -0
  101. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/05-AnalyticsProcessorTutorial/images/Transaction-table.png +0 -0
  102. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/05-AnalyticsProcessorTutorial/images/create-a-new-RWA-document.gif +0 -0
  103. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/05-AnalyticsProcessorTutorial/images/granularity.png +0 -0
  104. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/GraphQL References/QueryingADocumentWithGraphQL.md +0 -0
  105. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/GraphQL References/rwa-reports/listener-raw.png +0 -0
  106. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/GraphQL References/rwa-reports/raw-reports1.png +0 -0
  107. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/GraphQL References/rwa-reports/raw-reports2.png +0 -0
  108. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/GraphQL References/rwa-reports/rwaRegister.png +0 -0
  109. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/apse.png +0 -0
  110. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/best-practices.md +0 -0
  111. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/filter.png +0 -0
  112. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/filteroptions.png +0 -0
  113. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/graphql/integration.md +0 -0
  114. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/images/dbs.png +0 -0
  115. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/images/high-level.jpg +0 -0
  116. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/images/indexeddb.png +0 -0
  117. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/images/libs-core.jpg +0 -0
  118. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/images/libs.jpg +0 -0
  119. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/images/lod.jpg +0 -0
  120. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/images/logo.png +0 -0
  121. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/images/navbar.png +0 -0
  122. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/images/overview-1.jpg +0 -0
  123. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/images/overview-2.jpg +0 -0
  124. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/images/overview-3.jpg +0 -0
  125. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/images/overview-4.jpg +0 -0
  126. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/images/overview-5.jpg +0 -0
  127. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/images/overview-6.jpg +0 -0
  128. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/images/paths-1.jpg +0 -0
  129. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/images/paths-2.jpg +0 -0
  130. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/intro.md +0 -0
  131. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/typescript/benchmarks.md +0 -0
  132. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/typescript/browser.md +0 -0
  133. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/typescript/compatibility.md +0 -0
  134. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/typescript/index.md +0 -0
  135. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/typescript/memory.md +0 -0
  136. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/typescript/pg.md +0 -0
  137. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/typescript/schema.md +0 -0
  138. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/typescript/utilities.md +0 -0
  139. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/use-cases/index.md +0 -0
  140. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/use-cases/maker.md +0 -0
  141. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/06-Analytics Engine/use-cases/processors.md +0 -0
  142. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/_category_.json +0 -0
  143. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/images/OperationHistory.png +0 -0
  144. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/images/OperationsQuery.png +0 -0
  145. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/images/QueryDocumentID.png +0 -0
  146. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/04-WorkWithData/images/SwitchboardButton.png +0 -0
  147. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/05-Launch/00-IntegrateInAFront-End +0 -0
  148. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/05-Launch/01-IntroducingFusion +0 -0
  149. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/05-Launch/02-PublishYourProject.md +0 -0
  150. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/05-Launch/04-GraphQLNamespacing +0 -0
  151. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/05-Launch/05-LaunchYourBackend.md +0 -0
  152. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/05-Launch/06-LaunchYourFrontend.md +0 -0
  153. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/05-Launch/_category_.json +0 -0
  154. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/05-Launch/images/SSHConnection.png +0 -0
  155. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/05-Launch/images/homedesign.png +0 -0
  156. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/05-Launch/images/keyconcepts.png +0 -0
  157. /package/docs/academy/{02-AdvancedTutorial → 02-MasteryTrack}/05-Launch/images/tutorialschema.png +0 -0
  158. /package/docs/academy/{02-AdvancedTutorial/01-Create/02-MoreTutorials → 03-ExampleUsecases}/Chatroom/01-SetupBuilderEnvironment.md +0 -0
  159. /package/docs/academy/{02-AdvancedTutorial/01-Create/02-MoreTutorials → 03-ExampleUsecases}/Chatroom/02-CreateNewPowerhouseProject.md +0 -0
  160. /package/docs/academy/{02-AdvancedTutorial/01-Create/02-MoreTutorials → 03-ExampleUsecases}/Chatroom/03-DefineChatroomDocumentModel.md +0 -0
  161. /package/docs/academy/{02-AdvancedTutorial/01-Create/02-MoreTutorials → 03-ExampleUsecases}/Chatroom/04-ImplementOperationReducers.md +0 -0
  162. /package/docs/academy/{02-AdvancedTutorial/01-Create/02-MoreTutorials → 03-ExampleUsecases}/Chatroom/05-ImplementChatroomEditor.md +0 -0
  163. /package/docs/academy/{02-AdvancedTutorial/01-Create/02-MoreTutorials → 03-ExampleUsecases}/Chatroom/06-LaunchALocalReactor.md +0 -0
  164. /package/docs/academy/{02-AdvancedTutorial/01-Create/02-MoreTutorials → 03-ExampleUsecases}/Chatroom/_category_.json +0 -0
  165. /package/docs/academy/{02-AdvancedTutorial/01-Create/02-MoreTutorials → 03-ExampleUsecases}/Chatroom/image-1.png +0 -0
  166. /package/docs/academy/{02-AdvancedTutorial/01-Create/02-MoreTutorials → 03-ExampleUsecases}/Chatroom/image-2.png +0 -0
  167. /package/docs/academy/{02-AdvancedTutorial/01-Create/02-MoreTutorials → 03-ExampleUsecases}/Chatroom/image-3.png +0 -0
  168. /package/docs/academy/{02-AdvancedTutorial/01-Create/02-MoreTutorials → 03-ExampleUsecases}/Chatroom/image-4.png +0 -0
  169. /package/docs/academy/{02-AdvancedTutorial/01-Create/02-MoreTutorials → 03-ExampleUsecases}/Chatroom/image-5.png +0 -0
  170. /package/docs/academy/{02-AdvancedTutorial/01-Create/02-MoreTutorials → 03-ExampleUsecases}/Chatroom/image.png +0 -0
  171. /package/docs/academy/{02-AdvancedTutorial/01-Create/02-MoreTutorials → 03-ExampleUsecases}/Chatroom/images/ChatRoomConnectApp.gif +0 -0
  172. /package/docs/academy/{02-AdvancedTutorial/01-Create/02-MoreTutorials → 03-ExampleUsecases}/Chatroom/images/ChatRoomTest.gif +0 -0
  173. /package/docs/academy/{02-AdvancedTutorial/01-Create/02-MoreTutorials → 03-ExampleUsecases}/Chatroom/images/completeEditor.png +0 -0
  174. /package/docs/academy/{02-AdvancedTutorial/01-Create/02-MoreTutorials → 03-ExampleUsecases}/Chatroom/images/form.png +0 -0
  175. /package/docs/academy/{02-AdvancedTutorial/01-Create/02-MoreTutorials → 03-ExampleUsecases}/Chatroom/images/reducers.png +0 -0
  176. /package/docs/academy/{02-AdvancedTutorial/01-Create/02-MoreTutorials → 03-ExampleUsecases}/Chatroom/images/vscode.png +0 -0
  177. /package/docs/academy/{03-APIReferences → 04-APIReferences}/_category_.json +0 -0
  178. /package/docs/academy/05-Architecture/05-DocumentModelTheory/{01-WhatIsADocumentModel.md → 01-WhatIsADocumentModel} +0 -0
  179. /package/docs/academy/05-Architecture/05-DocumentModelTheory/{02-DAOandDocumentsModelsQ+A.md → 02-DAOandDocumentsModelsQ+A} +0 -0
  180. /package/docs/academy/05-Architecture/05-DocumentModelTheory/{02-domain-modeling.md → 02-domain-modeling} +0 -0
  181. /package/docs/academy/05-Architecture/05-DocumentModelTheory/{03-BenefitsOfDocumentModels.md → 03-BenefitsOfDocumentModels} +0 -0
  182. /package/docs/academy/{02-AdvancedTutorial/01-Create/02-MoreTutorials/04-UtilitiesAndTips.md → 05-Architecture/05-DocumentModelTheory/04-UtilitiesAndTips} +0 -0
  183. /package/docs/academy/05-Architecture/05-DocumentModelTheory/{05-best-practices.md → 05-best-practices} +0 -0
  184. /package/docs/academy/{04-ComponentLibrary/00-StorybookLink → 06-ComponentLibrary/01-StorybookLink} +0 -0
  185. /package/docs/academy/{04-ComponentLibrary → 06-ComponentLibrary}/03-Scalar-Components/02-input-field.mdx +0 -0
  186. /package/docs/academy/{04-ComponentLibrary → 06-ComponentLibrary}/04-Complex-Components/01-sidebar.mdx +0 -0
  187. /package/docs/academy/{04-ComponentLibrary → 06-ComponentLibrary}/05-Layout-Components/01-test-toupdate.mdx +0 -0
  188. /package/docs/academy/{04-ComponentLibrary → 06-ComponentLibrary}/06-Fragments/01-test-toupdate.mdx +0 -0
  189. /package/docs/academy/{04-ComponentLibrary → 06-ComponentLibrary}/_category_.json +0 -0
package/sidebars.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type {SidebarsConfig} from '@docusaurus/plugin-content-docs';
1
+ import type { SidebarsConfig } from '@docusaurus/plugin-content-docs';
2
2
 
3
3
  /**
4
4
  * Creating a sidebar enables you to:
@@ -16,17 +16,78 @@ const sidebars: SidebarsConfig = {
16
16
  {
17
17
  type: 'category',
18
18
  label: 'Get Started',
19
- items: [{ type: 'autogenerated', dirName: 'academy/01-GetStarted' }],
19
+ link: {
20
+ type: 'doc',
21
+ id: 'academy/GetStarted/home',
22
+ },
23
+ items: [
24
+ 'academy/GetStarted/ExploreDemoPackage',
25
+ 'academy/GetStarted/CreateNewPowerhouseProject',
26
+ 'academy/GetStarted/DefineToDoListDocumentModel',
27
+ 'academy/GetStarted/ImplementOperationReducers',
28
+ 'academy/GetStarted/BuildToDoListEditor',
29
+ ],
30
+ },
31
+ {
32
+ type: 'category',
33
+ label: 'Mastery Track',
34
+ items: [
35
+ {
36
+ type: 'category',
37
+ label: 'Builder Environment',
38
+ link: {
39
+ type: 'doc',
40
+ id: 'academy/MasteryTrack/BuilderEnvironment/Prerequisites'
41
+ },
42
+ items: [
43
+ 'academy/MasteryTrack/BuilderEnvironment/Prerequisites',
44
+ 'academy/MasteryTrack/BuilderEnvironment/StandardDocumentModelWorkflow',
45
+ 'academy/MasteryTrack/BuilderEnvironment/BuilderTools',
46
+ ]
47
+ },
48
+ {
49
+ type: 'category',
50
+ label: 'Document Model Creation',
51
+ link: {
52
+ type: 'generated-index',
53
+ },
54
+ items: [{type: 'autogenerated', dirName: 'academy/02-MasteryTrack/02-DocumentModelCreation'}]
55
+ },
56
+ {
57
+ type: 'category',
58
+ label: 'Building User Experiences',
59
+ link: {
60
+ type: 'generated-index',
61
+ },
62
+ items: [{type: 'autogenerated', dirName: 'academy/02-MasteryTrack/03-BuildingUserExperiences'}]
63
+ },
64
+ {
65
+ type: 'category',
66
+ label: 'Work With Data',
67
+ link: {
68
+ type: 'generated-index',
69
+ },
70
+ items: [{type: 'autogenerated', dirName: 'academy/02-MasteryTrack/04-WorkWithData'}]
71
+ },
72
+ {
73
+ type: 'category',
74
+ label: 'Launch',
75
+ link: {
76
+ type: 'generated-index',
77
+ },
78
+ items: [{type: 'autogenerated', dirName: 'academy/02-MasteryTrack/05-Launch'}]
79
+ }
80
+ ],
20
81
  },
21
82
  {
22
83
  type: 'category',
23
- label: 'Advanced Tutorial',
24
- items: [{ type: 'autogenerated', dirName: 'academy/02-AdvancedTutorial' }],
84
+ label: 'Example Usecases',
85
+ items: [{ type: 'autogenerated', dirName: 'academy/03-ExampleUsecases' }],
25
86
  },
26
87
  {
27
88
  type: 'category',
28
89
  label: 'API References',
29
- items: [{ type: 'autogenerated', dirName: 'academy/03-APIReferences' }],
90
+ items: [{ type: 'autogenerated', dirName: 'academy/04-APIReferences' }],
30
91
  },
31
92
 
32
93
  // Manually define the Component Library category
@@ -34,20 +95,46 @@ const sidebars: SidebarsConfig = {
34
95
  type: 'category',
35
96
  label: 'Component Library',
36
97
  items: [
98
+ {
99
+ type: 'doc',
100
+ id: 'academy/ComponentLibrary/DocumentEngineering',
101
+ },
37
102
  {
38
103
  type: 'html',
39
104
  value: `
40
- <a href="https://storybook.powerhouse.academy/" target="_blank" rel="noopener" style="display: flex; align-items: center; gap: 6px; font-weight: 500; text-decoration: none;">
41
- <svg width="18" height="18" viewBox="0 0 24 24" fill="none" style="vertical-align: middle; margin-left: 13px;">
42
- <rect width="24" height="24" rx="4" fill="#FF4785"/>
43
- <text x="12" y="16" text-anchor="middle" fill="white" font-size="12" font-family="Arial" font-weight="bold">SB</text>
44
- </svg>
45
- Storybook
105
+ <a class="menu__link" href="https://storybook.powerhouse.academy/" target="_blank" rel="noopener" style="display: flex; align-items: center; justify-content: space-between; font-weight: 500; text-decoration: none;">
106
+ <span style="display: flex; align-items: center; gap: 6px;">
107
+ Storybook
108
+ <img src="/img/storybook-icon.svg" alt="Storybook" width="20" height="20" />
109
+ </span>
110
+ <svg width="20" height="16" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v7a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h7v2H5v14h14v-6h2ZM13 3h8v8h-2V5.414L11.707 12.707l-1.414-1.414L17.586 4H13V3Z"/></svg>
46
111
  </a>
47
112
  `,
48
113
  },
49
- // Autogenerate the rest of the docs in this folder
50
- {type: 'autogenerated', dirName: 'academy/04-ComponentLibrary'},
114
+ {
115
+ type: 'doc',
116
+ id: 'academy/ComponentLibrary/BuildingWithScalars',
117
+ },
118
+ {
119
+ type: 'category',
120
+ label: 'Scalar Components',
121
+ items: [{type: 'autogenerated', dirName: 'academy/06-ComponentLibrary/03-Scalar-Components'}],
122
+ },
123
+ {
124
+ type: 'category',
125
+ label: 'Complex Components',
126
+ items: [{type: 'autogenerated', dirName: 'academy/06-ComponentLibrary/04-Complex-Components'}],
127
+ },
128
+ {
129
+ type: 'category',
130
+ label: 'Layout Components',
131
+ items: [{type: 'autogenerated', dirName: 'academy/06-ComponentLibrary/05-Layout-Components'}],
132
+ },
133
+ {
134
+ type: 'category',
135
+ label: 'Fragments',
136
+ items: [{type: 'autogenerated', dirName: 'academy/06-ComponentLibrary/06-Fragments'}],
137
+ },
51
138
  ],
52
139
  },
53
140
 
@@ -61,7 +148,6 @@ const sidebars: SidebarsConfig = {
61
148
  { type: 'doc', id: 'academy/Glossary', label: 'Glossary' },
62
149
  // ...add more as needed
63
150
  ],
64
- bookofpowerhouseSidebar: [{type: 'autogenerated', dirName: 'bookofpowerhouse'}],
65
151
  };
66
152
 
67
153
  export default sidebars;
@@ -25,7 +25,7 @@ const FeatureList: FeatureItem[] = [
25
25
  {
26
26
  title: "Switchboard",
27
27
  imageSrc: require("@site/static/img/switchboard.png").default,
28
- docPath: "/docs/academy/AdvancedTutorial/WorkWithData/ReadingAndWritingThroughTheAPI",
28
+ docPath: "/docs/academy/MasteryTrack/WorkWithData/ReadingAndWritingThroughTheAPI",
29
29
  description: <>Get access to the open API interface with Switchboard</>,
30
30
  },
31
31
  {
@@ -41,7 +41,7 @@ const FeatureList: FeatureItem[] = [
41
41
  {
42
42
  title: "Renown",
43
43
  imageSrc: require("@site/static/img/renown.png").default,
44
- docPath: "/docs/academy/AdvancedTutorial/BuildingUserExperiences/Authorization/RenownAuthenticationFlow",
44
+ docPath: "/docs/academy/MasteryTrack/BuildingUserExperiences/Authorization/RenownAuthenticationFlow",
45
45
  description: (
46
46
  <>
47
47
  Dive into the customizable reputation system
@@ -123,10 +123,10 @@ export default function HomepageFeatures() {
123
123
  <div className={styles.cardIconWrapper}>
124
124
  <img src="/img/academy/icons/Book.svg" alt="" />
125
125
  </div>
126
- <h3 className={styles.cardTitle}>Book of Powerhouse</h3>
126
+ <h3 className={styles.cardTitle}>New Link</h3>
127
127
  </div>
128
128
  <div className={styles.cardContent}>
129
- <a href="/docs/bookofpowerhouse/Overview" className={styles.pathButton}>The Vision of Powerhouse</a>
129
+ <a href="@callmeT" className={styles.pathButton}>The Vision of Powerhouse</a>
130
130
  </div>
131
131
  </div>
132
132
 
@@ -138,7 +138,7 @@ export default function HomepageFeatures() {
138
138
  <h3 className={styles.cardTitle}>Create</h3>
139
139
  </div>
140
140
  <div className={styles.cardContent}>
141
- <a href="/docs/academy/GetStarted/ToDoList/CreateNewPowerhouseProject" className={styles.pathButton}>Build a Todo-list Document Model</a>
141
+ <a href="/docs/academy/GetStarted/CreateNewPowerhouseProject" className={styles.pathButton}>Build a Todo-list Document Model</a>
142
142
  </div>
143
143
  </div>
144
144
 
@@ -163,9 +163,9 @@ export default function HomepageFeatures() {
163
163
  <h3 className={styles.cardTitle}>Build User Experiences</h3>
164
164
  </div>
165
165
  <div className={styles.cardContent}>
166
- <a href="/docs/academy/GetStarted/ToDoList/BuildToDoListEditor" className={styles.pathButton}>Building a Todo-list Editor</a>
166
+ <a href="/docs/academy/GetStarted/BuildToDoListEditor" className={styles.pathButton}>Building a Todo-list Editor</a>
167
167
  <a href="/docs/academy/BuildingUserExperiences/BuildingBeautifulDocumentEditors" className={styles.pathButton}>Building Beautiful Document Editors</a>
168
- <a href="/docs/academy/AdvancedTutorial/BuildingUserExperiences/BuildingADriveExplorer" className={styles.pathButton}>Building Custom Drive Explorers</a>
168
+ <a href="/docs/academy/MasteryTrack/BuildingUserExperiences/BuildingADriveExplorer" className={styles.pathButton}>Building Custom Drive Explorers</a>
169
169
  </div>
170
170
  </div>
171
171
 
@@ -200,8 +200,8 @@ export default function HomepageFeatures() {
200
200
  <h3 className={styles.cardTitle}>Work with Data</h3>
201
201
  </div>
202
202
  <div className={styles.cardContent}>
203
- <a href="//docs/academy/AdvancedTutorial/WorkWithData/ReadingAndWritingThroughTheAPI" className={styles.pathButton}>Reading & Writing through the API</a>
204
- <a href="/docs/academy/AdvancedTutorial/WorkWithData/WorkingWithSubgraphs" className={styles.pathButton}>Create your own Subgraph</a>
203
+ <a href="//docs/academy/MasteryTrack/WorkWithData/ReadingAndWritingThroughTheAPI" className={styles.pathButton}>Reading & Writing through the API</a>
204
+ <a href="/docs/academy/MasteryTrack/WorkWithData/WorkingWithSubgraphs" className={styles.pathButton}>Create your own Subgraph</a>
205
205
  <a href="/docs/academy/WorkWithData/Analytics Engine/intro" className={styles.pathButton}>Using the Analytics Engine</a>
206
206
  </div>
207
207
  </div>
@@ -216,7 +216,7 @@ export default function HomepageFeatures() {
216
216
  </div>
217
217
  <div className={styles.cardContent}>
218
218
  <div className={styles.buttonContainer}>
219
- <a href="/docs/academy/AdvancedTutorial/Launch/PublishYourProject" className={styles.pathButton}>Package & Publish</a>
219
+ <a href="/docs/academy/MasteryTrack/Launch/PublishYourProject" className={styles.pathButton}>Package & Publish</a>
220
220
  <a href="/docs/academy/Launch/LaunchYourBackend" className={styles.pathButton}>Launch Back-end</a>
221
221
  <a href="/docs/academy/Launch/LaunchYourFrontend" className={styles.pathButton}>Launch Front-end</a>
222
222
  </div>
@@ -448,3 +448,14 @@ html[data-theme='dark'] .DocSearch-Hits > *:empty {
448
448
  border-radius: 8px;
449
449
  border: none;
450
450
  }
451
+
452
+ /* Styles for DocCardList as a list */
453
+ .doc-card-list {
454
+ display: flex;
455
+ flex-direction: column;
456
+ gap: var(--ifm-spacing-vertical);
457
+ }
458
+
459
+ .doc-card-list-item {
460
+ width: 100%; /* Ensure items take full width */
461
+ }
@@ -39,4 +39,4 @@ export default function Home(): JSX.Element {
39
39
  </main>
40
40
  </Layout>
41
41
  );
42
- }
42
+ }
@@ -0,0 +1,30 @@
1
+ import React, {type ReactNode} from 'react';
2
+ import clsx from 'clsx';
3
+ import {
4
+ useCurrentSidebarCategory,
5
+ filterDocCardListItems,
6
+ } from '@docusaurus/plugin-content-docs/client';
7
+ import DocCard from '@theme/DocCard';
8
+ import type {Props} from '@theme/DocCardList';
9
+
10
+ function DocCardListForCurrentSidebarCategory({className}: Props) {
11
+ const category = useCurrentSidebarCategory();
12
+ return <DocCardList items={category.items} className={className} />;
13
+ }
14
+
15
+ export default function DocCardList(props: Props): ReactNode {
16
+ const {items, className} = props;
17
+ if (!items) {
18
+ return <DocCardListForCurrentSidebarCategory {...props} />;
19
+ }
20
+ const filteredItems = filterDocCardListItems(items);
21
+ return (
22
+ <section className={clsx('doc-card-list', className)}>
23
+ {filteredItems.map((item, index) => (
24
+ <article key={index} className="doc-card-list-item margin-bottom--lg">
25
+ <DocCard item={item} />
26
+ </article>
27
+ ))}
28
+ </section>
29
+ );
30
+ }
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
3
+ <svg width="800px" height="800px" viewBox="-31.5 0 319 319" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
4
+ <defs>
5
+ <path d="M9.87245893,293.324145 L0.0114611411,30.5732167 C-0.314208957,21.8955842 6.33948896,14.5413918 15.0063196,13.9997149 L238.494389,0.0317105427 C247.316188,-0.519651867 254.914637,6.18486163 255.466,15.0066607 C255.486773,15.339032 255.497167,15.6719708 255.497167,16.0049907 L255.497167,302.318596 C255.497167,311.157608 248.331732,318.323043 239.492719,318.323043 C239.253266,318.323043 239.013844,318.317669 238.774632,318.306926 L25.1475605,308.712253 C16.8276309,308.338578 10.1847994,301.646603 9.87245893,293.324145 L9.87245893,293.324145 Z" id="path-1">
6
+
7
+ </defs>
8
+ <g>
9
+ <mask id="mask-2" fill="white">
10
+ <use xlink:href="#path-1">
11
+
12
+ </mask>
13
+ <use fill="#FF4785" fill-rule="nonzero" xlink:href="#path-1">
14
+
15
+ <path d="M188.665358,39.126973 L190.191903,2.41148534 L220.883535,0 L222.205755,37.8634126 C222.251771,39.1811466 221.22084,40.2866846 219.903106,40.3327009 C219.338869,40.3524045 218.785907,40.1715096 218.342409,39.8221376 L206.506729,30.4984116 L192.493574,41.1282444 C191.443077,41.9251106 189.945493,41.7195021 189.148627,40.6690048 C188.813185,40.2267976 188.6423,39.6815326 188.665358,39.126973 Z M149.413703,119.980309 C149.413703,126.206975 191.355678,123.222696 196.986019,118.848893 C196.986019,76.4467826 174.234041,54.1651411 132.57133,54.1651411 C90.9086182,54.1651411 67.5656805,76.7934542 67.5656805,110.735941 C67.5656805,169.85244 147.345341,170.983856 147.345341,203.229219 C147.345341,212.280549 142.913138,217.654777 133.162291,217.654777 C120.456641,217.654777 115.433477,211.165914 116.024438,189.103298 C116.024438,184.317101 67.5656805,182.824962 66.0882793,189.103298 C62.3262146,242.56887 95.6363019,257.990394 133.753251,257.990394 C170.688279,257.990394 199.645341,238.303123 199.645341,202.663511 C199.645341,139.304202 118.683759,141.001326 118.683759,109.604526 C118.683759,96.8760922 128.139127,95.178968 133.753251,95.178968 C139.662855,95.178968 150.300143,96.2205679 149.413703,119.980309 Z" fill="#FFFFFF" fill-rule="nonzero" mask="url(#mask-2)">
16
+
17
+ </g>
18
+ </svg>
@@ -1,38 +0,0 @@
1
- # Install the Demo Package
2
-
3
- :::tip
4
- To give you a quick idea of how the Powerhouse ecosystem operates on document models and packages, why don't you try installing a package?
5
-
6
- Let's get started by installing the Powerhouse command-line tool `ph-cmd` and then using it to install a pre-built demo package with document models & editors.
7
- :::
8
-
9
- ## Powerhouse CLI
10
-
11
- You'll use the Powerhouse CLI to launch a local environment with a "Contributor Billing" package. This package demonstrates how you might track and bill for contributions in a project.
12
-
13
- ### Step 1: Install `ph-cmd`
14
-
15
- First, you need the Powerhouse command-line interface. Open your terminal and run the installation command :
16
-
17
- ```bash
18
- pnpm install -g ph-cmd
19
- ```
20
-
21
- Verify the installation:
22
-
23
- ```bash
24
- ph-cmd --version
25
- ```
26
-
27
- ### Step 2: Install the Contributor Billing Package
28
-
29
- Now, use `ph` to install the demo package into a globals project.
30
-
31
- ```bash
32
- # Install the package
33
- ph install contributor-billing
34
- ```
35
-
36
- This command downloads and sets up the Contributor Billing package, making its features available in your Powerhouse environment.
37
-
38
- You've now successfully installed `ph-cmd` and added your first package! To run the package locally in Connect, our collaboration & contributor app, you run the `ph connect` command.
@@ -1,32 +0,0 @@
1
- # Login with Renown
2
-
3
- Renown is Powerhouse's decentralized identity and reputation system designed to address the challenge of trust within DAOs, where contributors often operate under pseudonyms. In traditional organizations, personal identity and reputation are key to establishing trust and accountability. Renown replicates this dynamic in the digital space, allowing contributors to earn experience and build reputation without revealing their real-world identities.
4
-
5
-
6
- :::tip
7
- When signing in with Renown use an Ethereum or blockchain address that is fit to function as your 'identity' as over time more experience and history will be accrued by this address.
8
- :::
9
-
10
- ## Login Flow
11
-
12
- ### Find the Renown Icon
13
- "**Login with Renown**" is a decentralized authentication flow that enables users to log into applications by signing a credential with their Ethereum wallet. Upon signing in, a Decentralized Identifier (DID) is created based on the user's Ethereum key.
14
-
15
- ![Renown Login](./images/RenownLogin.png)
16
-
17
- ### Generate a DID to sign operations in Connect
18
- This DID is then associated with a credential that authorizes a specific Connect instance to act on the user's behalf. That credential is stored securely on Ceramic, a decentralized data network. When the user performs actions through the Powerhouse Connect interface, those operations are signed with the DID and transmitted to Switchboard, which serves as the verifier.
19
-
20
- ![Renown Login](./images/ConnectAddress.png)
21
-
22
- ![Renown Login](./images/LoginComplete.png)
23
-
24
- ### Modify a document
25
- Switchboard checks the validity of the DID and credential, ensuring the operation request is legitimate. This flow is designed to offer a verifiable, cryptographically secure login system that replaces traditional password-based authentication with decentralized identity and signature-based trust.
26
-
27
- ![Renown Login](./images/OperationsHistory.png)
28
-
29
- By leveraging this system, every operation or modification made to a document is cryptographically signed by the contributor's Renown identity. This ensures that each change is verifiable, traceable, and attributable to a specific pseudonymous user, providing a robust audit trail for all document activity.
30
-
31
- For a deeper dive into how these signed operations are recorded and visualized, see the [Operations History](/docs/academy/AdvancedTutorial/BuildingUserExperiences/DocumentTools/OperationHistory) page.
32
-
@@ -1,86 +0,0 @@
1
- # The ToDoList Data Model
2
-
3
- In this tutorial, you will learn how to design your document model and export it to be later used in your Powerhouse project.
4
- If you don't have a document model created yet, have a look at the previous step of this tutorial to create a new document model.
5
-
6
- Before you start, make sure you have the Connect application running with the command `ph connect`
7
-
8
- ## ToDoList Document Model Schema
9
-
10
- Likely you have called your project 'ToDoList'. If not, please make a new document and pay attention to the capitalization as it influences our code. We'll continue with this project to teach you how to create a document model and later an editor for your model. We use the GraphQL Schema Definition Language (SDL) to define the document model schema. Below, you can see the SDL for the `ToDoList` document model.
11
-
12
- :::info
13
- This schema contains the **data structure** of the document model and the basic operations that can be performed on the document model.
14
- Document models in Powerhouse leverage **event sourcing principles**, where every state transition is represented by an operation. GraphQL input types describe operations, ensuring that user intents are captured effectively. These operations detail the parameters needed for state transitions. The use of GraphQL aligns these transitions with explicit, validated, and reproducible commands, supporting **CQRS** (Command Query Responsibility Segregation) patterns.
15
- :::
16
-
17
- ## State Schema
18
-
19
- ```graphql
20
- # The state of our todolist
21
- type ToDoListState {
22
- items: [ToDoItem!]!
23
- }
24
-
25
- # A single to-do item
26
- type ToDoItem {
27
- id: ID!
28
- text: String!
29
- checked: Boolean!
30
- }
31
- ```
32
-
33
- ## Operations Schema
34
-
35
- ```graphql
36
- # Defines a GraphQL input type for adding a new to-do item
37
- input AddTodoItemInput {
38
- id: ID!
39
- text: String!
40
- }
41
-
42
- # Defines a GraphQL input type for updating a to-do item
43
- input UpdateTodoItemInput {
44
- id: ID!
45
- text: String
46
- checked: Boolean
47
- }
48
-
49
- # Defines a GraphQL input type for deleting a to-do item
50
- input DeleteTodoItemInput {
51
- id: ID!
52
- }
53
- ```
54
-
55
- ## Define the Document Model
56
-
57
- To be able to define the document model, you need to open the document model editor in Connect.
58
-
59
- The steps below show you how to do this:
60
-
61
- 1. In the Connect application, click on the **'document model'** editor to open the document model editor.
62
- 2. Call your document model 'ToDoList' and pay attention to capitalization.
63
- 3. You'll be presented with a form to fill in metadata about the document model. Fill in the details in the respective fields.
64
-
65
- In the `Document Type` field, type `powerhouse/todolist`. This defines the new type of document that will be created with this document model.
66
-
67
- ![ToDoList Document Model Form Metadata](./images/DocumentModelHeader.png)
68
-
69
- 4. In the code editor, you can see the SDL for the document model. Replace the existing SDL with the SDL defined in the [State Schema](#state-schema) section. Only copy and paste the types, leaving the inputs for the next step. You can, however, already press the 'Sync with schema' button to set the initial state of your document model based on your Schema Definition Language.
70
- 5. Below the editor, there is an input field `Add module`. You need to create and name a module that the input operations will be added to. In this case, we will name the module `to_do_list`. Press enter.
71
- 6. Now there is a new field, called `Add operation`. Here you will have to add each input operation to the module, one by one.
72
- 7. Inside the `Add operation` field, type `ADD_TODO_ITEM` and press enter. A small editor will appear underneath it, with an empty input type that you have to fill. Copy the first input type from the [Operations Schema](#operations-schema) section and paste it in the editor. The editor should look like this:
73
-
74
- ```graphql
75
- input AddTodoItemInput {
76
- id: ID!
77
- text: String!
78
- }
79
- ```
80
-
81
- 7. Repeat step 6 for the other input operations. You may have noticed that you only need to add the name of the operation (e.g., `UPDATE_TODO_ITEM`, `DELETE_TODO_ITEM`) without the `Input` suffix. It will then be generated once you press enter.
82
- 8. Once you have added all the input operations, click on the `Export` button, at the top right of the editor, to save the document model on your local machine. Ideally, you should save your file in the root of your Powerhouse project on your machine.
83
-
84
- Check below screenshot for the complete implementation:
85
-
86
- ![ToDoList Document Model](./images/DocumentModelOperations.png)
@@ -1,8 +0,0 @@
1
- {
2
- "label": "Create a ToDoList",
3
- "position": 1,
4
- "link": {
5
- "type": "generated-index",
6
- "description": "Get started with the ToDoList tutorial! Jump into creating a new Powerhouse project if you have NodeJs, VSCode, and Git installed."
7
- }
8
- }
@@ -1,3 +0,0 @@
1
- {
2
- "label": "Get Started"
3
- }
@@ -1,8 +0,0 @@
1
- {
2
- "label": "More Tutorials",
3
- "position": 3,
4
- "link": {
5
- "type": "generated-index",
6
- "description": "Explore our tutorials to learn how to use document models in your project."
7
- }
8
- }