To-do
Line 3: | Line 3: | ||
− | * Create form "Meeting participant" | + | *Create form "Meeting participant" |
+ | |||
(First name, Last name, email, phone number, status (attended/invited), description (textarea) | (First name, Last name, email, phone number, status (attended/invited), description (textarea) | ||
(eventually: "linked_to", with a multiple select with names of all other participants to the same meeting ... or use another hypothetical form for this) '''(DONE)''' | (eventually: "linked_to", with a multiple select with names of all other participants to the same meeting ... or use another hypothetical form for this) '''(DONE)''' | ||
− | * Create sidebar entries with forms: Add Language course student, Add member, Add meeting participant | + | *Create sidebar entries with forms: Add Language course student, Add member, Add meeting participant |
− | * Reorder our private wiki in order to just have (on the root level) : | + | *Reorder our private wiki in order to just have (on the root level) : |
− | ** List of language course students | + | **List of language course students |
− | ** List of members | + | **List of members |
− | ** List of meeting participants | + | **List of meeting participants |
and create a main page reflecting this structure with cars similar to the public mainpage | and create a main page reflecting this structure with cars similar to the public mainpage | ||
− | * Create a form "Newsletter", with fields: Date, audience subset/segment, message (this will be filled in by the frontend/nodejs script, but the sending could be also managed in the wiki itself) '''(DONE)''' | + | *Create a form "Newsletter", with fields: Date, audience subset/segment, message (this will be filled in by the frontend/nodejs script, but the sending could be also managed in the wiki itself) '''(DONE)''' |
+ | |||
"message" could be split in "message text" and "message html" (the latter with template) | "message" could be split in "message text" and "message html" (the latter with template) | ||
− | * Create a form "Newsletter stats", with fields (first name, last name, email, opens (list of dates), clicks (list of dates and url) -- data of this form will be created by a nodejs script through sendgrid (or other mail provider) hooks *** try to create automatically it, see point below *** | + | -- aggiungere: "subject" |
+ | |||
+ | *Create a form "Newsletter stats", with fields (first name, last name, email, opens (list of dates), clicks (list of dates and url) -- data of this form will be created by a nodejs script through sendgrid (or other mail provider) hooks *** try to create automatically it, see point below *** | ||
− | * ***attention: in a further version of the system all these forms/properties/templates could be automatically created, even localized in a given language, by a server side script, in order to easily allow creation, and update, of (public/) private wiki instances | + | *<nowiki>***attention: in a further version of the system all these forms/properties/templates could be automatically created, even localized in a given language, by a server side script, in order to easily allow creation, and update, of (public/) private wiki instances</nowiki> |
− | * set a specific folder for files (named [organization]/media) | + | *set a specific folder for files (named [organization]/media) |
− | * create a demo private wiki (in this case or public or with a test account with public password) for showcasing | + | *create a demo private wiki (in this case or public or with a test account with public password) for showcasing |
+ | *form "member" (or "organization member") : add field "groups" | ||
Line 31: | Line 36: | ||
− | * Create a page, for instance /Sidebar Left, where to list forms and templates to be displayed handled from our extension (ci_culturaitaliana_addons) '''(FARE OGGI)''' | + | *Create a page, for instance /Sidebar Left, where to list forms and templates to be displayed handled from our extension (ci_culturaitaliana_addons) '''(FARE OGGI)''' |
+ | |||
+ | *Create a series of email templates in the path /Email templates/[template title] '''(FARE OGGI)''' | ||
− | |||
we could create a form as well (to let the nodejs server side script retrieve them) with fields: | we could create a form as well (to let the nodejs server side script retrieve them) with fields: | ||
name, authors, description, snapshot/preview (so that templates can be listed on the frontend site) the cointainer div of the form must use an identifier known by the nodejs script to parse it | name, authors, description, snapshot/preview (so that templates can be listed on the frontend site) the cointainer div of the form must use an identifier known by the nodejs script to parse it | ||
− | * debug the files subfolder related functions | + | *debug the files subfolder related functions |
− | * complete the pure-html forms (not PageForms) for retrieving contact information on the main page (server-side) | + | *complete the pure-html forms (not PageForms) for retrieving contact information on the main page (server-side) |
− | * change the upload folder name from "files" to "media" | + | *change the upload folder name from "files" to "media" |
− | * display banner with our extenstion | + | *display banner with our extenstion |
==Mediawiki fork== | ==Mediawiki fork== | ||
− | * set default "leave redirect" to false (on move page) | + | *set default "leave redirect" to false (on move page) |
− | * set default "watch page" to false (where shown) | + | *set default "watch page" to false (where shown) |
− | |||
==Frontend site== | ==Frontend site== | ||
+ | *add ssr (server-side rendering) to organization page and redesign the navigation using router path ('''done''') | ||
+ | *create a page (with signin) to select a template, a segment/subset of recipients, enter a text message in a textarea and edit a template with ckeditor, then sending the message: all this information will be recorded in the form above "newsletters" in the private wiki | ||
− | + | *(organization's page) create a menu for languages (as described in my communication of 3th of April) and a tab on the page header when a page is localized in multiple languages | |
− | |||
− | * (organization's page) create a menu for languages (as described in my communication of 3th of April) and a tab on the page header when a page is localized in multiple languages | ||
− | |||
− | |||
− | * | + | *create the site's home page (like scambieuropei) |
− | * ( | + | *show advertisements set by organization, books suggestion, digital libraries, opportunities (and other forms for general purpose) on the right panel/column through nodejs-socket.io-axios |
− | * | + | *(organization's page) handle selection of pages based on the router event (so the navigation menu should contain router-links) ('''done''') |
− | * | + | *write list of libraries / technologies which we are using, eg. nodejs, vuejs, mediawiki, knex, lodash, quasar framework, esprima, htmlparser2, cheerio, semantic mediawiki (and other relevant mediawiki plugins) |
− | * | + | *add library to detect main language of a given page ***we could use the following https://github.com/NaturalNode/natural (even for topic categorization of contents) |
− | * | + | *complete page with api calls examples |
+ | *post frontend/server scripts to a github public repository ? | ||
==Web server== | ==Web server== | ||
− | + | *Review the directory structure, for instance | |
− | * Review the directory structure, for instance | + | **culturaitaliana.org/[organization name]/ -> front end site (vuejs) |
− | ** culturaitaliana.org/[organization name]/ -> front end site (vuejs) | + | **culturaitaliana.org/wiki/ -> public wiki (without language code) (php) |
− | ** culturaitaliana.org/wiki/ -> public wiki (without language code) (php) | + | **culturaitaliana.org/wiki/[organization name]/wiki -> public wiki site (php) |
− | ** culturaitaliana.org/wiki/[organization name]/wiki -> public wiki site (php) | + | **culturaitaliana.org/[other pages] -> -> front end site (vuejs) |
− | ** culturaitaliana.org/[other pages] -> -> front end site (vuejs) | + | **culturaitaliana.org/organization name]/wiki -> private wiki site (php) |
− | ** culturaitaliana.org/organization name]/wiki -> private wiki site (php) | ||
(n) this folder structure implies that an organization cannot have name "wiki" (ok) but also that "wiki" cannot be the title of a page/article of an organization (not ok) | (n) this folder structure implies that an organization cannot have name "wiki" (ok) but also that "wiki" cannot be the title of a page/article of an organization (not ok) | ||
Line 101: | Line 104: | ||
− | * Export all members of our organization in our private wiki (form member) (through a script) | + | *Export all members of our organization in our private wiki (form member) (through a script) |
− | * (Export all communication with more than 1 recipient to the private wiki: this will require a further form, and is related to another phase of the project, regarding dissemination of literary works using a web app allowing to read them offline but at the same time tracking reading information etc..) | + | *(Export all communication with more than 1 recipient to the private wiki: this will require a further form, and is related to another phase of the project, regarding dissemination of literary works using a web app allowing to read them offline but at the same time tracking reading information etc..) |
Line 108: | Line 111: | ||
− | * The data related to meetings and meetings participant might make use of "facial recognition" in order to help to locate participants in the photographic album related to the meeting | + | *The data related to meetings and meetings participant might make use of "facial recognition" in order to help to locate participants in the photographic album related to the meeting |
Revision as of 14:00, 12 April 2020
Private wiki
- Create form "Meeting participant"
(First name, Last name, email, phone number, status (attended/invited), description (textarea) (eventually: "linked_to", with a multiple select with names of all other participants to the same meeting ... or use another hypothetical form for this) (DONE)
- Create sidebar entries with forms: Add Language course student, Add member, Add meeting participant
- Reorder our private wiki in order to just have (on the root level) :
- List of language course students
- List of members
- List of meeting participants
and create a main page reflecting this structure with cars similar to the public mainpage
- Create a form "Newsletter", with fields: Date, audience subset/segment, message (this will be filled in by the frontend/nodejs script, but the sending could be also managed in the wiki itself) (DONE)
"message" could be split in "message text" and "message html" (the latter with template)
-- aggiungere: "subject"
- Create a form "Newsletter stats", with fields (first name, last name, email, opens (list of dates), clicks (list of dates and url) -- data of this form will be created by a nodejs script through sendgrid (or other mail provider) hooks *** try to create automatically it, see point below ***
- ***attention: in a further version of the system all these forms/properties/templates could be automatically created, even localized in a given language, by a server side script, in order to easily allow creation, and update, of (public/) private wiki instances
- set a specific folder for files (named [organization]/media)
- create a demo private wiki (in this case or public or with a test account with public password) for showcasing
- form "member" (or "organization member") : add field "groups"
Public wiki
- Create a page, for instance /Sidebar Left, where to list forms and templates to be displayed handled from our extension (ci_culturaitaliana_addons) (FARE OGGI)
- Create a series of email templates in the path /Email templates/[template title] (FARE OGGI)
we could create a form as well (to let the nodejs server side script retrieve them) with fields: name, authors, description, snapshot/preview (so that templates can be listed on the frontend site) the cointainer div of the form must use an identifier known by the nodejs script to parse it
- debug the files subfolder related functions
- complete the pure-html forms (not PageForms) for retrieving contact information on the main page (server-side)
- change the upload folder name from "files" to "media"
- display banner with our extenstion
Mediawiki fork
- set default "leave redirect" to false (on move page)
- set default "watch page" to false (where shown)
Frontend site
- add ssr (server-side rendering) to organization page and redesign the navigation using router path (done)
- create a page (with signin) to select a template, a segment/subset of recipients, enter a text message in a textarea and edit a template with ckeditor, then sending the message: all this information will be recorded in the form above "newsletters" in the private wiki
- (organization's page) create a menu for languages (as described in my communication of 3th of April) and a tab on the page header when a page is localized in multiple languages
- create the site's home page (like scambieuropei)
- show advertisements set by organization, books suggestion, digital libraries, opportunities (and other forms for general purpose) on the right panel/column through nodejs-socket.io-axios
- (organization's page) handle selection of pages based on the router event (so the navigation menu should contain router-links) (done)
- write list of libraries / technologies which we are using, eg. nodejs, vuejs, mediawiki, knex, lodash, quasar framework, esprima, htmlparser2, cheerio, semantic mediawiki (and other relevant mediawiki plugins)
- add library to detect main language of a given page ***we could use the following https://github.com/NaturalNode/natural (even for topic categorization of contents)
- complete page with api calls examples
- post frontend/server scripts to a github public repository ?
Web server
- Review the directory structure, for instance
- culturaitaliana.org/[organization name]/ -> front end site (vuejs)
- culturaitaliana.org/wiki/ -> public wiki (without language code) (php)
- culturaitaliana.org/wiki/[organization name]/wiki -> public wiki site (php)
- culturaitaliana.org/[other pages] -> -> front end site (vuejs)
- culturaitaliana.org/organization name]/wiki -> private wiki site (php)
(n) this folder structure implies that an organization cannot have name "wiki" (ok) but also that "wiki" cannot be the title of a page/article of an organization (not ok) a solution could be: culturaitaliana.org/wiki/Istituto_cultura_italiana_(NGO) (public wiki) culturaitaliana.org/wiki-private/Istituto_cultura_italiana_(NGO) (private wiki) (the latest "Istituto_cultura_italiana_(NGO)" being a username while the first a page name) so that whatever folder not starting with wiki/ or wiki-private/ will be redirected to the frontend
use the library https://www.npmjs.com/package/connect-history-api-fallback if necessary
Maintenance
- Export all members of our organization in our private wiki (form member) (through a script)
- (Export all communication with more than 1 recipient to the private wiki: this will require a further form, and is related to another phase of the project, regarding dissemination of literary works using a web app allowing to read them offline but at the same time tracking reading information etc..)
Near-future development
- The data related to meetings and meetings participant might make use of "facial recognition" in order to help to locate participants in the photographic album related to the meeting