Skip to main content

Roadmap

Year 2024

Welcome to the Qore roadmap of 2024.

The goal this year is to have a new front-end with the following specifications:

  • Vue 3
  • Composition API
  • TypeScript
  • Vite
  • Tailwind CSS
  • PrimeVue component library
  • Pinia store
  • Qore front-end as NPM package

Below are described the different phases of the project. The project is divided into 7 phases, each phase will be reviewed internally before moving on to the next phase.

The goal is to have a working version after phase 5.


Phase 1

  • Create a new Skeleton front-end with Vite, Vue 3, and TypeScript
  • Create Typescript Qore-front-end NPM package and include it in Skeleton as a Vue plugin
  • Add Pinia state management (auth, layout, api etc.)
  • Create authorization and authentication pages (Login, Forgot Password, Reset Password)
  • Add error handling and 500 dd dialog
  • Include PrimeVue and create app layout
  • Add main menu
    • Support material icons
  • Add Theme Switcher (with dark mode support)
  • Add MVP BaseForm (bare minimum)
    • Conversion JSON to FormData
    • Debouncing, field data, field meta
    • Field actions
    • Field state transferring
    • Field labels, tooltips, hints
    • Field disabled / readonly
  • Add MVP resource pages (bare minimum)
  • Add MVP for resources (bare minimum):
    • UserResource
    • MailTemplateResource
    • Tenant Resource
    • Twig templates
  • Add MVP for fields (bare minimum):
    • (Skeleton) AvatarName
    • (Skeleton) CheckedPassword
    • (Skeleton) TenantRoles
    • (Mailing) InternalSourceSelect
    • (Mailing) MailReceivers
    • Relational
      • BelongsTo
      • BelongsToMany
    • Text
    • CheckBox
    • Select
    • Choice
    • Code
    • FilePicker
    • Id
    • TemplatePreview
    • Text
    • Textarea
  • Add support for using fields outside BaseForm
  • Add helper methods for preferences and settings
  • Add support for extending Qore Pinia stores within Skeleton
  • Create MVP how-to documentation (for developers)
  • Create MVP guidelines documentation (for developers)
  • ** Internal review **

Phase 2

  • BaseDialog component
  • Confirmation popup support
  • Profile page
  • Auth preferences
  • Tenant preferences
  • Add roles & permissions page(s)
  • Add tenant variable page(s)
  • Add serial number page(s)
  • Add mailing page(s)
  • Add authentication settings page
  • Add permissions checking for resource pages
  • Forms in dialogs (BaseDialogForm) with static buttons
  • Add MVP for BaseTable
    • Filtering
    • Sorting
    • Pagination
  • Add MVP for resources (bare minimum):
    • Mail footers
    • Countries
  • Add resource meta data (icons, title, description)
  • Add Resource Detail
    • Tabs
    • Cards
    • Actions
    • Events & Listeners (refresh page or element)
    • Logs
  • Add roaming media support
  • Session management
  • 2FA
  • Add router middleware (2FA, confirmed etc.)
  • Add MVP for fields (bare minimum):
    • Relational
      • HasOne
      • HasMany
      • HasOneThrough
      • HasManyThrough
      • MorphOne
      • MorphMany
      • MorphTo
      • MorphToMany
      • BelongsToUser
      • BelongsToManyUsers
    • Color
    • CreatedAt
    • UpdatedAt
    • Date
    • DateTime
    • Image
    • Number
    • PreferenceSelect
    • Price
    • SettingSelect
    • Wysiwyg (CKEditor with variables, images)
    • TwigTemplate
    • VariableValue
  • Phase 1 Review issues
    • Use typehinting in defineEmits
    • Use generics in Field modelValue (in useField)
    • Logical imports (e.g. import { useField } from 'qore/helpers')
    • Proper PHPStorm support (if available)
    • “Unplugin" instead of global PrimeVue components
    • Use SelectField in every component that has a dropdown
    • Options for Select field should be in a separate helper file (instead of field.ts)
    • Make Qore front-end available as a package in Gitlab
  • ** Internal review **

