summaryrefslogtreecommitdiffstats
path: root/TODO.md
blob: 980e2c80e9640e8fafb6d6f86cc22ecbddf5ae25 (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
### Build System
 * update Makefiles to use config.mk
 * create VAPI file for config.h
 * support "make install"

#### CORE
 * disallow buying for disabled users
 * support user discounts
 * remove hardcoded stuff from invoice and pdf-invoice
 * drop to user rights in all daemons if started as root user
  - [old code](https://github.com/ktt-ol/serial-barcode-scanner/commit/504cefec4a93a9b52fa9d25d6f353a4676485c43)

### frontend
 * add auto-logout

#### USERLIST-PDF
 * write new vala process, which generates a user list pdf using libcairobarcode

#### PRODUCTLIST-PDF
 * write new vala process, which generates a product list pdf using libcairobarcode
  - Version 1: EAN, Barcode, Name, Amount, Buying-Price
  - Version 2: EAN, Barcode, Name, Member-Price, Guest-Price

#### MAIL
 * add PGP support in mail script

#### MAIL-SERVICE
 * IMAP client, which is parsing incoming mails from shop@ktt-ol
 * interpret commands similar to the Debian Bug Tracker
 * authentication is done using PGP, only signed mails are accepted
 * support help command, which lists all supported commands
 * support restocking via mail
 * support requesting invoice data for own user
 * support requesting personal data
 * support password setup

#### WEB
 * Improve error message when adding an already existing EAN
 * Reimplement statistics, add cache (?)
 * Implement User Statistics
 * Support renaming products
 * Admin: support to disable/enable users
 * Admin: support to delete sales
 * Admin: support to add sales
 * Admin: support listing/adding/editing suppliers
 * Support generating a barcode userlist (USERLIST-PDF)
 * Support generating product price list (PRODUCTLIST-PDF)
 * Support generating shopping list (PRODUCTLIST-PDF)
 * Implement a more fine-grained authentication system
 * OpenID based login

#### LOG
 * implement log daemon
 * get logfile destination from config

#### DATABASE
 * check sqlite WAL mode
  - http://www.sqlite.org/wal.html
  - checkpoint operation for fsync

#### BACKUP
 * Git based backup service
  - using libgit2-glib
  - one commit per local session (login/logout)
  - one commit per web interface operation
  - uses name + email of the operating person
  - commit database
  - use diff textconv hook in the git repo

#### SQL
 * DISCOUNT table:
  - userid
  - start
  - stop
  - percent
 * USER_SETTINGS table
  - mail_mode (text, html or both)
  - audio_theme
 * REMOVED_SALES table
  - userid
  - product
  - sale_time
  - remover
  - removal_time
 * PRODUCT_NUTRITION_DATA table
  - product id
  - energy
  - sugar
  - ...
 * PRODUCT_DEPOSIT table
  - product id
  - deposit (0.08€, 0.15€)
 * PRODUCT_GROUPS table
  - group id
  - group name
 * PRODUCT_AMOUNT_TYPE table
  - amount type id
  - amount type name (Liter, Gramm, Kilogramm, ...)
 * PRODUCTS table
  - add group field referencing PRODUCT_GROUPS
  - add amount field (integer)
  - add amount type field (reference)