diff --git a/package.json b/package.json index 52a190c..6666281 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,9 @@ "private": true, "scripts": { "start": "react-scripts start", - "build": "react-scripts build", + "build": "yarn build:page && yarn build:licenses", + "build:page": "react-scripts build", + "build:licenses": "yarn licenses generate-disclaimer --production > build/static/js/full-license-manifest.txt", "test": "react-scripts test", "eject": "react-scripts eject", "prettify": "prettier --write src/", diff --git a/src/model/routing.ts b/src/model/routing.ts index 318e8f0..0fd872c 100644 --- a/src/model/routing.ts +++ b/src/model/routing.ts @@ -7,6 +7,7 @@ export enum AppPath { ExpressionSetsPractice = "expression-sets/practice", ExpressionSetsDetails = "expression-sets/details", Settings = "settings", + CreateCards = "settings", // TODO split from settings } export interface RouteOptions { diff --git a/src/styles/components.css b/src/styles/components.css index 80f9b65..ad543d0 100644 --- a/src/styles/components.css +++ b/src/styles/components.css @@ -201,6 +201,12 @@ i { align-items: center; } +.item-list { + padding-left: 16px; + list-style: disc; + margin: var(--gap-small) 0; +} + .content-list { display: flex; flex-direction: column; diff --git a/src/views/ExpressionPracticeView/DemoteExpressionButton.tsx b/src/views/ExpressionPracticeView/DemoteExpressionButton.tsx index 09d716c..c13b8d8 100644 --- a/src/views/ExpressionPracticeView/DemoteExpressionButton.tsx +++ b/src/views/ExpressionPracticeView/DemoteExpressionButton.tsx @@ -46,7 +46,7 @@ export function DemoteExpressionButton({ onClick={handleClick} > - Wrong + I forgot ); } diff --git a/src/views/ExpressionPracticeView/ExpressionPracticeCardView.tsx b/src/views/ExpressionPracticeView/ExpressionPracticeCardView.tsx index f7fa0be..3932d64 100644 --- a/src/views/ExpressionPracticeView/ExpressionPracticeCardView.tsx +++ b/src/views/ExpressionPracticeView/ExpressionPracticeCardView.tsx @@ -38,7 +38,7 @@ export function ExpressionPracticeCardView({ type="button" onClick={() => setRevealed(true)} > - Reveal + Tap here to reveal the full card )} diff --git a/src/views/ExpressionPracticeView/PromoteExpressionButton.tsx b/src/views/ExpressionPracticeView/PromoteExpressionButton.tsx index 498c232..83df99e 100644 --- a/src/views/ExpressionPracticeView/PromoteExpressionButton.tsx +++ b/src/views/ExpressionPracticeView/PromoteExpressionButton.tsx @@ -33,7 +33,7 @@ export function PromoteExpressionButton({ onClick={handleClick} > - Right + I remembered ); } diff --git a/src/views/HomeView/HomeView.tsx b/src/views/HomeView/HomeView.tsx index d952024..c30b7f0 100644 --- a/src/views/HomeView/HomeView.tsx +++ b/src/views/HomeView/HomeView.tsx @@ -1,16 +1,45 @@ +import { useContext } from "react"; +import { AppPath, AppRouting } from "../../model/routing"; + export function HomeView() { + const { setRoute } = useContext(AppRouting); return (

Study Card Tool

- A handy tool for vocabulary practice through repetition. Go to{" "} - settings -> create card to start adding words for practicing. - Once you have a few go to practice and start from your daily words. + A handy tool for vocabulary practice through repetition. Go to + "settings" to add some words and you'll be ready to practice. +

+ +

+ Newly created cards will go onto the "daily" deck. As you remember and + forget word definitions they will move to weekly, monthly, yearly or + back towards the daily deck. +

+

+ Words that are remembered beyond the highest level will be removed, and + words that are so poorly remembered that you find yourself attempting to + create cards for them more than once will have duplicate cards.

Privacy

- The app requests data from Wiktionary when you create study cards. Their - privacy policy can be found{" "} + There is no data collection by the app. The app makes requests to + Wiktionary during card creation, their privacy policy can be found{" "} on this link - . Apart from the initial page load, this should be the only time any - data transfer happens during the usage of the app. -

-

- Once you save a card, it is stored on your own device and never - transmitted anywhere else. + .

Licensing

@@ -33,63 +57,46 @@ export function HomeView() { You are free to use the app for any purposes. You are free to modify and redistribute the app as long as you grant your users access to the source-code, content and assets you modify and redistribute under the - same terms listed below.{" "} - {" "} - As long as you follow those rules, you don't need to contact the - author(s) about it. -

-

- The user-interface icons are licensed under the{" "} - - MIT license - - . -

-

- The content for the study cards generated is dual-licensed under{" "} - - Creative Commons Attribution-ShareAlike 3.0 Unported License - {" "} - and the{" "} - - GNU Free Documentation License - - . -

-

- The rest of the application and its assets are licensed under the{" "} - - GNU Affero General Public License version 3 - - . -

-

- The official source code repository for this application can be found at{" "} - - git.studycardtool.org/tcoh/app - + same terms listed below + .

+

Support the app

This app would not exist if it was not for Wiktionary and the Wikimedia @@ -107,16 +114,17 @@ export function HomeView() {

Contributing

- The main thing on the roadmap is improved language support for - vocabulary practice. The app still needs bugfixes, code and style - cleanup and potentially rethinking of some existing features. - Contributions introducing a need for smarter backend functionality than - a static file server are in principle unwelcome in this project. -

-

- There are a few pending tasks in server configuration and testing, but - once those are done local gitea registrations for contributors should - open and potentially federated accounts as well. + Code, comments and feedback, design improvements are very much welcome. + To participate join the official repository + + here + + .

);