User Stories

Last modified by Manuel Leduc on 2023/10/16 11:18

 This document will list the user stories of the Cristal User Interface.

User Stories

star are features required for the MVP

Standard User Stories

Entry point :

  • EP1 star : As a user, I am able to load the UI of Cristal from a website. This website won't store anything in its backend. It is just a server that serves the javascript resources necessary to run the application (similar to web app)
  • EP2 star: As a user, I am able to load the UI of Cristal from an application that integrates Cristal : eg. Nextcloud, CryptPad, … . This UI will be automatically configured to be connected to the backend from which it was loaded.
  • EP3 : As a user, I am able to download a heavy client containing the Cristal UI on my laptop (similar to element-desktop)

Backend configuration :

  • BC1 : As a user, I am able to configure my Cristal Wiki to connect to a specific backend by providing a URL to this backend. From the URL, Cristal is able to infer the type of backend
  • BC2 : As a user, I am able to configure my Cristal Wiki to "create" content

View functions

  • V1 star: As a user I can view page stored in a backend
  • V1.1 star: The file from the backend it's transformed in JSON-LD in the client if the backend does not support the JSON-LD format
  • V1.2 star: Each backend supported in the MVP should support a minimal set of meta data (creator, last updater, creation date, last update data, location)
  • V2.1 star: Markdown syntax rendering is supported on the client side
  • V2.2 star: Server side rendering on XWIki document is supported for XWiki backend
  • V2.3: XWiki Syntax 2.1 rendering is supported on the client side
  • V2.4 star: Links to other documents are supported
  • V2.5 star: Links to attachments are supported
  • V4 star: Macros can be viewed using client side rendering
  • V4.1 star: Macros fallback to server rendering is supported with XWiki
  • V4.2: Macro server rendering could support a local partial rendering
  • V5 star: Viewing comments is possible if the backend supports it
  • V5.1 Viewing annotations is possible

Macro support (local)

  • M1 star: warning/info/top
  • M2 star: code
  • M3 star: TODO Macro list for MVP
  • M4: More macros

Editor functions

  • E1 star: Cristal supports multiple syntaxes in Wysiwyg Editing
  • E1.1 star: Editing using CKEditor of XWiki Syntax is supported
  • E1.2: Editing using CKEditor of Markdown Syntax is supported
  • E1.3 star: Editing using XWiki bundled Editor is supported (If possible, this would allow supporting all XWiki Editing feature without rewriting an editor)
  • E1.4: Editing using a block editor is possible
  • E2: Realtime editing is possible
  • E3: / is supported to find macros (both client and server side available macros)
  • E4 star: Image inserting is supported (uploading images to the backend)
  • E4.1: Image resizing is possible
  • E4.2: Image positioning is possible
  • E5 star: Major features of the current XWiki editor are available
  • E6: All features of the current XWiki editor are available
  • E7 star: Attachment upload is possible
  • E8: Annotations can be added
  • E8.1: Annotations are supported in Edit mode
  • E9: Editing is possible offline

Search function

  • S1 star: Cristal provides a search interface
  • S1.1 star: Local Search based on title is possible
  • S1.2: Local Search on text content is possible (on available files)
  • S1.3: Local Search using a complex index is possible
  • S2 star: Search using backend search is possible
  • S2.1: XWiki backend search supports facets


  • N1 star: A navigation Tree is available to view the wiki
  • N2 star: A basic breadcrumb is available to view the location
  • N2.1: An advanced breadcrumb is available (similar to XWiki)
  • N3; Document information tabs are available
  • N4: Drag and Drop is supported in the Tree view

LiveData (supported on XWiki or with local JSON static source).

  • LD1 : Live Data Viewing is supported (on part with current XWiki), reusing the XWiki VueJS module
  • LD1.1: Live Data Viewing is supported (main features of Notion available)
  • LD2: Live Data editing is supported (on par with current XWiki)
  • LD2.1: Live Data editing is supported (main features of Notion are available)

