Content
Overview module: Conceptual Software Architecture & used frameworks and standards
Objectives
provide a general understanding on how the (new) modular architecture works, distinction between frontend and backend, what are ‘modules’
brief recap of used standards (GraphQL, …) and frameworks (django, graphene, React,…) and pointers to existing resources on the web to use as reference
Tutorial
source: https://www.youtube.com/watch?v=JdmsB7CFEhY
Backend - 1: Setup backend development environment and create a new (basic) module
Objectives
provide a sample (autonomous) development tools setup (venv, pycharm, MSQ-SQL in docker,…)
get up and running and create a new module, connected to the database (new model, with django migration,….)
exposing the entities for GraphQL queries and mutations
Supportive material
Project folder at end of video: (except for venv folder that is too large)
Tutorial
source: https://www.youtube.com/watch?v=IG6qa7Dr6PE
Backend - 2: Features in a ‘real life’ backend module
Objectives
access rights enforcement
module dependencies (for GraphQL but also event-based communications between modules)
i18n in backend
unit-testing
Tutorial
source: https://www.youtube.com/watch?v=wODb0ro0QdE
Backend - 3: Batch processing and reports
Objectives
triggering (scheduling) a batch processing (python service) and following (monitoring) its execution
generating a pdf with country-customizable template
Tutorial
source: https://www.youtube.com/watch?v=4otgHhQZWJk
Frontend-1: Setup frontend development environment and create a new (basic) module
Objectives
provide a sample (autonomous) development tools setup (yarn, visual code,…)
get up and running and create a new module (+ i18n), with a main menu entry and connected to the backend (GraphQL queries,…)
Supportive material
Code written in the video (openimis-fe-my_module_js):
Tutorial
source: https://www.youtube.com/watch?v=9xkeysjnW3A
Frontend-2: Features in a ‘real life’ frontend module
Objectives
Pagination
Mutation (and events & PublishedComponents)
Contributions
JSON - extensible models
Supportive material
Code written in the video (openimis-fe-my_module_js):