Cum modifica clientii continutul website-ului/aplicatiei?

Am experienta de ~2-3 ani in Python Flask si Flutter. Recent am inceput sa invat web dev (html/css/js/react).

Pentru aplicatiile de mobil clientul/afacerea are nevoie sa insereze sau sa stearga “obiecte” in baza de date (ex. produse). In Flutter folosesc de obicei Firebase pentru backend. Este nevoie sa creez pentru fiecare aplicatie si un admin panel din care administratorul afacerii respective sa modifice baza de date?

Pe web observ ca sunt doua scenarii:

  1. Un website care este alcatuit din cateva pagini al caror continut static sau layout se modifica frecvent. (ex. site de prezentare al unui eveniment / al unui mic startup)
  2. Un website in care sunt afisate o serie de produse ce necesita modificari frecvent. (asemanator cu ce am zis ca ar fi si pe Flutter)

Pe scurt: Cum se procedeaza atunci cand clientul doreste modificarea textului / bazei de date al website-ului / aplicatiei? Care este procesul crearii de website / aplicatie pentru clienti?

Depinde foarte mult de cât de tehnici sunt clienții și cum folosești datele respective.

Dacă sunt complet atehnici și/sau dacă randezi paginile pe server, folosești un CMS: WordPress, Drupal, etc.

Pentru ceva foarte basic poți folosi Cockpit. Ăsta vine fără niciun fel de frontend (i.e. e headless)

Astea sunt pentru PHP, dar există alternative pentru orice limbaj.

2 Likes
  1. De Wordpress stiam ca poate fi folosit pentru cazurile acestea, doar ca am vrut sa invat o tehnologie noua cum e React.js, dar nu inteleg cum un client complet atehnic poate modifica continutul bazei de date al site-ului sau.

  2. Cand vine vorba de aplicatii de mobil, nu exista alta varianta in afara de cea a unui admin panel (hostat si creat pe web) de catre mine?

Pe un site de prezentare ai alte probleme pe langa editare.

La un site de prezentare e foarte important SEO-ul si daca e sa il faci cu React trebuie sa faci server-side rendering. (NextJS/Gatsby/RemixRun/BlitzJS/RedwoodJS/AstroBuild…)

Exista multe optiuni headless (backend, CMS fara front-end) care au integrat un panou de admin, cauta doar headless awesome, inclusiv Wordpress.

marmelab/react-admin: A frontend Framework for building B2B applications running in the browser on top of REST/GraphQL APIs, using ES6, React and Material Design (github.com) e un panou de admin pe care il poti folosi pentru CMS-uri cu React pentru baza ta de date
Payload CMS | Node & React TypeScript Headless CMS e un CMS bazat pe React si Express.
Contentful sau prismic ar fi variante platite.

Poti folosi un editor WYSWYG direct in pagina sau poti folosi markdown, exista JSX cu Markdown daca vrei sa fii si mai avansat. Cauta un react awesome, react drag and drop editor… Cel mai simplu e ceva markdown editor.

Build contextual editing into your site | Tina sau https://react-page.github.io de exemplu.
Drag and Drop Website Builder with Code Export (teleporthq.io) chiar iti genereaza componente de react, dar nu e un editor in sine

Ai cateva framework-uri de low-code.

Pentru backend ai foarte multe optiuni: Appwrite - Open-Source End-to-End Backend Server, The Open Source Firebase Alternative | Supabase, strapi, feathersjs, JHipster, Postgres/YugabyteDB(are Hasura integrat)/PlanetScale (mysql mai avansat pe Vitess)/CockroachDb cu Prisma/Hasura/ FaunaDb…

Prisma & PlanetScale | ORM for the scaleable serverless database e o solutie interesanta daca vrei sa fii ‘serverless’.

Pentru firebase, ca utilizatorul sa isi poata modifica datele poti folosi orice tool de low-code ca sa iti faci panoul de admin. Retool | Build internal tools, remarkably fast., FirebaseToolbox - Firebase admin panel GUI client

Daca ar fi sa fac rapid azi un site dinamic pentru un client as folosi probabil remix cu supabase si ca si pattern as implementa widget-uri legate la tipul de date. Nu stiu daca drag and drop e necesar, depinde de la caz la caz. Daca e ceva mai complicat backend pe microservicii pe kubernetes, chiar serverless cu cea mai bine documentata baza de date. (Postgres e alegerea mea sigura, de acolo nu ai cum sa dai gresi pana la cateva milioane de utilizatori) Pentru microservicii as utiliza Go sau Kotlin/Java cu cel mai bine documentat framework (sau chiar fara) in functie de echipa.

Mai e cazul de site static, adica se actualizeaza doar cand se schimba continutul, aici ai iarasi multe optiuni.

2 Likes

Multumesc pentru raspuns! O ultima intrebare… Dupa ce faci un site pentru un client se ofera de obicei si mententa la acesta? (ex. sa fii contactat pentru a schimba layout-ul unei pagini)

Asta depinde de tine, mereu estimezi și facturezi munca.

Nu uita că poți primi oferte mult mai bune în viitor și posibil nu vei mai avea timp sau chef de ce ai făcut în trecut, specifica eventual o perioadă în care clientul poate cere modificări, restul pe bani. Lasă totul documentat pentru altcineva.

Defectele le repari gratis dacă sunt de la tine pentru o perioadă și ai fost plătit pentru un feature și nu pe oră.

2 Likes

O varianta e să folosești Django care are un admin generat automat exact pentru editat obiecte in DB.

https://docs.djangoproject.com/en/4.0/ref/contrib/admin/

E o varianta practica pentru orice înregistrări din DB.

1 Like