TechNaturally app Aims to provide a modular architecture for building cloud apps.
The main components of the tnApp are:
- Server providing REST API (currently implemented in PHP)
- Client providing user experience (currently implemented in angularjs)
Modules may be added on both the client and server, with the only dependency being that the client understands the REST API.
Run:
cd app && composer install && cd ../www && bower install && cd ..
Be sure to edit app/config.json
with your database config.
Server modules are comprised of two main pieces:
- a descriptive <module>.json file
- lists which fields (from the schema) to include in the database table
- describes the data schema as a json-schema
- describes API endpoints (aka "routes")
- links to HTTP-method-specific logic implementation callbacks (ex. myModule_myRoute_get)
- defines access permissions on a per-route/per-method basis
- defines forms associated with a route/method callback (based on angular-schema-form definitions)
- a logic (ex. <module>.php) implementation file
- implements all route/method callback functions
- implements any support functions needed by the module (ie. functions not-exposed as API routes)
Client modules provide a user interface to the REST API.
- Server: PHP
- Datastore: MySQL
- Client: angularjs
- Server: express.js
- Datastore: SQLite
- Datastore: Firebase
- Client: openFrameworks C++