Skip to product information
1 of 50

Smart Premium Theme for Dolibarr ERP/CRM

Regular price €299,00
Regular price Sale price €299,00
Sold out

1. Executive Summary

Smart is a premium interface theme for Dolibarr ERP/CRM aimed at schools, universities,...

7 people are viewing this right now

View full product details

1. Executive Summary

Smart is a premium interface theme for Dolibarr ERP/CRM aimed at schools, universities, training centres and academies. It replaces the whole application shell — sidebar, top bar, dashboard and sign-in page — and ships three complete, switchable dashboard compositions on one shared technical architecture.

Smart is a theme, not a school-management module. Every academic figure it displays is derived from data a standard Dolibarr already holds: students are third parties, teachers are users, courses are services, fees are invoices, homework are project tasks, exams are agenda events and library loans are stock movements. No companion module is required, and no core file is modified.

Two rules govern every widget in the product:

·       A widget whose Dolibarr module is disabled is not rendered at all. It never degrades into a grid of zeros that would read as "this school has no students"; a short, non-blocking line names the module to enable instead.

·       A ratio computed over an empty population renders as an em dash, never as 0 %. "0 % attendance" and "nobody has been recorded yet" are opposite statements and must not share a rendering.

The theme was validated on a live Dolibarr 17.0.3 instance holding 4 228 third parties, 1 989 invoices, 1 851 products and 84 project tasks. Fifty-one screenshots were captured from that instance; the figures visible in this document are real query results, not mock-ups.

2. Theme Overview

Property

Value

Commercial name

Smart

Technical name

theme_smart

Folder

smart

Module class

modSmart

Module number

10000800

Version

1.0.0

Distribution file

module_smart-1.0.zip

Licence

GPL-3.0-or-later

Editor

DoliResources — https://www.doliresources.com

Validated on

Dolibarr 17.0.3, PHP 8

Declared support

Dolibarr 16 and above

 

Smart integrates through two official mechanisms only: the module_parts css/js declaration, which injects its stylesheet and script on every page, and a MenuManager that re-renders the left menu. The native menu tree is reused verbatim, so every module's entries, permissions, entity restrictions and translations behave exactly as they do in the standard Eldy theme.

3. Design Objectives

·       Reproduce the visual identity of the three reference designs: white sidebar, white top bar, very light blue-grey page background, white cards, hairline borders, soft shadows and generous corner radii.

·       Ship three complementary dashboard compositions that share one architecture, one permission model and one configuration screen.

·       Read real Dolibarr data everywhere; never display a placeholder figure.

·       Degrade gracefully and silently when an optional module is absent.

·       Stay usable for long working sessions: high contrast, calm palette, no motion that cannot be disabled.

·       Remain a generalist Dolibarr theme usable on an instance with no school module.

4. UI/UX Philosophy

Smart follows a simple rule: the interface must never state something it cannot prove. Three consequences shaped the implementation.

·       Each KPI tile carries its own variation or none at all. Borrowing another metric's delta — printing a staff head-count trend under an attendance rate, for instance — labels a figure as something it is not.

·       Growth measured from an empty previous period is reported as "new", not as "+100 %": a finite percentage would invent a comparison that never existed.

·       Semantic colour is reserved for semantics. Outstanding fees are drawn in neutral grey, never in the success green used elsewhere for collected money.

Visually the theme favours flat surfaces, one accent colour per demo and a single elevation level. Gradients appear only on the headline KPI tiles, where the reference designs use them, and every text child inside those tiles re-declares its colour so a saturated background can never produce unreadable text.

5. Smart Academic Overview Demo

The academic front office: admissions, teaching-staff attendance, homework, fees, student attendance, exam performance, library loans and a student ranking.

Element

Content

Dolibarr source

KPI 1

New admissions, variation, enrolled population

Third parties created in the period

KPI 2

Teaching-staff attendance rate, present/total

Active users, Holiday module when enabled

KPI 3

Homework submitted, completed and overdue counts

Project tasks and their progress

KPI 4

Students with unpaid fees, amount, overdue count

Unpaid customer invoices

Ring

Present / absent split, total, attendance rate

Third-party status

Bars

Collected vs outstanding fees, twelve months

Invoices and payment status

Curves

Exam sessions, current vs previous year

Agenda events

Curves

