Roadmap
Last modified by Ludovic Dubost on 2023/09/23 11:46
September Roadmap
from XWiki Roadmap
Manuel
- Setup the critial dev infrastructure (issue tracker, documentation wiki, CI)
- Forum proposal of the global architecture (what's client side, what's server side, how do we connect to the storage backend...) (based on https://design.xwiki.org/xwiki/bin/view/Proposal/Wiki30)
Work on authentication (delegate authentication to the underlying storage) PoC + proposal
Clement D
- Benchmark of Javascript component injection libraries + design page + forum proposal (based on Ludovic PoC)
- Vue 3 as our front-end framework forum proposal (based on Ludovic PoC)
- Document tree PoC + design page + forum proposal
Ludovic
- Prototyping work
Macro Planning
September: Prototyping & Project setup
October:
Manuel & Clement D. on-boarding
Technical architecture decisions
dev environment setup
start working on module designs
November:
Convert prototype to code base
More module work
On-boarding UX Engineer
2024-Q1: Alpha version
2024-Q2: Beta version
Detailed Task List
Starting the Project
Setup a project environment -> Manuel
Choosing a Project Name
Issue Management Tool
Code repositories -> temporarily here: https://git.xwikisas.com/wiki30
Matrix Discussion area
Forum discussion area -> https://forum.xwiki.org/c/wiki-3-0/18
Wiki area -> temporarly here
Move tasks to issue management tool
Announce Project -> Manuel
Specification Work -> Ludovic
General Principles (Partial)
User Stories List
MVP List
User Stories Details
JSON-LD Models (Partial)
Storage API (Partial)
XWiki REST Apis
Design System
Mockups
Prototyping Work -> Ludovic
Publish Prototype
Extensible Architecture
Inversion of Control
Typescript coding
Modular Vue UI
UIX
Skin system
Build system
Storage API
Accessing XWiki using REST APIs and rendering a page server side
Accessing GitHub repositories and rendering markdown pages client side
XWiki Client side rendering -> implemented using TeaVM porting of Wikimodel
Generaring JSON-LD from XWiki Pages (Blog article + Movie page)
Display a JSON-LD Blog or Movie page Client side
Editing a JSON-LD Movie page Client Side
Macro infrastructure
Macro rendering server side
Macro rendering client side -> test with Alert macros
Authentication -> Manuel
Offline
Design System Abstraction -> 3 components created based on Vuetify and DSFR
Realtime editing
Technical Architecture aspect -> Manuel & Clement D.
Decide language (Typescript ?)
Decide build tools (vitejs ?)
Decide Inversion of Control Framework
Decide code organization, main packages
Decide Visual Framework
Should we use Vue (Vue3)
Should we use Web Components
Should we abstract basic components to be able to replace them -> YES
Decide components package (vuetify ? radix ? other ?)
Decide Design System
Decide CSS Framework
Decide Test Framework
Decide Code Style Tool -> lint ?
Decide Accessibility Tests Framework
Setup Code Infrastructure
Build Tool
Code Style
Adding Licence (AGPL) + Tools
Test Infrastructure
Accessibility Test Infrastructure
MVP Priority 1
(Try to order priorities)
(general) Basic Structure of the App
Extensibility by module and components
Core APIs design
Logging Capacity
Skin Capacity
UIX Capacity
Define URL scheme
(jsapis) Data Model API in JS
(backend + jsapis) XWiki SAS Minimal API to access documents + associated XWiki api
(jsapis) API and first implementation of a local storage module of documents
(frontend) Basic App structure (header, footer, sidebar, drawers)
Resizable drawer (memory in cookie ?)
(frontend) Basic view and navigation
(frontend) XWiki Legacy rendering
(jsapis) rendering APIs
(jsapis) markdown rendering
(jsapis) XWiki client side rendering
(jsapis) Macro API support
(jsapis) Client Side essential Macros
(jsapis + backend) Server Side fallback XWiki rendering
(jsapis) Support for XWiki structured documents (prototype needed)
(frontend) Basic header with logo, profile / login, advanced drawer
(frontend / jsapis / backend)
Authentication apis
Authentication for XWiki
Click to Login
Authentication for NextCloud
(frontend) View user Profile
Authentication for GitHub
Detect Login and force Login
(frontend) Breadcrumb
(frontend) Tree View of documents
Editing
(frontend) Basic Wiki Edit
(frontend) XWiki legacy Edit
Search: basic quick search
Doc Extra (in tab or more generally
Basic info (native), display author, last updater, etc..
View History (native all platforms with history)
Comments (XWiki only, view only)
Attachment (native), including upload
XWiki
NextCloud
GitHub
Compatible Doc Extra with XWiki
Basic Move / Rename / Delete
Packaging
(packaging) Allowing to provide configuration with list of extensions
(packaging) Working locally
(packaging) Packaging in XWiki
Support XWiki provided configuration
MVP Priority 2
Major XWiki REST API refactoring
Support Multi wiki
Tree View
Allow drag and drop to move documents
Editor (Need more work to analyse editor needs)
Support structured document editing
New editor Architecture choices
QuickActions infrastructure
Link Editor
Images
Attachments (upload)
Macro support
Native method
XWiki compatibility
Realtime support
Mention support (+ TODO)
(frontend) LiveData integration
Full native integration of LiveData in Wiki 3.0
More development of LiveData edit features
Compatibility with json only livedatas
View
Comment editing
Annotation View
Wiki 3.0 uses colors from XWiki Color Theme
Support Top Menu
With XWiki SAS compatibility
Store a simple page in backend repository
Basic search
XWiki legacy search
(jsapi) search
Basic XWiki implementation
Basic NextCloud implementation
Basic GitHub implementation
Rendering and Macros
PDF and Office viewers (native)
Gallery Macro (native)
Tags
Likes
Admin
Allow changing logo of Wiki from UI
Administration drawer
Notifications
Integration with XWiki notifications
NextCloud notification
Export (PDF)
Compatibility with XWiki
Make sure to support XWiki with SSO
Configuration UI
Allow to add an additional wiki
Allow to switch wikis
Extension Manager
Support adding extensions dynamically
(packaging) Local Installation
Additional Editing features
Rollback in History
Change display
Move/Rename page (could be important)
Delete page
Edit Profile
Panels (to study)
Support configurable panels by space (to study)
Alternative Native panels
Intelligent Panel reloading
Future
Test on Mobile
Advanced Editing
Create Form with templates
Full realtime support
Resync from Offline
Annotations
Editing of Office documents
Support Main / Pro Apps in Wiki 3.0 (with or without native features)
Blog Application
Meeting App
Task Macro, Native Todo in Task Macro
Advanced search
Support XWiki equivalent search (native)
Administration
Access to XWiki Administration (legacy)
Export PDF
Integrate client side PDF export natively (no server needed, offline)
Native AI integration
Themes
New Application development Methodology
How to make an XWiki app with content on one side (Structured documents) and code on the other side