I’ve been working on something (secretly ) for the past couple of months, and I’d like you guys to take a look at it:
Meet Breadly - The missing backend for App Inventor / Thunkable apps
It’s basically a PHP script which you install on your website, similarly as you would install Wordpress to create a blog… but this is not a blog, this is a database management system with WEB api to access/manage database. Also, the web and API are using same authentication system so anyone who registers on your app can log in to your website (and vice versa) and all data available to the API is also available to the website
- extremely robust & flexible (based on Laravel 5.5)
- multiple DB drivers: mysql, postgre, sqlite, …
- web based admin panel to manage database structure and data (Browse, Read, Edit, Add, Delete)
- simple HTTP API (in JSON format) to use from within your App Inventor apps (with ordinary Web component)
- hide DB table columns from the API
- validate each table column on insert/update with wide set of validation rules
- user registration system with roles and permissions out-of-the-box (JWT token)
- file uploads from your app to your server or S3 storage
- image uploads with automatic resizing
- file upload limits by file size and/or image dimensions
Here’s a couple of screenshots:
Managing of DB tables from within the app (
tasksis app specific table, I’ve created it additionally)
Custom field validation for the API
Image upload configuration
Managing custom DB table from web admin panel
Testing API from Postman
I want to give back to the community by releasing this as a completely free / open source application; and I’ve already published it on GitHub, you can find it here:
But I must say this is not a beginner-level application. You will need to have some knowledge about relational databases because you’ll have to create your database tables manually. The app is so flexible that it gives you only user and roles system, everything else is up to you (in the terms of organizing your data). Apart from that, it’s a Laravel application so installing it requires installation of dependencies, setting up environment variables, migrating and seeding your database, etc… it is not a no-brainer like Wordpress, but once set up, it should work without many problems. I’m also eager to help anyone who wants to test it on their own host, just make sure you have PHP 7.1 and SSH or FTP access (SSH is preferred). And a relational database to manage, of course.
I’ve also set up an online demo as a Heroku app here, so you can test it instantly: http://breadly-test.herokuapp.com/admin
please do not change login credentials (it will be reverted to “password” every couple of minutes)
Postman collection for the API: https://documenter.getpostman.com/view/3216191/collection/RVnPJida
Very poor documentation: https://github.com/avramovic/breadly/wiki
Breadly supports file uploads too, either to local server or to the s3 storage. I did not bother to set up S3 storage as this is only a demo.
The sample app supports login/register/forgot-password actions (all actions share the same email/password fields) and the management of a to-do list (tasks table). Token is saved into tinyDB so you’re logged in automatically next time the app is run. You should use real email address when registering as an activation email is sent to the email and you can’t login without activating your account. You can turn email activation off in the Settings page of the admin panel. Also note that activation email can get into your spam inbox as this is a new web app. If you have two devices you can register with one device and add a couple of tasks, then log in with another device and you’ll see your tasks
As you will see, the API can be consumed using the Web component only, but you need to know what you’re doing. If someone could make an extension for this (basically just a Web component wrapper) that would be awesome! It would be much easier to use this any extension devs around?
I need couple of guys who like to explore new things and are willing to help me build this as a well documented and stable piece of software. Current documentation is poor (we devs do not like to write documentation for the code we just wrote) so you’ll have to explore and/or ask for help in this thread.
Even if you don’t own a website you can test it with this online demo I’ve set up. Only thing you need is a Web component which already exists in Thunkable! Please do not delete tables other people have created. I will completely reset the demo from time to time.
Let me know if you have any questions.