Books issued vs returned, twelve months

Stock movements

Table

Student ranking by number of enrolments

Invoices grouped by third party

 

Filters. The period selector in the page header (week, month, year) drives every dated figure on the dashboard. Chart panels link through to the matching Dolibarr list, where the full native filter set — class, level, payment mode, academic year as recorded in your data — remains available.

6. Smart University Analytics Demo

An analytical reading for universities and training organisations: population counters with their variation, a large enrolment survey curve, per-subject homework progress and a financial summary.

Element

Content

Dolibarr source

Total students

Enrolled population and variation

Customer third parties

New students

Admissions in the period

Third parties created in the period

Total courses

Course catalogue and variation

Services

Visitors

Recorded visits and enquiries

Agenda events

Survey

Cumulative enrolment vs new enrolments

Third-party creation dates

Homework

Completion rate and deadline per subject

Projects and their tasks

New admissions

Admissions and applicant pool

Third parties, prospects

Student results

Completion rate per subject

Average task progress per project

Fee summary

Collected, outstanding, overdue, expected

Invoices and payments

 

7. Smart Education Management Demo

A management overview for an establishment: headline counters, grouped fee bars, enrolment trend, an assigned-task board and the teaching staff list.

Element

Content

Dolibarr source

KPI 1

Total students, active and inactive

Customer third parties and status

KPI 2

Total teachers, registered and inactive

Users and status

KPI 3

Total courses, open and closed

Services and their sale flag

KPI 4

Fees collected and outstanding balance

Paid invoices

Bars

Collected vs outstanding, twelve months, with totals

Invoices

Area

Cumulative enrolment and new enrolments

Third-party creation dates

Board

Task, assignee, status, progress

Project tasks and their contacts

List

Teaching staff with role and status

Active users

 

8. Dashboard Architecture

A single preset library (core/smart_presets.php) is the only source of truth for the stylesheet, the script, the dashboard, the sidebar and the configuration page. The CSS defaults and the admin defaults are literally the same array, so a reset on the configuration screen can never restore a stale palette.

Resolution order for every request:

·       the stored demo (SMART_DEMO), or the session preview when one is armed;

·       the palette override, if the administrator selected one;

·       individual facet overrides: layout, sidebar mode, header mode, KPI family, navigation orientation, radius, font, shadows, borders, animations;

·       the resulting token set is emitted once as CSS custom properties.

Only the active demo's markup and datasets are produced. A widget belonging to another demo is never queried, never rendered and costs nothing.

9. Academic KPI Cards

Two card families ship with the theme and a third and fourth are selectable.

Family

Used by

Appearance

gradient

Academic Overview, Education Management

Full-bleed colour gradient, oversized watermark glyph, white typography

plain

University Analytics

White card, tinted icon chip, ink typography

outline

selectable

Hairline border, no shadow

soft

selectable

White card with a tinted round icon pill

 

On gradient tiles every text child re-declares its colour explicitly. Setting the colour on the card alone is not sufficient: the theme's own link and label rules are more specific and would repaint the label in ink on a saturated background.

A card may carry a title, a value, a period, a variation with direction, a descriptive sub-line, an icon, a badge and a link to the matching Dolibarr list.

10. Student Management Widgets

Students are customer third parties. The theme reports the enrolled population, the active/inactive split, the attendance ring, the enrolment trend and a ranking by number of enrolments. Each entry links to the third-party record.

Ranking note. The ranked measure is the number of enrolments, and the column header says exactly that. It is not presented as an academic merit ranking, which Dolibarr holds no data for.

11. Teacher Management Widgets

Teachers are Dolibarr users. Smart reports the total and active head-count, the attendance rate, and a staff list with avatar, job title and status. When the Holiday module is enabled, approved leave spanning the current day is subtracted from the present count; when it is disabled, leave is reported as unknown rather than assumed to be zero.

12. Admissions Widgets

Admissions are third parties created during the selected period; applicants are prospects. Dolibarr encodes the role as 1 = customer, 2 = prospect and 3 = both, so the applicant count covers 2 and 3 — counting only 2 silently drops every third party that is both, and would under-report the pool.

13. Attendance Widgets

The attendance ring shows the present/absent split of the enrolled population, the total in the centre and the resulting rate underneath. Slices with no data are omitted rather than drawn at zero, and the rate is suppressed entirely when the population is empty.