Advanced Features

  • AD1 star: Delete is possible
  • AD2 star: Basic Move/Rename is possible
  • AD2.1: Advanced Move/Rename is possible (with XWiki parameters)
  • AD3: UI allows to see the synchronization status if offline changes are not synced


  • D1 star: Cristal has a design system
  • D2 star: Cristal is based on a well known CSS/LESS/design system framework with long term survival chances
  • D3: It is possible to support color themes
  • D4: Editing is in-place editing

Technical Architecture User Stories

  • T1 star: Cristal is based on modern technologies
  • T2 star: Cristal is modular and based on extensions
  • T2.1 star: Cristal supports UI/JS/Style/Macro extensions in a similar way than XWiki
  • T3: Cristal supported realtime editing if the service is available for the backend
  • T3.1: For backends not natively supporting realtime editing, XWiki could provide a server for realtime sync between users
  • T3.2: XWiki would natively support realtime editing of XWiki documents in Cristal
  • T3.3: XWiki supports realtime editing of document in Cristal including with a user editing in XWiki's current realtime editor
  • T4 star: Cristal architecture supports offline mode to view and edit pages which have already been viewed
  • T4.1: Configuration would allow to decide which part of XWiki is update regularly as a backend process
  • T4.2: Cristal would first load a local copy of a page and then update it in the backend in case the page has been modified on the server
  • T5 star: Features of Cristal can be activated/deactivated by configuration, on the server, or locally
  • T5.1: Users can override preferences
  • T5.2: Preferences can depend on the location in the Wiki

XWiki User Stories

  • X1 star: XWiki is available as a backend for Cristal
  • X2 star: XWiki Syntax 2.1 is supported, using server side rendering
  • X2.1: XWiki Syntax 2.1 is supported, using client side rendering
  • X3 star: XWiki Macros are all supported by fallbacking to server rendering of Macros if the macro is not supported on the client side
  • X4 star: XWiki Search using SOLR is supported as a search
  • X4.1: XWiki Search supports facet
  • X5 star: XWiki is able to natively provide JSON-LD files to Cristal on XWiki 16.x or using an extension
  • X5.1 star: Cristal can load native XWiki files on older versions of XWiki or one that does not have the extension

Admin User Stories

  • A1 star: It is possible to deploy Cristal in XWiki as an additional UI (Cristal extension)
  • A2: XWiki Admin can configure Cristal deployed in XWiki
  • A2.1 : As a backend administrator, I am able to allow or deny users to configure the Cristal to work with backends different than the one I am providing
  • A3: If Cristal is deployed in XWiki, XWiki can make extensions available to the XWiki admin for deployment in the Wiki UI deployed in XWiki

Developer User Stories

  • D1 star: As a developer I'm able to extend Cristal by building extensions which can be easily deployed in Cristal
  • D2 star: It is possible to developer an extension as a Git project using standard technologies
  • D3: It is possible to publish your extension by an easy release process to make the extension available in an Extension Repository to all Cristal users
  • D4 star: A developer can easily test an extension from a local directory


  • S1 star: Support Authentication for user
  • S1.1 star: Propose authentication if viewing page requires it
  • S1.2 star: Propose authentication if editing a page requires it
  • S1.3: Do not show features if the user does not have the right on that feature
  • S2 star: Auth architecture should support Single Sign On
  • S2.1 star: Auth with XWiki should work with OIDC
  • S3 star: Cristal protects from XSS attacks
  • S4 star: Developer features don't create security issue
  • S5 star: Rights on documents are properly enforced
  • S6: Rights can be viewed and edited if the backends supports it

Minimum Viable Product

The MVP features are the ones with star

  • Be able to create new pages (simple pages with title and content)
  • Be able to create links between pages
  • Be able to edit using XWiki syntax
  • Be able to edit using Markdown syntax
  • Be able to save pages on 1 supported backend
    • Implies that we need to be authenticated with the backend
  • Be able to display a navigation tree that allows to switch from one page to another
  • Be able to show who is editing a document in the UI (the author)
    • Get an information about the user identity from the backend
    • Show it in the UI
    • Use this information to save the contents

Get Connected