<commit_before># shopping-list
Web app for a simple shopping list

A "progressive web app" that implements a simple shopping list stored locally via localStorage, can be installed to a phone's homescreen (from Chrome on Android at least) to open as a standalone app and works offline (using a Service Worker).

Uses Material Design Lite for an Android-like look, Slip.js for drag&drop interactions and is written in vanilla JavaScript otherwise.

To self-host simply host all files in the web directory on a static web server that has https enabled. Offline capabilities only work when accessed via https.

## Licencing

This project's own code and files are licenced under the [MIT Licence](https://github.com/Shepard/shopping-list/blob/master/LICENSE).

All files in the web/css/libs and web/js/libs directories, as well as the icons in the web/img directory, are included from third parties and do not fall under this licence.

Material Design Lite:
© Google, 2015. Licenced under an
[Apache-2](https://github.com/google/material-design-lite/blob/master/LICENSE)
licence.

Slip.js:
See licence notice included [in the file](https://github.com/Shepard/shopping-list/blob/master/web/js/libs/slip.js).

[Material icons](https://design.google.com/icons/) font as well as the shopping cart icon used as a web app icon:
© Google. [CC-BY](https://creativecommons.org/licenses/by/4.0/)

## TODO

* Improve long press (get rid of delay by using touchstart/touchend without interferring with drag&drop).
* Improve swiping elements out of the list (do any of the undocument options in Slip.js help?).
* Multiple lists
* Syncing with a server for shared editing<commit_msg>Added TODO for undo functionality.<commit_after># shopping-list
Web app for a simple shopping list

A "progressive web app" that implements a simple shopping list stored locally via localStorage, can be installed to a phone's homescreen (from Chrome on Android at least) to open as a standalone app and works offline (using a Service Worker).

Uses Material Design Lite for an Android-like look, Slip.js for drag&drop interactions and is written in vanilla JavaScript otherwise.

To self-host simply host all files in the web directory on a static web server that has https enabled. Offline capabilities only work when accessed via https.

## Licencing

This project's own code and files are licenced under the [MIT Licence](https://github.com/Shepard/shopping-list/blob/master/LICENSE).

All files in the web/css/libs and web/js/libs directories, as well as the icons in the web/img directory, are included from third parties and do not fall under this licence.

Material Design Lite:
© Google, 2015. Licenced under an
[Apache-2](https://github.com/google/material-design-lite/blob/master/LICENSE)
licence.

Slip.js:
See licence notice included [in the file](https://github.com/Shepard/shopping-list/blob/master/web/js/libs/slip.js).

[Material icons](https://design.google.com/icons/) font as well as the shopping cart icon used as a web app icon:
© Google. [CC-BY](https://creativecommons.org/licenses/by/4.0/)

## TODO

* Undo in the context menu by saving all previous states of the list.
* Improve long press (get rid of delay by using touchstart/touchend without interferring with drag&drop).
* Improve swiping elements out of the list (do any of the undocument options in Slip.js help?).
* Multiple lists
* Syncing with a server for shared editing
{'fraction_non_alphanumeric': 0.0792629423808131, 'fraction_numerical': 0.0040947645510383155, 'mean_word_length': 4.454545454545454, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 10, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4951699', 'n_tokens_mistral': 975, 'n_tokens_neox': 925, 'n_words': 446}