https://cms-quiz-demo.netlify.app/
App is statically built during build process thanks to which doesn't require any api calls which speeds up the website access.
To store content, a Git based CMS was chosen, thanks to which APP does not require any additional backend code or hosting.
https://decapcms.org/docs/intro/
App is currently visible at:
and admin customization panel:
for demo purposes, registration is set to open and doesn't require email confirmation.
you can use also a test user:
email: [email protected] password: test1
WARNING: All content edition actions, after clicking "Publish", or "Delete" will trigger site update command, using part of Netlify's build limit. Feel free to test. Limit is however around 100-150 actions per month, something to take into account.
go to the development website /admin
url:
Click new Quiz:
Fill out the required fields:
Click "Publish":
In main admin panel, click on a quiz to edit:
Change fields value, and click "Publish"
Netlify in free plan has around 300 build minutes / month.
This allows for around 100-150 content alterations (100-150 site update commands).
Usual site update time is around 1-2min after a Publish.
Multiple same values for answers / subcategories inside single quiz are not supported.
Adding a time-like string (f.e. 3:45) as title may result in the field being considered a number for some reason and prevent site build. This can be worked around by adding a " " (space) sign to the string.
This is most likely a Decap CMS issue.
Project is build with Gatsby and Decap CMS.
In case of need, it is best to refer to the above framework providers.
gatsby develop
to test the content changing, without affecting remote repository, in another terminal run:
npx decap-server
With Decap CMS it is possible to upload files as content. This opens door for possibilities like for example quizzes having a customized "banner-image" set by content editors.
I hereby prohibit from re-distributing, copying, reselling, or re-using the code or its parts in any form.
The code is made public only for demonstration purposes.
Tomasz Kożuch