Phase 3

  • Page breadcrumbs
  • Page fixed header (with title, slots etc.)
  • Preferences & Settings
    • Apply language preference
    • Apply favicon preference & additional preferences
    • Add global CSS
  • BaseForm
    • Interceptions
    • Sticky
  • Add Field Layouts
    • Columns
    • Tabs
    • Steps
    • Cards
    • Columns with cards
  • BaseTable
    • Default sort column
    • History & State
    • Actions
    • Export
    • Row styling
    • Column styling
    • Resource Index tabs
  • Field display
    • Tooltips
    • Columns widths, visibility
    • Inline Edit
  • Add multi-tenancy support (switching tenants)
  • Alerts on resource pages
  • Add MVP for fields (bare minimum):
    • Action button
    • Button
    • DetailButton
    • Duration
    • EncryptedText
    • Heading
    • Month
    • Paragraph
    • Phone
    • Place
    • Separator
    • SimpleEditor
    • Status
    • Time
    • Website
  • Relation fields
    • Scoping (query)
    • Field dependency
    • Links / Buttons
    • As Tab / as Table
    • Attaching / Detaching
    • Relational BaseForm
    • Relational BaseTable
    • Relational Table actions
  • Replaceable components (e.g. index) for KanBan etc.
  • Host the application somewhere for testing purposes
  • ** Internal review **

Phase 4

  • Global search
  • Scope groups in Roles & Permissions
  • Background processes (downloads)
    • Active downloads in TopBar (exported downloads)
    • Downloads table page
  • API Tokens page
  • BaseTable finishing up
    • Inline editing
    • Context menu
    • Row click action
    • Sticky columns
    • Column resizing
    • Column dragging
    • Totals (summary)
    • Table Settings
    • Table Column selection
    • Table Filters
  • Responsiveness
    • BaseTable
    • Roles & Permissions (table)
  • Resource Detail finishing up
  • Chips
  • Block buttons
  • Sidebar
  • BaseForm (Resource)
    • Duplicating
    • Create "another one"
  • Readonly & Disabled for fields should block UI (via FieldWrapper)
  • Finish / clean up fields, and add fields:
    • Rating
    • RelatedToMany
    • RelationTable
    • Repeater
    • SerialNumber
    • VatNumber
  • Resource actions
    • Metadata support (focus, width, redirect, etc.)
    • File downloads
    • Impersonation
  • Add tab navigation support with router
  • Add better search support on select fields (also search on description)
  • Add "intended" url support for logging in (2fa, password confirm etc.)
  • Add theming (colors) based on preferences (https://primevue.org/theming/)
  • (Optional) switch from PrimeVue styled to unstyled Tailwind PrimeVue
  • i18n for PrimeVue messages
  • ** Internal review **

Phase 5

  • Add modules & plugin support (Vue plugins)
  • Add modules & plugin page(s)
  • Add Fields
    • CompanyName
    • Country
    • Currency Select
  • Add Extensions
    • qore/address
      • Addresses field
      • PhoneNumbers field
      • EmailAddresses field
    • qore/crm
    • qore/mailing-extended
    • qore/notes
    • qore/geocoding
    • qore/postcode
    • qore/kvk
    • qore/microsoft-graph
  • Declare module
  • ** Internal review **
  • Make production ready (add first tag)

Phase 6

  • Add favicon support (icons)
  • Add Extensions
    • qore/layout
    • qore/attribute
    • qore/employee
    • qore/invoicing
    • qore/kanban
    • qore/products
    • qore/subscriptions
    • qore/templates-extended
    • qore/login-branding
    • qore/okta
    • qore/sso
    • qore/brandfetch
    • qore/adversus
    • qore/mailgun
    • qore/messagebird
    • qore/quickbooks
    • qore/wefact

Phase 7

  • Add Extensions
    • qore/excel-import
    • qore/forms
    • qore/tickets
    • qore/signature