14. Fee Collection Widgets

Fees are customer invoices. The theme reports collected, outstanding, overdue and expected totals, the collection rate, the number of students carrying an unpaid invoice, and a twelve-month grouped bar chart.

·       Overdue is measured against each invoice's own due date, not its issue date: using the issue date would flag a freshly issued invoice as late.

·       Outstanding amounts are drawn in neutral grey. Green is reserved for money actually collected.

·       Bars use a square-root scale, because one month holding many times another flattens every other bar into an invisible hairline on a linear scale.

15. Exam Performance Widgets

Exam sessions are agenda events. The chart compares the current academic year with the previous one on a single shared scale so the two series are directly comparable. When the Agenda module is disabled, the panel is replaced by a one-line notice naming the module to enable.

16. Course Management Widgets

Courses are services. Smart reports the catalogue size, the open/closed split and the variation against the previous period, and links through to the service list filtered on type.

17. Library Widgets

Library loans are stock movements: an outgoing movement is a book issued, an incoming one a book returned. The twelve-month chart reports both series with their totals. The widget is hidden when the Stock module is disabled.

18. Sidebar Features

The sidebar carries the Smart mark, a profile card with the user's avatar, name and role, a live module filter, the navigation tree and a customisation button.

The navigation tree is the native Dolibarr menu, re-rendered. It therefore inherits, without any additional code, every active module's entries, the user's permissions, entity restrictions, translations and badge counters. It is not a static list.

·       Width modes: preset, mini (folded), large, floating.

·       Surface: light, dark or coloured, independently of the demo.

·       Collapse with state memorised per browser; hover-to-open when folded.

·       Live filter over menu labels; favourites; internal scrolling.

·       SMART_NATIVE_MENU restores the untouched native left menu as a safety hatch.

19. Topbar Features

The top bar hosts the sidebar toggle, the global search field, the dark-mode switch, and Dolibarr's own login block (notifications, messages, entity selector, user menu, logout), restyled to match.

Contrast is resolved from the active variant. The search field and icon buttons have two declared families: translucent white on a dark, coloured or gradient bar, and ink-on-surface on a light bar. This matters: painting them white unconditionally renders the global search white-on-white and effectively invisible on the light bar the three education demos use.

20. Global Search

The search page queries third parties, contacts, users, products and services, invoices, orders, proposals, projects, tasks and agenda events, honouring the caller's permissions and entity. Results are grouped by object type, each row carrying an icon, a reference, a label, a status and a direct link.

21. Charts and Data Visualization

Every chart is inline SVG rendered by the theme. No charting library is bundled, downloaded or required, which removes both a licensing question and a network dependency.

Chart

Used for

Dual curve

Exam performance, library loans, enrolment survey

Area curve

Student enrolment trend

Grouped bars

Monthly fee collection

Ring / donut

Student attendance

Progress meter

Homework completion, task progress

Sparkline bars

Admissions trend

 

Charts follow the active palette and the dark-mode tokens, and are redrawn at any viewport width because they carry no fixed pixel geometry.

22. Tables and Lists

Dolibarr's native lists are restyled rather than replaced, so sorting, filtering, pagination, mass actions, column selection, import and export all keep working exactly as the application defines them.

The dashboard's own tables add avatars, status badges and inline progress bars, and scroll horizontally inside their panel so a wide table never pushes the page sideways.

23. Forms

Text, numeric, monetary, date and time inputs, selects, autocompletes, checkboxes, radios, switches, text areas, file uploads and action buttons are restyled through Dolibarr's own markup. No form is rebuilt, so validation, CSRF tokens and server-side behaviour are untouched.

24. Login Pages

Each demo ships its own sign-in layout: split screen (Academic Overview), minimal flat (University Analytics) and hero (Education Management). All three carry the Smart mark, the native identifier and password fields, the entity selector, the password-reset and help links, and inherit dark mode.

Authentication is entirely Dolibarr's. The theme contributes styling only. The core sign-in page renders a fixed logo image and offers no hook to replace it, so Smart collapses that image in CSS and paints its own mark in its place — the markup and the core file are untouched.

25. Responsive Design

