aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 9e1023440e163a1a05181a50766958717a84e781 (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
Shared Cost
===========

Share costs with a group of people:

- Share according to people income,
- Monthly payments available,
- Statistics by month,
- Weekly activity sent by email.

Getting started
---------------

Install nix:

```
curl https://nixos.org/nix/install | sh
```

Start the environment with:

```bash
./make start
```

Init the database with migration scripts:

```bash
sqlite3 database < server/migrations/1.sql
```

Inside the tmux session, add some users with sqlite after the migration is done:

```
sqlite3 database
insert into user(creation, email, name) values (datetime('now'), 'john@mail.com', 'John');
insert into user(creation, email, name) values (datetime('now'), 'lisa@mail.com', 'Lisa');
```

Later, stop the environment with:

```bash
./make stop
```

Dist
----

```
make dist
```

Configuration
-------------

See [application.conf](application.conf).

TODO
----

### Interface

- Add payment error handling.
- Delete payment waitFor.
- Edit a payment.
- Clone a payment.

#### Bonus

- Adjust login design.
- smooth search.
- search payments by:
    - category,
    - date.

### Code

- Move up element ids security (editOwn is actually at db level).
- try DuplicateRecordFields (https://ghc.haskell.org/trac/ghc/wiki/Records/OverloadedRecordFields/DuplicateRecordFields)

### Tooling

- migration diff (use flyway?).