Setting up and organizing a project

Note

🌱🌿🌳

Aim: provide reference for a set of topics as well as further reading material for interested readers

Level: any 🌱🌿🌳

More advanced sections are labeled with 🌿 (apprentice) and 🌳 (journeyman).

This section covers topics in:

  • project coordination / management tools,

  • version control using git,

  • virtual environments and package management with e.g., pip and conda,

  • code editors.

Project management tools

For both personal and team projects, projects management tools are extremely useful. The tool most commonly used at the Centre for Bioinformatics is Trello. Trello is a free online tool where it is possible to create project boards with lists and concrete to do items.

There are many alternatives, but only some will be mentioned here:

Version control with git

Version control systems are used to track changes during the code development. They are useful both for individuals and teams, and as such should be used in every software project. Git is the most used such system, and is provided by GitHub and other providers (such as GitLab or Bitbucket).

The Biomedical Informatics research group at the University of Oslo has a GitHub organisation where the repositories can be created for each project of the group members. For public projects, see BMI organization on GitHub.

To learn about git, see the CodeRefinery project resources:

Alternatively, a lot of public resources for version control are available, such as these Atlassian tutorials for learning version control and learning about git.

Virtual environments and package management

to be added