2020-07-27 12:16:26 +02:00
|
|
|
# TopTal take-home #2
|
|
|
|
|
|
|
|
All of the commands defined herein should be run from the top-level directory of
|
|
|
|
this repository (i.e. the directory in which this file exists).
|
|
|
|
|
2020-07-27 12:36:09 +02:00
|
|
|
## Server
|
|
|
|
|
|
|
|
To create the environment that contains all of this application's dependencies,
|
|
|
|
run:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
$ nix-shell
|
|
|
|
```
|
|
|
|
|
|
|
|
To run the server interactively, run:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
$ cd src/
|
|
|
|
$ ghci
|
|
|
|
```
|
|
|
|
|
|
|
|
Now compile and load the server with:
|
|
|
|
|
|
|
|
```
|
|
|
|
Prelude> :l Main.hs
|
|
|
|
*Main> main
|
|
|
|
```
|
|
|
|
|
2020-07-27 12:16:26 +02:00
|
|
|
## Database
|
|
|
|
|
|
|
|
Create a new database named `db.sqlite3` with:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
$ sqlite3 db.sqlite3
|
|
|
|
```
|
|
|
|
|
2020-07-28 19:42:07 +02:00
|
|
|
Populate the database with:
|
2020-07-27 12:16:26 +02:00
|
|
|
|
|
|
|
```
|
2020-07-28 19:42:07 +02:00
|
|
|
sqlite3> .read populate.sqlite3
|
2020-07-27 12:16:26 +02:00
|
|
|
```
|
|
|
|
|
2020-07-28 19:42:07 +02:00
|
|
|
You can verify that everything is setup with:
|
2020-07-27 12:16:26 +02:00
|
|
|
|
|
|
|
```
|
2020-07-28 19:42:07 +02:00
|
|
|
sqlite3> .tables
|
|
|
|
sqlite3> .schema
|
|
|
|
sqlite3> SELECT * FROM Accounts;
|
|
|
|
sqlite3> SELECT * FROM Trips;
|
2020-07-27 12:16:26 +02:00
|
|
|
```
|