Development process

All our developments fall in one of the following categories.

All projects progress are discussed during our meetings and tracked in meeting notes.

Project types

Research and development

R&D are internal developments, targeting internal needs (though software could be used by a wider audience).

Projects:

Collaboration

Those projects relate to collaboration requests where one is involved in developments of a larger project, involving external or internal partners. Partner may be involved in development or not (only providing existing software, data, etc.)

Projects:

Web interface

Those projects relate to external or internal partners requesting the development of a basic development. By basic, we mean projects requesting only a few days of work.

Projects:

Workflow

R&D

When in production, one must contact a system administrator to add backups

Development

If software is put in production in our infrastrcuture, one must contact a system administrator to add backups

Light

Development constraints

There is no language constraints but Python, Node and Go are default choices.

If using Python, Python 3 should be used.

Docker should be used by default.

Commonly used frameworks:

Web applications must be minified.

Deploying in our infrastructure

All our servers are Linux based x86_64, so final application should only target this architecture. Software may target other archs/OS but this is not mandatory.

If not using Docker, software must run on CentOS 7, our current operating system.

Our infrastructure provides shared directories between servers, they can be used to share files for scalability or multi-component share.

Web accesses are restricted, all web servers communication must go through our web proxy.

Applications should not run as root but as unprivileged user.

In case of authentication, software must use our LDAP server if applicable. Elixir AAI can be used for a broader audience, allowing Elixir community to use our tools.