summaryrefslogtreecommitdiff
path: root/TODO.md
blob: cc14e290aa55477b4c85a8c4e50365eccab74ae1 (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
# Hornchat Roadmap

> **Completion:** 37/58

- [x] <s>Refactor serverside to make it easier to bugfix</s>
- [x] <s>Device manager on client</s>
- [x] <s>Option to show safety number on client</s>
- [ ] Consider switches as conversation events (client)
- [ ] Limit file uploads to 10MB (client)
- [ ] Show message send status instead of hanging (client)
- [ ] Rate limit for sending messages
- [ ] Drag and drop, and paste
- [ ] Limit to 5000 characters (client)

- [ ] Modular server
  - [x] <s>`public:/api/authentication`: user ID + TOTP authentication; and device token verification</s>
  - [ ] `public:/api/conversation`: service for everything chat-related
  - [x] <del>`public:/api/keyserver`: service to exchange public keys</del>
  - [x] <del>`public:/api/profile`: service for user profile management</del>
  - [x] <del>`public:/api/status`: service for status management</del>
  - [x] <del>`public:/api/verification`: service for safety number verification</del>
  - [x] <del>`pluralkit:/refresh`: service to update PluralKit data</del>

- [x] <del>End-to-end encryption</del>
  - [x] <del>Per-device keypair</del>
  - [x] <del>Asymmetric encryption (private and public keys)</del>

- [x] <del>PluralKit integration</del>
  - [x] <del>Different bubble colors for different senders</del>
  - [x] <del>Fetching information as often as possible</del>
    - [x] <del>Update current fronter as often as possible</del>
    - [x] <del>Fetch member information frequently</del>
  - [x] <del>Prefix overrides current fronter</del>
  - [x] <del>Handle PluralKit being down</del>
    - <del>The app should still work as intended even when PluralKit is temporarily unavailable.</del>

- [ ] Conversation events
  - [x] <s>Replies</s> 
  - [ ] Messages
    - [x] <s>Text message</s>
      - [x] <s>Markdown support</s>
    - [ ] File message
      - [ ] Photo
      - [ ] Video
      - [ ] Audio
      - [ ] Text/code
      - [x] <s>Other files</s>
  - [x] <s>Read receipts</s>
  - [x] <s>Typing</s>
    - [x] <s>Start typing</s>
    - [x] <s>Stop typing</s>
    - [x] <s>Real-time preview</s>

- [x] <del>Security measures</del>
  - [x] <del>Safety number changes every time a new device logs in</del>
  - [x] <del>User can delete devices from account</del>
  - [x] <del>Rate-limiting</del>

- [x] <s>Profile and status</s>
  - [x] <del>Username</del> **(not needed because of PluralKit)**
  - [x] <del>Profile picture</del> **(not needed because of PluralKit)**
  - [x] <del>Update dynamically with PluralKit</del>
  - [x] <s>Status</s>
    - [x] <s>Online</s>
    - [x] <s>Offline</s>

- [ ] Background functionality
  - [ ] Message syncing
  - [ ] Status on mobile
  - [ ] Notifications