Search Postgresql Archives

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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.klaver@xxxxxxxxxxx <mailto:adrian.klaver@xxxxxxxxxxx>> 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.klaver@xxxxxxxxxxx <mailto:adrian.klaver@xxxxxxxxxxx>



--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux