aboutsummaryrefslogtreecommitdiffstats
path: root/INSTALL.md
blob: 392ef5d9f7c538557fc7caf370f21cd54fd7d6f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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
147
148
149
150
151
152
153
154
155
156
157
# Installation Guide

## Ruby

Example with [rvm](https://rvm.io/) (other solutions : rbenv, packages..):

```sh
rvm install 2.3.1
```

Nokogiri on macOS

http://www.nokogiri.org/tutorials/installing_nokogiri.html tells us that `xz` can cause troubles, here is what to do

```
brew unlink xz
gem install nokogiri # or bundle install
brew link xz
```


## Node and Yarn

Yarn needs node. If you use Node Version Manager [NVM](https://github.com/creationix/nvm)  you can rely on the content of `.nvmrc`. Otherwise please make sure to use a compatible version, still best to use the same as indicated by `.nvrmc`.

* Install node

```sh
nvm install 6.13.0
```

* Install [yarn](https://yarnpkg.com/lang/en/docs/install/)

```sh
// On macOS
brew install yarn

// On Debian/ubuntu
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install yarn
```

* Install nodes packages

```sh
yarn install
```

## Postgres

### Create user

      createuser -s -U $USER -P chouette
                  ^    ^      ^
                  |    |      +---- prompt for passwd
                  |    +----- as your default postgres user (remove in case of different config)
                  +---------- superuser

When promted for the password enter the highly secure string `chouette`.

## Rails

### Dependencies

As documented [here](https://github.com/dryade/georuby-ext/issues/2) we need some more libs before we can start the `rake` setup tasks.

On mac/OS :

```sh
brew install postgis
```

On debian/ubuntu system :

```sh
sudo apt-get install libproj-dev postgis
```

### Install gems

Add the bundler gem

```sh
gem install bundler
```

Go into your local repository and install the gems

```sh
bundle install
```

### Database

#### Create database

```sh
bundle exec rake db:create db:migrate
```

#### Use seed

Run :

```sh
bundle exec rake db:seed:stif
```

Two users are created : stif-boiv@af83.com/secret and stif-boiv+transporteur@af83.com/secret

#### Synchronize with STIF CODIFLIGNE (Line) and REFLEX (StopArea)

```sh
bundle exec rake codifligne:sync
bundle exec rake reflex:sync
```

**N.B.** These are asynchronous tasks, you can observe the launched jobs in your [Sidekiq Console](http://localhost:3000/sidekiq)

#### Create Referential

To create `Referential` objects with some data (`Route`, `JourneyPattern`, `VehicleJourney`, etc), you need to wait codifligne and reflex jobs finished. And then you can launch :

```sh
bundle exec rake referential:create
```

### Run tests

* Rspec (Rails test)

```sh
bundle exec rake spec
```

* Jest (JavaScript tests)

```sh
grunt jest #to run the whole specs.
grunt #to watch for changes and automatically run corresponding tests.
```

### Run

Launch Sidekiq

```sh
bundle exec sidekiq
```

```sh
bin/webpack-dev-server // Launch webpack server to compile assets on the fly
bundle exec rails server // Launch rails server
```

You need to have an account on [STIF Portail](http://stif-portail-dev.af83.priv/) to connect to the Rails application.