The layout is fluid from large desktop screens down to portrait phones. The sidebar becomes a sliding drawer with a backdrop, KPI tiles stack, charts rescale and wide tables scroll inside their own container.

Horizontal overflow is asserted, not assumed: every captured page is measured at 1600, 820 and 390 pixels and fails the screenshot run if the document is wider than the viewport. On an earlier theme the offending element turned out to be the demo switcher itself, not the tables, which is why the check probes the document rather than any particular component.

26. Dark Mode

Dark mode is a full token swap, not a filter. It covers the sidebar, the top bar, the page background, cards, tables, forms, charts, Dolibarr's native drop-downs and dialogs, notifications and the sign-in pages.

The native overlays deserve a specific mention: Dolibarr's drop-down menus, autocompletes and dialogs ship hard-coded light surfaces, so without an explicit rule they open as a white sheet over a dark page. Smart darkens them, scoped to the dark attribute so light mode is untouched.

It can be toggled from the top bar, forced from the configuration screen, or left to follow the operating system preference. The choice is remembered in the browser.

27. Theme Configuration

A single configuration screen drives the theme. Every setting it writes is read back by the theme, and every setting the theme reads is offered on the screen — the two lists are checked against each other as a build step, because a value offered in the interface but never read is an unreachable setting that silently stays at its default.

Group

Settings

Demo

Demo selection, palette, KPI family, dark by default

Layout

Fluid / boxed / compact / full width, navigation orientation, gap

Sidebar

Light, dark, coloured, mini, large, floating; width

Top bar

Light, dark, coloured, gradient, transparent

Cards

Radius, shadow, borders, animations

Typography

Family, base size, optional web fonts

Dashboard

Core widget zone, turnover basis, hide dashboard

Data

Turnover base (net/gross), include abandoned invoices

 

Import and export. The configuration can be exported to JSON and re-imported. The import validates strictly against a whitelist: an unknown key or a value outside the allowed list is rejected rather than stored.

28. User Preferences

Settings are stored as Dolibarr constants, so they are per-entity by construction and survive sign-out. The demo preview (?smartdemo=) is per-session and never touches the stored configuration, which makes it safe for demonstrations.

Dark mode is remembered per browser, in local storage. It is therefore a per-device preference rather than a per-user one, and this document states it plainly rather than implying a server-side setting that does not exist.

The core widget zone under the dashboard is Dolibarr's own box system: users add, hide and drag-reorder those widgets, and Dolibarr persists the layout per user.

29. Accessibility

·       Text and interface contrast targets WCAG AA on both light and dark surfaces; the top-bar controls were reworked specifically because a white-on-white combination made the global search unreadable.

·       Focus is always visible: focused fields take an accent border plus an offset ring.

·       Touch targets on the sidebar, the top bar and the demo switcher are at least 40 px.

·       Status is never carried by colour alone — badges pair a colour with a text label.

·       prefers-reduced-motion is honoured: transitions and transforms are disabled.

·       The navigation is the native menu tree, so its semantics and link text are Dolibarr's own and remain screen-reader friendly.

Full assistive-technology certification has not been carried out; see Limitations.

30. Performance Optimization

·       One stylesheet and one script, both generated from the token set, both cacheable.

·       Only the active demo's markup and queries are produced; the other two cost nothing.

·       No charting library, no icon font beyond the Font Awesome already bundled with Dolibarr, and no external image.

·       Web fonts are optional and can be disabled, after which the theme makes no external network request at all.

·       Charts are inline SVG, so they add no request and scale without re-fetching.

·       Assets carry a version-stamped URL, so an upgrade busts the cache.

While a demo preview is active both assets are served Cache-Control: no-store. This is necessary rather than cautious: the stylesheet URL does not change during a preview, so a cached sheet would paint one demo's markup under another demo's chrome.

31. Security Considerations

·       Permissions are Dolibarr's. The menu is the native tree, already filtered; the dashboard links to native pages that re-check rights server-side.

·       Multi-entity is honoured through getEntity() on every query.

·       All output is escaped with Dolibarr's escaping helpers.

·       Configuration writes go through the native constant API and carry the CSRF token the framework validates.

·       The JSON import validates against a strict whitelist; unknown keys and out-of-range values are rejected.

·       Authentication is entirely native. The theme contributes styling only and never handles credentials.

·       No core file is modified, no core table altered, and the theme ships no secret.

