doc: Commands tests use `test_frontend`
[nit.git] / contrib / benitlux / README.md
1 An unofficial app and mailing list to keep faithful bargoers informed of the beers available at the excellent Brasserie Bénélux.
2
3 This project is composed of three softwares:
4
5 * A mobile app and social network,
6 * a server with a RESTful API for the mobile app and a web interface to subscribe to the mailing list
7 * and a daily background program which updates the DB and send emails.
8
9 The mobile app is available on the Nit F-Droid repository, see http://nitlanguage.org/fdroid.
10 The web interface is currently published at http://benitlux.xymus.net.
11
12 # Compile and execute
13
14 First, choose a server and set the `SERVER` environment variable accordingly.
15 It can be localhost, a local development server or the official server.
16
17 * `SERVER` defaults to `localhost:8080`.
18   This is enough to test running the server and the GNU/Linux client on the same machine.
19
20 * Set `SERVER=192.168.0.1` or to your IP to quickly setup a development server.
21   This allows you to work and test both the clients and the server.
22
23 * Set `SERVER=benitlux.xymus.net` to use the official server, it should work with all clients.
24   It is not advised to use the official server with unstable clients.
25
26 ## Mobile client
27
28 Build and run on GNU/Linux with `make bin/benitlux && bin/benitlux`
29
30 Build and install for Android with: `make bin/benitlux.apk && adb install -rd bin/benitlux.apk`
31
32 Build and simulate for iOS with: `make bin/benitlux.app && ios-sim launch bin/benitlux.app`
33
34 ## Server
35
36 Install all required development packages. Under Debian or Ubuntu, you can use: `apt-get install libevent-dev libsqlite3-dev libcurl4-gnutls-dev sendmail`
37
38 Compile with: `make`
39
40 Launch the daily background program with: `bin/benitlux_daily` (the argument `-e` sends the emails)
41
42 Launch the server with: `bin/benitlux_web`
43
44 The Web interface will be accessible at <http://localhost:8080/>
45
46 # Features and TODO
47
48 - [x] Web page parser
49 - [x] Daily mailer
50 - [x] Web interface
51 - [x] Serialization and deserialization of data classes
52 - [x] Android app
53 - [x] iOS app
54 - [ ] Charlevoix location support
55 - [ ] Authenticate unsubscribe actions over GET
56 - [x] Social network and location updates
57 - [ ] Event updates