Nov 4, 2021 11:43:24 AM Thomas Dumont avatar

General principles of integration

This chapter presents the different levels of implementation of Lutece in order of increasing difficulty. For each feature, online examples and links to technical resources are presented.

1st Level : Integrating a functionality

Appointment

Description Online Appointment Scheduling Software and Booking
Online ExamplesCity of Paris online examples (French)
- Delivery of residential parking card
- Vaccination appointment
- Social housing information
- Building authorization
- A map sample for deterritorilized services
Technical Skills RequiredMaven Assembling,
Graphic Integration (HTML, CSS)
Technical Resources- Wiki documentation
- The appointment plugin code on GitHub
- A runnable Docker image (see Demos Docker images)

Forms

Description This plugin offers a complete and flexible form management within a Lutece site. User interface : a forms display engine in front-office pages that manage the filling and saving process of the responsesAgent interface : a back-office "multiview" feature to search and display the form responses, and process workflow actions on it. Administrator interface : a back-office feature to design and publish the forms, including steps, transitions, controls, questions and groups of questions.
Online ExamplesCity of Paris online examples (French)
- The list of basic forms published on Paris.fr
Technical Skills Required- Maven Assembling,
- Graphic Integration (HTML, CSS)
Technical ResourcesWiki
- The forms plugin code on GitHub

Public Consultation

Description The Suggest plugin allows users to submit ideas, proposals or questions for submitting to votes and comments from visitors. It allows for public consultations and discussion forums.
Online Examples- Suggest instance deployed during the OGP Hackathon
Technical Skills RequiredMAVEN Assembling,
Graphic Integration (HTML, CSS)
Technical Resources- Wiki documentation
- The Suggest plugin code on GitHub

Chatbot using NLP

Description Web interface to dialog with a RecastAI bot
Online ExamplesChatbot providing information on parking fines
Technical Skills Required- MAVEN Assembling,
- Graphic Integration (HTML, CSS),
Recast AI BotBuilder
Technical Resources- Howto documentation
- The Recast Bots plugin code on GitHub

Chatbot using a rule engine

Description This plugin provides a chat bot engine based on the rules engine EasyRules .
Online ExamplesDemo Sample to build a Lutece site
Technical Skills RequiredMAVEN Assembling,
Graphic Integration (HTML, CSS)
YAML
Technical Resources- The easyrulesbot plugin code on GitHub
- The easyrulesbot sitebuilder sample code on GitHub

2nd Level : Creating your own code

Hello World

Description Minimal Lutece plugin to display « Hello World » on a page
Online Examples- Wiki code sample
Technical Skills RequiredJAVA
Framework Spring
FreeMarker
SQL or ORM (Hibernate, JPA…)
Technical Resources- A Hello World plugin code on GitHub
- Wiki code sample

Plugin Wizard

Description Code generator that can produce a complete and runnable Lutece plugin skeleton including Java classes, HTML templates, SQL scripts, ...
Online Examples- The online code generator
Technical Skills RequiredJAVA
Framework Spring
FreeMarker
SQL or ORM (Hibernate, JPA…)
Technical Resources- Wiki documentation

Plugin Example

Description This plugin is a case study for training new developers and discovering the main features of Lutece. It deals with a fictitious Budget Participative site where users can vote for a number of projects.
The implementation of the plugin is done step by step.
Online Examples-
Technical Skills RequiredJAVA
Framework Spring
FreeMarker
SQL or ORM (Hibernate, JPA…)
Technical Resources- Wiki documentation
- The complete tutorial on GitHub

Plugin HelloKotlin

Description This plugin is a Hello World plugin written in Kotlin programing language.
Online ExamplesDémo
Technical Skills RequiredJAVA + Kortlin
Framework Spring
FreeMarker
SQL ou ORM (Hibernate, JPA…)
Technical Resources- Wiki documentation
- The Kotlin Hello World plugin code on GitHub

Produce data for Elastic

Description The plugin Elastic let you create very easily modules that can export data from a database to an Elastic server in order to fill fancy Kibana dashboard
Online Examples
Technical Skills RequiredJAVA
SQL
Technical Resources- Wiki documentation
- The elastic data plugin code on GitHub

Energissimo

Description Site and Lutece plugin realized as part of a Hackathon to display the energy data of all French municipalities with data published in Open Data.
Online Examples
Technical Skills RequiredJAVA
Framework Spring
FreeMarker
SQL
Technical Resources- The Energissimo application code on GitHub
- The Energissimo site code on GitHub
- A runnable Docker image (find link on this page Demos Docker images)

3rd Level : Setup a platform with authentication, user dashboard and relationship management

Authentication

Description Setup a Single Sign On (SSO) feature using an ID provider (IDP) using numerous protocoles : OIDC, CAS, Reverse proxy, database authentication)
Online ExamplesThe city of Paris account "Mon Compte" (My account)
Technical Skills RequiredID management
Technical Resources - Wiki
- All Lutece authentication modules available on GitHub

User dashboard

Description User dashboard
Online Examples
Technical Skills Required
Technical ResourcesPlugin

ID repository

Description Lutece provides an ID repository that can handle connected and not connected identities that can provide CRM features
Online Examples
Technical Skills Required
Technical Resources - The IdentityStore plugin code on GtiHub

360 degree view

Description This plugin enables to see all the demands of a customer in the same (360°) view and to manage them
Online Examples
Technical Skills Required
Technical Resources- The User Relationship Management plugin code on GitHub