{"id":21557782,"url":"https://github.com/dr-eberle-zentrum/dbwebgen","last_synced_at":"2025-08-20T10:32:08.567Z","repository":{"id":45088948,"uuid":"57032012","full_name":"Dr-Eberle-Zentrum/dbWebGen","owner":"Dr-Eberle-Zentrum","description":"Database Web Forms Generator ","archived":false,"fork":false,"pushed_at":"2024-09-20T13:25:17.000Z","size":1198,"stargazers_count":44,"open_issues_count":6,"forks_count":15,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-12-07T22:22:42.663Z","etag":null,"topics":["backend","bootstrap","customization","data-model","database","engine","forms","generator","google-visualization-api","gui","helper","leaflet","postgres","queries","responsive","sql","templates","visualization","web-app"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Dr-Eberle-Zentrum.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS"}},"created_at":"2016-04-25T10:10:46.000Z","updated_at":"2024-09-20T13:25:21.000Z","dependencies_parsed_at":"2023-12-15T14:49:03.880Z","dependency_job_id":null,"html_url":"https://github.com/Dr-Eberle-Zentrum/dbWebGen","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dr-Eberle-Zentrum%2FdbWebGen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dr-Eberle-Zentrum%2FdbWebGen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dr-Eberle-Zentrum%2FdbWebGen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dr-Eberle-Zentrum%2FdbWebGen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dr-Eberle-Zentrum","download_url":"https://codeload.github.com/Dr-Eberle-Zentrum/dbWebGen/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230415318,"owners_count":18222158,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backend","bootstrap","customization","data-model","database","engine","forms","generator","google-visualization-api","gui","helper","leaflet","postgres","queries","responsive","sql","templates","visualization","web-app"],"created_at":"2024-11-24T08:13:12.800Z","updated_at":"2025-08-20T10:32:08.525Z","avatar_url":"https://github.com/Dr-Eberle-Zentrum.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dbWebGen - Database Web App Generator for PHP\nThis PHP application automatically generates a responsive web app on top of your relational database. The app allows users to\n* Create and edit records via web forms, taking into account foreign keys and other constraints\n* View stored records along with related records from other tables\n* Browse, search, and filter records in tables\n* Query the database, visualize the results, and share the visualizations. Currenty the engine offers various visualizations like tables, bar charts, leaflet maps, sankeys, timelines, graphs/networks, social network analysis, geomaps and others\n\nDevelopers may add custom functionality and extensions to the engine through hook functions in plugins, and admins may exploit an [extensive array of settings](settings.template.php) controlling the engine.\n\n## Requirements\n* Webserver running PHP (lowest tested version is 5.3)\n* Database server (currently working only with PostgreSQL -- lowest tested version is 9.2; experimental support for MySQL)\n* A database\n\n## Get it Running\n* Clone this repository into any folder that is served by your webserver.\n* Run `npm install` in this folder.\n* Since this repository contains the app engine only, you need to create another folder that will serve as the actual app folder\n* In the app folder, create a PHP file that serves as the main entry point of the app (typically `index.php`). This file is very simple: it must include a definition of the constant `ENGINE_PATH`, which shall define the relative path to app engine folder. The other line in this file is the inclusion of `engine.php` from the app engine folder. You can also define the language by defining `DBWEBGEN_LANG` (currently English `en`, German `de`, and Italian `it` are available).\n\n  Note: if required, you may use `ENGINE_PATH_LOCAL` to define the relative or absolute local file system path to the engine folder, which is used for including `.php` files; the `ENGINE_PATH` is used to point to files in `\u003cscript\u003e` or `\u003clink\u003e` tags, so those must be resolveable by the web server.\n\n  The typical index file would then look like this:\n\n  ```php\n  \u003c?php\n     define('ENGINE_PATH', '../dbWebGen/');\n     define('DBWEBGEN_LANG', 'de');\n     include ENGINE_PATH . 'engine.php';\n  ?\u003e\n  ```\n* Direct your web browser to the app folder. Upon first visit, a setup wizward will allow you to specify all app settings, which will be stored in a file called `settings.php`. If you encounter any issues or somehow misconfigure your app, you can also manually edit the `settings.php` file with explanations provided in [settings.template.php](settings.template.php)\n\n## Example Database and App\nAn example app using this engine can be seen in the [dbWebGen-demo](https://github.com/eScienceCenter/dbWebGen-demo) repository\n\n## Selected Features\n* Fully localized in English and German; other languages can be added easily\n* Access control via users table in database, custom authentication functions, or static user arrays\n* Paginated, searchable, sortable viewing of table contents\n* Viewing full details of single records\n* Single-page or tabbed record editing forms\n* Inline creation and editing of records referenced via foreign keys\n* Conditional display and labeling of record fields in editing forms\n* Grouped field display in editing forms (e.g. when date components are stored in separate columns)\n* Hyperlinked display of records linked via foreign keys\n* Record merging wizard\n* Global and table-local search, allowing custom search transformations (e.g. removing diacritics, unaccenting, etc.)\n* Custom menus, pages, and plugins with access to dbWebGen global objects, settings, and variables\n* Input controls for most important field types, e.g. dropdown boxes, date pickers, geomap pickers, boolean toggles, text boxes, file uploads\n* Custom JavaScript form validation\n\n## Limitations\nThe major limitation currently is that the table settings for composite primary keys (e.g. in N:M-tables where each primary key part is a foreign key) currently only support a maximum of two primary key columns per table. If a composite primary key in some table in your DB consists of more than two columns, the remedy would be to create an artificial single-column primary key with auto-increment value for such tables.\n\n## Screenshots\nBelow are some screenshots from a database app that uses dbWebGen to allow users to work with historic documents from 19th century Oman. Click any thumbnail to view at full resolution.\n\n[![Data in a Table](https://esciencecenter.github.io/assets/dbWebGen/screenshots/alhamra/list_documents_th.png)](https://esciencecenter.github.io/assets/dbWebGen/screenshots/alhamra/list_documents.png)  \n[![Search Filter](https://esciencecenter.github.io/assets/dbWebGen/screenshots/alhamra/filter_persons_th.png)](https://esciencecenter.github.io/assets/dbWebGen/screenshots/alhamra/filter_persons.png)  \n[![View a Record](https://esciencecenter.github.io/assets/dbWebGen/screenshots/alhamra/view_document_th.png)](https://esciencecenter.github.io/assets/dbWebGen/screenshots/alhamra/view_document.png)  \n[![New Record Form](https://esciencecenter.github.io/assets/dbWebGen/screenshots/alhamra/new_document_recipient_th.png)](https://esciencecenter.github.io/assets/dbWebGen/screenshots/alhamra/new_document_recipient.png)  \n[![Edit Record Form](https://esciencecenter.github.io/assets/dbWebGen/screenshots/alhamra/edit_document_th.png)](https://esciencecenter.github.io/assets/dbWebGen/screenshots/alhamra/edit_document.png)  \n[![Query with Network Visualization](https://esciencecenter.github.io/assets/dbWebGen/screenshots/alhamra/query_network_th.png)](https://esciencecenter.github.io/assets/dbWebGen/screenshots/alhamra/query_network.png)  \n[![Query with Map Visualization](https://esciencecenter.github.io/assets/dbWebGen/screenshots/alhamra/query_map_th.png)](https://esciencecenter.github.io/assets/dbWebGen/screenshots/alhamra/query_map.png)  \n[![Responsive Edit](https://esciencecenter.github.io/assets/dbWebGen/screenshots/alhamra/edit_responsive_th.png)](https://esciencecenter.github.io/assets/dbWebGen/screenshots/alhamra/edit_responsive.png)\n\n## License\nThis code is licensed under the MIT license. See the [LICENSE](LICENSE) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdr-eberle-zentrum%2Fdbwebgen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdr-eberle-zentrum%2Fdbwebgen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdr-eberle-zentrum%2Fdbwebgen/lists"}