noud/gripp_client_symfony

Gripp client Symfony

dev-master 2020-12-11 12:03 UTC

README

Architecture

Architecture

Use

Gripp Symfony

License: MIT master

This is a Symfony client application that does work with

Gripp there Gripp API v3

and demonstrate Gripp API use.

The application is highly independent of the Entities used and a good example of writing generic code and API-First development to facilitate a Rapid-application development (RAD) process.

API front ends

The application consumes the Gripp API as client but has various API server interfaces itself as well:

export

The web application is able to export it's data to your desktop:

*) The extended Writer is part of this project and still Proof of concept (PoC).

Security

The application uses various security measures:

Provisioning

Add this local hostname to your DNS.:

127.0.0.1       gripp.localhost

Start Docker. Provision the application with PHP Composer and JavaScript Node.js NPM packages.:

bin/docker_start.sh
bin/provision.sh

Generating

We generate large part of the application:

  1. JSON to JSON Table Schema using PHP
  2. JSON Table Schema to Database Schema using tableschema-sql-js
  3. Generate Models with an extended(*) Doctrine Object Relational Mapper (ORM) ImportMapping Command
  4. Generate Views with an extended(*) SONATA PROJECTs AdminMaker Command using the Symfony MakerBundle

*) The extended code generators are part of this project and still Proof of concept (PoC).

The first 2 steps are already done, being outside this project scope. You have to perform the last 2 steps, import the Database Schema and generate Entities and Views, here is how:

Import the database schema and relations.:

mysql -u root -p db_name< db/schema.sql
mysql -u root -p db_name< db/relations.sql

Generate the entities and admin webpages. Migrate and load example data:

bin/generate.sh
bin/console doctrine:migrations:migrate
mysql -u root -p db_name< db/data.sql

Tests

First start and go into your Docker workspace:

bin/docker_workspace.sh

In there run:

bin/phpunit

Usage

Browse to the login screen:

/opt/google/chrome/chrome http://gripp.localhost/sonata

You will be prompted for your credentials:

Login

The username demo and password demo will do. (The inactive username nodemo and password nodemo will not be allowed to login.) If you succeed to login, you can navigate to your login credentials in the upper right corner pull-down:

Credentials

As you see in the upper right messages and tasks navigation items and tasks pull-down the application uses the AdminLTE 2 Bootstrap 3 template.

The dashboard contains the vis.js Timeline, for now only with, entries of the messages and tasks:

Dashboard

Developing

Feel free to contribute.

Contributions made

Using existing code as much as possible, some projects got an accepted Pull Request:

Tools

Created with Eclipse PDT Extension group Symfony framework plugin (Eclipse Marketplace)
Eclipse is free open-source project that grows with your contributions.