Re: Data entry / data editing tools (more end-user focus).

From: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
To: Tony Shelver <tshelver(at)gmail(dot)com>
Cc: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: Data entry / data editing tools (more end-user focus).
Date: 2019-03-28 14:39:23
Message-ID: 26f3feb2-3689-71ef-e02d-d6d962625105@aklaver.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 3/27/19 11:49 PM, Tony Shelver wrote:

Please reply to list also, more eyes on the the problem.
Ccing list

My take on below is since you are feeding a Website why not use Web
technologies for your data entry. My language of choice is Python. I
have done something similar to this(on small scale) using the Django
framework. For something lighter weight there is Flask. Then your client
becomes a browser and you do not have to distribute forms around. You
could integrate with the existing Web apps you are using e.g. SnipCart.

> Actually I found a possibility.  LibreOffice Base on top of PG lets me
> paste photos into a Postgresql bytea field no problem.  MS Access should
> work well also, but I am not going to buy it, and running Ubuntu most of
> the time.
> Possibly will distribute the Base forms to select users to enter data.
> We are a startup company, so this is an affordable temporary fix, until
> the product I have been looking at matures, or we can roll our own.
>
> We are building a company website, including an eStore, and have a few
> hundred products to load and maintain. Our product data currently isn't
> suitable for a sales catalog.
> (Brands, categories, products, pricing and deal info, specials, images,
> product comparisons and so on).
>
> Right now I input / maintain this via CSV files maintained through a
> spreadsheet  (LibreOffice Calc) which our site generator (Jekyll) uses
> to build out the static HTML product [pages automatically.
> This is really quick to enter basic data, but I have to manually
> maintain image uploads, image names and so on manually in the
> spreadsheet and through individual file uploads. We have at least one,
> preferably 3 and up to 6 photos per product to maintain.  Call it a 1000
> images right now, and that will only go up.
> Invalid text / characters in product descriptions and so on can break
> the CSV as well.
>
> There are headless CMS solutions out on the market targeting this same
> area, but for various reasons the suitable ones are still maturing and
> shaking out in the marketplace, so I am not in a hurry to make a choice.
>
> So the goal is to replace CSV with JSON file input.  This will also make
> my life easier for more complex structures such as multiple categories
> and specs per product.
> I also want to migrate text that can change from the HTML pages into the
> database for easier changes by end users. For this the users could use
> a WYSIWIG MarkDown editor, and just cut and past the MarkDown into Base
> forms when finished.  This will be converted to HTML at build time by
> Jekyll static site generator or a script.
>
> So the proposed solution:
> 1. Create the database in Postgresql.
> 2. Link Base or other tool to it and design input forms where necessary
>
> 3. Enter the data through Base into PG including images, MarkDown / HTML
> text, long descriptions and so on.
> 3a. If I don't get a suitable CMS going, I could spend some time
> developing a Vue/Quasar/Nuxt whatever front end to handle this, in
> several months time.
>
> 4. Pull the data from Postgres using Python (Psycopg2 will handle
> images). Or a node.js app once my JS skills improve.
> 4A: optionally use PostgREST, Postgraphile, Pytone Graphene or other to
> create an externally accessible API, and then use Python or javascript
> module to pull the data out.
>
> 5. This program will then write the JSON product file to the website
> data source directory with image tags, and upload the files to the image
> store.  Also create product item HTML page templates or or modify HTML
> content where necessary.
> 6. At this stage the Jekyll static site generator will detect the new
> JSON data and any changed pages, and regenerate all changed pages, move
> images and so on.
>
> 7. Git commit will push the generated site to Github, and Git will then
> send everything to our CDN.
>
> There is no traditional web server / app server / db server setup as you
> would find for most websites using, for example, Wordpress, Magento
> commerce or other tools.  Just the CDN.
>
> Everything is static HTML and some javascript.  Because there is no
> backend system, database or anything else at run time,just when
> generating the site,  I am not concerned about performance except at
> site build time, which will not happen that often.  All the SEO data
> (w3schema / Google, OG / Facebook and Twitter cards) is automatically
> built into the templates and fleshed out by our build process, so it
> exists as searchable static content on our page.
>
> Further down the road we will slowly migrate to a front-end javascript
> framework like Vue / Nuxt or React / Next, where our site will remain
> mostly static, with JS in the browser talking to back end hosted
> services.  We already interact directly from the browser with SnipCart
> for shopping card, order management and payment gateway services.
>
> Not sure if that helps explain the problem space a bit better.
>
>
>
> On Wed, 27 Mar 2019 at 16:15, Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com
> <mailto:adrian(dot)klaver(at)aklaver(dot)com>> wrote:
>
> On 3/27/19 3:48 AM, Tony Shelver wrote:
> > Looking for a good tool that I can give to users to enter data (for
> > example, products, categories, brands, price tables and so on).
> > Preferably it should also allow images to be copied into a bytea
> field
> > but I know I can't have everything.
> >
> > Been battling with a few open source 'headless' content management
> > systems the last few weeks.  All they really are is a data schema
> > designer, an API interface (for the API / database based ones like
> > Strapi and Directus), and a content entry front end, along with some
> > access management added in.
> > And they don't necessarily play well with the DB, or the technology
> > stack is something I don't want to deal with.
> >
> > I figure using PostgREST or Postgraphile or Python Graphene  or
> any of
> > the dedicated 3rd party REST / GraphQL APIs will probably give as
> good
> > an API as most of the new content managers,
> >
> > pgModeler.io is a way better schema design tool than what I have
> found
> > in the CMS systems I have used so far as well.
> >
> > Data that I would like to store (and edit) is the usual, but also
> > images, HTML sections, and markdown.
> >
> > Any ideas?
>
> I am not really sure from above what you want, so some questions:
>
> 1) GUI form interface?
>     GUI form builder?
>
> 2) Enter records one at time or in bulk?
>
> 3) Cross platform?
>     If so what platforms?
>
>
>
> --
> Adrian Klaver
> adrian(dot)klaver(at)aklaver(dot)com <mailto:adrian(dot)klaver(at)aklaver(dot)com>
>

--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Adrian Klaver 2019-03-28 14:45:33 Re: Key encryption and relational integrity
Previous Message Moreno Andreo 2019-03-28 14:29:50 Re: Key encryption and relational integrity