Architettura per un'applicazione di creazione di modelli, applicazione WYSIWYG

4

Sto creando un WYSIWYG designer in Ember.js . Il designer consentirà agli utenti di creare campagne - pensa MailChimp .

Per creare una campagna, gli utenti sceglieranno un modello esistente. Il modello avrà un layout definito. L'utente verrà quindi portato al designer, dove sarà in grado di modificare il testo e lo stile e inoltre modificare alcune opzioni di layout.

Ho pensato al modo migliore per strutturare questa app e ci sono alcuni ostacoli. Nello specifico, l'output della campagna sarà dinamico: alla fine, verrà pubblicato da qualche parte e quando i consumatori (non i miei utenti, ma le persone che fanno clic sulla campagna che il mio utente ha creato) visitano la campagna alcuni dati cambieranno a seconda del tipo di consumatore che visualizza la campagna.

Ciò significa che il risultato finale del designer sarà un sito dinamico. I dati dinamici per il questo sito - il prodotto finale - non saranno manipolati dall'utente nel designer. Tuttavia, i dati che verranno manipolati dall'utente nel designer sono cose come copia, stili, opzioni di layout, ecc. Chiamerò il primo set di dati sul lato server e il secondo lato client.

Sembra, quindi, che il processo andrà in questo modo:

  • Avrò bisogno di creare modelli per questo designer che abbiano due segmenti dinamici. Ad esempio, i dati lato server potrebbero essere espressioni Liquid e le espressioni Handlebars di dati lato client.
  • Quando l'utente crea una campagna, vorrei compilare il modello sul back-end utilizzando alcuni dati fittizi per le variabili lato server e pubblicare un modello handlebars nell'app Ember .
  • L'utente quindi modificherà il modello e l'app Ember salverà tutte le sue modifiche alle variabili JS che alimentavano il modello. In questo modo sarebbe in grado di visualizzare l'anteprima del modello.
  • Quando salva, invierà il modello selezionato, insieme a tutti i dati e le opzioni che ha fatto.
  • Quando arriva il momento di pubblicare, il sistema di back-end dovrà fare due cose:

    • compila il modello con Handlebars utilizzando i dati della campagna, quindi
    • compila il modello con Liquid utilizzando i dati lato server

Il mio pensiero è approssimativamente accurato a riguardo, oppure esiste un modo più semplice?

    
posta Sam Selikoff 21.03.2014 - 03:56
fonte

1 risposta

1

Penso che nessuno abbia risposto perché sembra giusto per loro. Ho intenzione di parafrasarlo per vedere se l'ho capito correttamente. Sto facendo una leggera modifica con la libreria di Handlebars.

Hai un caso in cui hai due persone che modificano una pagina web. La prima persona apporta alcune modifiche (in pratica crea un modello Web, credo).

La seconda persona sarà anche in grado di modificare il sito Web, ma forse (ma non necessariamente) in modi diversi. Anche queste modifiche verranno salvate sul server. Questo è più simile a un client che crea un sito Web, penso.

Infine, la terza persona visiterà il sito Web per visualizzare i risultati delle prime due opere. In questo caso, devi prima applicare le modifiche della persona 1, quindi le modifiche della persona 2. Consiglierei di usare la stessa tecnologia per entrambi. Penso che renderà più facile capire. In effetti, consiglierei di unire le configurazioni delle persone 1 e 2 prima di eseguirlo attraverso il codice del modello, quindi lo elaborerai solo una volta. Puoi utilizzare qualsiasi tecnologia tu voglia per questo, da qualsiasi lato (server o client).

È così che lo farei. Sentiti libero di modificare secondo il tuo livello di comfort.

    
risposta data 03.06.2014 - 04:51
fonte

Leggi altre domande sui tag