/ README.org
README.org
1 #+TITLE: Diff of Services 2 3 Diff of Services allows you to keep track of the changes to the Terms of Services, Privacy Policies, and other legal documents you may be subjected to reading throughout your time. 4 At this point in time, I cannot guarantee stability in the database format. At some time later I shall have migrations but not currently, so please don't use this as future changes /WILL/ require re-making the database and re-adding the documents. 5 6 * Reason 7 I dislike how long Terms of Services tend to be, but I deem it necessary for me to read them in their entirety. Unfortunately, the companies have a tendency to randomly change things, which becomes prohibitively expensive to re-read it each time there is a change, as it can often be minor. Thus I am creating this utility so that one can keep track of the changes and merely look over a diff of the changes between document version, to make it more feasible to read every version of the terms of service to which one agrees. 8 9 * Structure 10 This project will consist of a few crates (so yes in Rust) which will be developed in (approximately) the following order: a core api for managing things, a CLI to query or add documents, a Ratatui TUI to make easier viewing, a cross-platform Dioxus GUI, and finally a self-hostable server so one can sync between their various devices. 11 12 * Roadmap 13 Starting with CLI access until specified otherwise 14 15 - [X] Nix package for CLI 16 - [X] Create document 17 - [X] Be able to add new revisions to the document 18 - [X] Keep track of date added and last date checked separately? 19 - [X] Be able to move between revisions 20 - [X] Ignore adding a revision if unchanged, instead updated last checked field 21 - [X] Generic diff 22 - [ ] Initial TUI work 23 - [ ] Nix package for TUI 24 - [ ] View documents, move between revision 25 - [ ] Inline diff 26 - [ ] Add documents (drag-and-drop vs copy-paste?) 27 - [ ] Initial GUI work (unless we just roll in with trolley and do a TUI-GUI) 28 - [ ] Nix package for GUI 29 - [ ] View documents, move between revisions 30 - [ ] Inline diff 31 - [ ] Add documents 32 33 At this point, this is the basic functionality for a single-device setup. We have a few options of directions to go after this 34 - [ ] Improved diffing 35 - [ ] Paragraph added/removed diff 36 - [ ] 2-way diff 37 - [ ] Paragraph movement in diffs 38 - [ ] If paragraph add-remove combo, do a sub-paragraph diff (word-by word, myers diff type idea) 39 - [ ] Nix module instead of just package 40 - [ ] Self-hosted sync server 41 - [ ] Nix package and module (nixos vs hm?) for server 42 - [ ] Central storage, client support remote connection 43 - [ ] Clients keep local copy of latest revision of all (or maybe allow selection) docs + changes since last sync 44 - [ ] Docker image 45 - [ ] Extract from HTML document 46 - [ ] Check for update 47 - [ ] Once server implemented, also support autoupdate 48 - [ ] If we're feeling ambitions, maybe even browser extension 49 - [ ] On login / signup prompts (i.e. where "by click you agree to ... ") show if the stored revision is different that the linked one 50 - [ ] One click add to document store (with HTML extraction) 51 52 * License 53 This project is licensed under the MIT license. You can do what you want with the code, just please attribute the original code to me.