set-up.md 3.13 KB
Newer Older
1 2 3 4 5 6 7
Set-up
=======


## `Git`


Florent Chehab's avatar
Florent Chehab committed
8
*If you don't have `git` install on your computer, look online and install it 😜.*
9 10 11 12 13 14 15 16 17 18 19 20 21 22


Then, you can simply clone the project repository:

```bash
git clone git@gitlab.utc.fr:rex-dri/rex-dri.git && cd rex-dri
```




## `docker` and `docker-compose`


Florent Chehab's avatar
Florent Chehab committed
23
This projects takes advantage of `docker` and `docker-compose` to ease the setup process, continuous integration, deployments, etc.
24 25 26 27 28 29 30 31 32



!> If you don't have those tools on your computer, you first need to install them. You can do so by following those guides:


- [`docker`](https://docs.docker.com/install/)
- [`docker-compose`](https://docs.docker.com/compose/install/)

Florent Chehab's avatar
Florent Chehab committed
33 34
*To run `Docker` your user needs to belong to the `docker` user-group (creating during the install process) or to `sudo` all `docker`-related commands. The last solution is a bit annoying when devlopping, so you can add your user to the `docker` group: `sudo usermod -aG docker your-user`. You can find what is your use with the command `whoami`. **The change will take effect after you restart your computer (or close your session and reopen it)**.*

35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50

Once this is done, don't forget that you need to have docker running before using `docker-compose`. For example, on `Fedora 29` you need to run the following command:


```bash
sudo service docker start
```


Finally you can start-up all `docker` related *stuff* using the command:


```bash
make up--build
```

Florent Chehab's avatar
Florent Chehab committed
51
**When you lunch the project for the first time you'll most likely have the backend container crash due to the lack of some static files. Make sure not to stop the lunch process until you see `frontend_1 | ℹ 「wdm」: Compiled successfully` in the console. Then you can stop the command (`CTRL+C`) and do `make up`; you shouldn't have issues thereafter.**
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66

You can look at the `Makefile` to have more information on that last command and the other ones that are available.


To start all the `docker` images you will then only need to use the `make up` command.



## Initialization


To initialize the database associated with the project, you need to connect to the `backend` image:


```bash
Florent Chehab's avatar
Florent Chehab committed
67
make shell_backend
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
```


Then:


- Migrate the `Django` models:


```bash
./manage.py migrate
```


- Create the initial revisions:


```bash
./manage.py createinitialrevisions
```


_NB: this last command should be run everytime you migrate (modify/add) some models._



When this is done you can exit the `docker` image shell (`CTRL + D`).


## Checking setup


### Backend


Run the commands bellow to check that the backend is setup correctly:


*(Simple check of the setup)*.


```bash
make check_backend
```


*(Run `Python` tests)*


```bash
make test_backend
```


### Frontend


Run the commands bellow to check that the frontend is setup correctly:


*(Build the `React` app)*


```bash
make build_frontend
```


*NB: At the time of the writing of the documentation there is no test for the frontend...*



## You are done


Once the `Docker` images are up (command `make up`), the app is available on [http://localhost:8000](http://localhost:8000).


**Don't miss the other pages of the documentation, in particular [the one about loading 'init' data in the app](init_data).**