32. Dolibarr Integration

Smart detects the active modules and adapts. When a module a widget depends on is absent, the widget is skipped and replaced by a short non-blocking line naming the module to enable — no PHP notice, no JavaScript error, no hole in the layout.

Academic concept

Dolibarr source

Module

Students

Third parties, client role 1 or 3

Societe

Applicants

Prospects, client role 2 or 3

Societe

Teachers, staff

Users

core

Departments

User groups

core

Courses

Services

Product / Service

Classes

Categories

Categorie

Fees, payments

Customer invoices and payments

Facture

Homework

Project tasks and progress

Projet

Exams

Agenda events

Agenda

Library loans

Stock movements

Stock

Staff leave

Approved holiday requests

Holiday

Documents

ECM documents

ECM

 

33. Dolibarr Compatibility

The theme declares a minimum of Dolibarr 16 and was fully installed, activated and exercised on Dolibarr 17.0.3 with PHP 8, which is the version of the validation instance available for this work.

It uses only documented extension points — module_parts, a MenuManager, the hook system and the constant API — none of which changed in Dolibarr 18 to 21. Forward compatibility with 20 and 21 is therefore expected but, as stated in the validation report, has not been executed on those versions here; the manual verification procedure is given there.

34. Browser Compatibility

Smart uses CSS custom properties, flexbox, grid, color-mix() and inline SVG. These are supported by all current versions of Chrome, Edge, Firefox and Safari.

Rendering was executed in this project on Chromium (Google Chrome engine) on macOS at desktop, tablet and phone viewports. Firefox, Edge and Safari were not executed here; see the validation report for what that means and how to reproduce the check.

35. Technical Architecture

File

Role

core/modules/modSmart.class.php

Module descriptor: module_parts, menu manager, constants

core/smart_presets.php

Preset library and token resolution — single source of truth

core/menus/standard/smart_menu.php

MenuManager entry point

core/menus/standard/smart.lib.php

Sidebar and chrome rendering over the native menu tree

class/actions_smart.class.php

Hook: routes the home page to the Smart dashboard

class/smart_demo.class.php

Demo/preview helper

css/smart.css.php

Generated stylesheet, driven by the resolved tokens

js/smart.js.php

Top-bar injection, sidebar behaviour, dark-mode toggle

index.php

The three dashboards and the academic data layer

admin/setup.php

Configuration screen, JSON import/export

search.php

Global search

