HTS Bioinf - Training for ELLA core developers
Scope
This procedure covers the training content for the role of core developer for ELLA.
This role implies expertise that will need to be built up over a period of time. The evaluation of whether this is achieved is done individually and subjectively for each candidate by the team of developers. In this light, it is useful to have a list of topics that need to be covered. The typical time required for such training can range from 6 months up to a year.
Terminology
Core developer: Developer which can perform the review of new code to accept it into the codebase of ELLA
Merge request: When a piece of code needs to be merged into the main codebase. This code is subject to the review by the core developer as well as feature review by the project manager
The core developer can perform code review and accept new code into the codebase of ELLA. Others can take part in development, but in the end it is always the core developer that approves the incoming code.
Databases
- Datamodel: Must have the basic overview over the datamodel
- Migration: Have gone through the background and the concept for migration of the database as well as what is and is not required for a new database migration
- Postgres: Must bave basic knowledge of how to read/patch/write to a database from a postgres shell (psql)
Backend/API
- SQLAlchemy: Must have received an introduction to SQLAlchemy and typical caveats to watch out for
- API: Must have the basic overview over the API set up, including (but not limited to) Flask, flask-restful og Marshmallow.
- Tests: Must have the basic overview over how the unit, API and integration tests against the database are set up and run
- Users: Must have the basic overview over the user model, password management and tokens, with particular regard to security
CLI/admin
- CLI: Must have the basic introduction and overview over CLI set up
- Admin: Must have the basic overview of the different admin tasks involved for ELLA
Frontend
- React: Must have the basic introduction to React and an overview of the front-end architecture
- Redux/Redux-toolkit: Must have the basic introduction to the usage and developer set up for Redux/Redux-toolkit as well as an overview of how the data is stored in the front-end
- Tests: Must have the basic overview over usage and setup of unit/integration tests (jest) as well as behaviour driven development (BDD, behaving) tests
General development
- Introduction to Gitlab and how we manage tasks and versioning
- Merge requests - the process flow of merging the new functionality into the codebase
- Introduction to CI-tests and our set up
- Access to relevant Gitlab projects