00. Setup and maintenance - PatientAid2020/Development GitHub Wiki

This guide will walk you through setting up the application and getting started with development. It will also cover some of the most common tasks performed during development and how to troubleshoot common issues or problems.

Overview

The application currently uses four technologies that you might have to get set up on your machine: Node.js, Python, Postgres, and Docker. There are further materials in the Resources page if you want to refresh / learn more about these. Please note that there is still flexibility to change what we use to build out our first MVP, so feel free to suggest something if you have an idea!

Lastly, a quick note on Docker - the current setup does not require you to use it, and you may choose to selectively spin up containers for each service. But, this would mean you would have to install whatever technologies that service uses on your machine, which could be undesirable in some cases. For example, you may choose to spin up Docker containers for the server and db services & not bother installing the correct version of Python (and pipenv) and Postgres on your machine; but, you'll have to install Node.js (LTS) on your machine to run the front-end application (the app service). Also, note that while it is convenient in some aspects to manage everything with Docker, if you have extensions like ESLint enabled in your editor, it won't be able to run without the node_modules directory (this is only present within the container). It seems like there is a way (at least for vscode) to connect the editor to the environment inside the container. In any case, it is possible to develop without docker selectively, so that choice is up to you.

Installation

With Docker / without Docker

Common tasks

With Docker / without Docker