langs/*

Translations, five languages

img/smart-logo.svg

Original brand mark

 

There is no SCSS build step, and this is a deliberate architectural choice rather than an omission: the stylesheet is generated per request from the preset tokens, which is exactly what allows a demo, a palette or a radius to change without recompiling anything. A pre-compiled SCSS bundle could not do that.

36. Folder Structure

smart/
  admin/setup.php
  class/actions_smart.class.php
  class/smart_demo.class.php
  core/modules/modSmart.class.php
  core/smart_presets.php
  core/menus/standard/smart_menu.php
  core/menus/standard/smart.lib.php
  css/smart.css.php
  js/smart.js.php
  img/smart-logo.svg
  langs/{en_US,fr_FR,es_ES,it_IT,de_DE}/smart.lang
  index.php
  search.php
  README.md  CHANGELOG.md  LICENSE

37. Installation Guide

Summary; the full guide is Smart_Installation_Guide.pdf.

·       Home > Setup > Modules > Deploy external module, upload module_smart-1.0.zip.

·       Enable Smart in the module list.

·       Home > Setup > Display: select the Smart menu manager.

·       Open the Smart configuration screen and pick a demo.

·       Optional: palette, sidebar and top-bar variants, dark mode, typography.

38. Upgrade Guide

·       Deploy the new ZIP over the previous one; the folder name does not change.

·       Stored settings are preserved: they are Dolibarr constants, untouched by a redeploy.

·       The asset version constant is bumped on activation, which busts the browser cache.

·       No database migration is required — the theme creates no table.

39. Customization Guide

·       Colours: pick a predefined palette, or Custom and set the primary and accent values.

·       Shape: radius, shadow, borders and animations are individual settings.

·       Typography: family, base size, and an option to disable external web fonts.

·       Layout: fluid, boxed, compact or full width; vertical or horizontal navigation.

·       Adding a demo: add one entry to smartPresets() — palette, KPI family, dashboard key, sign-in layout. The configuration screen, the stylesheet and the switcher pick it up with no further change.

·       Local overrides survive upgrades if placed in a separate module's stylesheet rather than edited into smart.css.php.

40. Translation System

All user-facing strings go through Dolibarr's translation system. Five languages ship complete: English, French, Spanish, Italian and German.

Every key is prefixed with Smart. This is not cosmetic: Dolibarr merges all active modules' language files into one table, and a generic key resolves to whichever module loaded last — on a busy instance a shared key silently renders another module's wording. A build-time check asserts that every key the code requests exists in each of the five files; it currently reports zero missing keys in all five.

Adding a language means copying langs/en_US/smart.lang to the new locale folder and translating the values. No code change is required.

41. Screenshots Description

Fifty-one screenshots ship with the theme, seventeen per demo, captured at 1600x990 at a device pixel ratio of 2 from a live Dolibarr 17.0.3 instance. They contain no personal data beyond the demonstration records already present in that instance.

File

Content

00-login.png

Sign-in page in the demo's own layout

01-dashboard.png

Main dashboard

02-configuration.png

Theme configuration screen

03-students.png / 04-student-card.png

Student list and record

05-teachers.png / 06-teacher-card.png

Teaching staff list and record

07-courses.png

Course catalogue

08-fees.png

Fees and payments

09-homework.png

Homework (project tasks)

10-exams-agenda.png

Exam sessions (agenda)

11-admissions.png

Admissions pipeline

12-projects.png

Projects

13-search.png

Global search

14-dark-mode.png

Dashboard in dark mode

15-tablet.png / 16-mobile.png

Tablet and phone viewports

 

Each capture is asserted at capture time: the page must not be the sign-in form, must not contain a PHP error, and the dark-mode shot must show a background colour that actually changed. That last check exists because comparing two files is not sufficient — live data makes them differ anyway, so a mis-set attribute would otherwise ship three light-mode images labelled dark mode.

42. Advantages

·       Three complete dashboards on one architecture, one permission model, one configuration screen.

·       Real Dolibarr data everywhere; no placeholder figures, no fabricated series.

·       Works on a standard Dolibarr with no school module installed.

·       Graceful, explicit degradation when an optional module is absent.

·       No core modification, no database table, no external runtime dependency.

·       Five complete languages with collision-proof keys.

·       Full dark mode including Dolibarr's own overlays.

·       Native lists keep every native capability: filters, sorting, export, mass actions.

43. Limitations

Stated plainly, so the reader can judge scope.

·       Smart is a theme. It does not add academic objects: there is no student record, no timetable, no grade book and no attendance register. It reads what Dolibarr already holds through the documented mapping.

·       Consequently some figures are proxies. Student attendance derives from third-party status, not from a daily register; exam performance counts agenda sessions rather than marks. Where a proxy is used, the widget's own wording says what is being counted.

·       Per-role configuration is not implemented: Dolibarr constants are global or per-entity, and no per-role constant scope exists. Per-user variation is limited to Dolibarr's own widget zone and the browser-level dark-mode preference.

·       Widget drag-and-drop, resize and collapse apply to Dolibarr's core widget zone, which provides them. The three demo dashboards themselves are fixed compositions, not a free-form grid.

·       Dark mode is remembered per browser, not per user account.

·       Rendering was executed on Chromium only, and on Dolibarr 17.0.3 only.

·       No formal accessibility audit with assistive technology was carried out.

44. Future Enhancements

·       A companion module contributing genuine academic objects — student records, timetables, attendance registers, grade books — that Smart would read natively.

·       Per-user dashboard composition persisted server-side.

·       A free-form widget grid for the three demos, with saved layouts.

·       Additional languages beyond the five shipped.

·       Execution of the browser matrix and a formal accessibility audit.

45. Support and Maintenance

Editor: DoliResources — https://www.doliresources.com

Support covers installation, configuration, upgrades and defect correction for the supported Dolibarr versions. When reporting an issue, please include the Dolibarr version, the PHP version, the active demo, the browser, and a screenshot; the combination of those five is usually enough to reproduce a rendering defect on the first attempt.

Smart is distributed under GPL-3.0-or-later. Copyright (C) 2026 DoliResources.