To-do

From Redazione
Jump to navigation Jump to search
Line 30: Line 30:
  
 
*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"'''
+
*form "member" (or "organization member") : '''add field "groups"''' ('''done''')
  
  

Revision as of 13:17, 15 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 cards 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" (done)


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)
  • Create a series of email templates in the path /Email templates/[template title]

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

(this page should also provide a way to save contacts through csv in the form organization member of 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)
  • mention the libraries / technologies which we are using, eg. nodejs, vuejs, mediawiki, knex, lodash, quasar framework, esprima, htmlparser2, cheerio, semantic mediawiki (and other relevant mediawiki plugins)
  • complete page with api calls examples
  • post frontend/server scripts to a github public repository ?


Site structure

  • home page (fare alla fine sulla base di tutto il materiale e le funzioni da rappresentare)
  • page: organizations: aggiungere icona "exit" sulla toolbar che rimanda alla home page; verificare se le pagine possono essere visualizzate sulla base di temi, ad es. handlebars (v. "ghost"), anche se poi si va ad utilizzare uno solo per tutte le organizzazioni-- per omogeneità
  • page: newsletters:
    • signin con credenziali wiki privato (in questo caso deve essere inserito anche l'username della organizzazione) oppure pubblico
    • view a: lista delle newsletter già inviate
    • view b: lista dei membri (audience) della organizzazione (recuperati dal wiki privato), aggiungi membro (vai a view b-a) oppure aggiungi lista (csv-comma separated values)
    • view b-a: modifica membro (form "clone" di quella sul wiki privato)
    • view c: lista dei gruppi (aggiungi, rinomina, cancella, come in "assigni")
    • view c-a: modifica gruppo (aggiungi, rimuovi contatti, sulla base dell'elenco completo dei membri)
    • view d: creazione newsletter: aggiungi uno o più gruppi (incluso "tutti i membri"), aggiungi singoli contatti; oggetto; casella di testo; pulsanti: plain test / rich text / html template (ckeditor); pulsante invio
    • una volta inviata la newsletter viene salvata nel sito wiki privato, form newsletter
  • page: classes/[nome classe]
    • overview (pubblico: informazioni sul corso, sulla base della form language_courses), campo per inserire email e pulsante sign in (se l'email appartiene ad uno degli studenti registrati nel corso (form language course student), invia un codice a questa email oppure chiede di scegliere una password
    • pagina privata dello studente (l'url è la stessa) visualizza la pagina dello studente creata nel wiki privato, inoltre: informazioni sugli altri partecipanti del corso; interfaccia per la lezione in videoconferenza
  • funzioni da aggiungere alla pagina "organizations/[nome organizzazione]"
    • paying content: alcuni contenuti possono essere fruibili a pagamento e quindi registrati nel wiki privato; modalità di fruizione: si acquista una combinazione fra numero di parole e tempo speso nella lettura (da valutare meglio), es. 10 000 parole a 5 euro, non relativo ad uno contenuto, bensì a contenuti della intera biblioteca; implementare pwa (progressive web application) in modo da rendere i contenuti fruibili anche online ; implementare una sorta di lettura "paragrafo per paragrafo", con statistiche inviate all'autore, etc.
  • sulla barra destra, in tutte queste pagine, vengono sempre visualizzati gli annunci pubblicitari, opportunità, digital libraries, reading suggestions, etc.
  • prendere in esame tutte le form e valutare come il sito front end può essere arricchito sulla base di esse



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