Landing page and UI text improvements, list 3rd-party library licenses
This commit is contained in:
parent
250a126acd
commit
cad4e18389
@ -4,7 +4,9 @@
|
|||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "react-scripts start",
|
"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",
|
"test": "react-scripts test",
|
||||||
"eject": "react-scripts eject",
|
"eject": "react-scripts eject",
|
||||||
"prettify": "prettier --write src/",
|
"prettify": "prettier --write src/",
|
||||||
|
@ -7,6 +7,7 @@ export enum AppPath {
|
|||||||
ExpressionSetsPractice = "expression-sets/practice",
|
ExpressionSetsPractice = "expression-sets/practice",
|
||||||
ExpressionSetsDetails = "expression-sets/details",
|
ExpressionSetsDetails = "expression-sets/details",
|
||||||
Settings = "settings",
|
Settings = "settings",
|
||||||
|
CreateCards = "settings", // TODO split from settings
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface RouteOptions {
|
export interface RouteOptions {
|
||||||
|
@ -58,6 +58,7 @@ i {
|
|||||||
.text-details {
|
.text-details {
|
||||||
color: var(--color-default);
|
color: var(--color-default);
|
||||||
font-size: var(--text-medium);
|
font-size: var(--text-medium);
|
||||||
|
text-align: justify;
|
||||||
line-height: 1.3rem;
|
line-height: 1.3rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ export function DemoteExpressionButton({
|
|||||||
onClick={handleClick}
|
onClick={handleClick}
|
||||||
>
|
>
|
||||||
<img src="/icons/x.svg" width="24" height="24" alt="" />
|
<img src="/icons/x.svg" width="24" height="24" alt="" />
|
||||||
<span>Wrong</span>
|
<span>I forgot</span>
|
||||||
</button>
|
</button>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ export function ExpressionPracticeCardView({
|
|||||||
type="button"
|
type="button"
|
||||||
onClick={() => setRevealed(true)}
|
onClick={() => setRevealed(true)}
|
||||||
>
|
>
|
||||||
Reveal
|
Tap here to reveal the full card
|
||||||
</button>
|
</button>
|
||||||
)}
|
)}
|
||||||
</section>
|
</section>
|
||||||
|
@ -33,7 +33,7 @@ export function PromoteExpressionButton({
|
|||||||
onClick={handleClick}
|
onClick={handleClick}
|
||||||
>
|
>
|
||||||
<img src="/icons/check.svg" width="24" height="24" alt="" />
|
<img src="/icons/check.svg" width="24" height="24" alt="" />
|
||||||
<span>Right</span>
|
<span>I remembered</span>
|
||||||
</button>
|
</button>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1,16 +1,53 @@
|
|||||||
|
import { useContext } from "react";
|
||||||
|
import { AppPath, AppRouting } from "../../model/routing";
|
||||||
|
|
||||||
export function HomeView() {
|
export function HomeView() {
|
||||||
|
const { setRoute } = useContext(AppRouting);
|
||||||
return (
|
return (
|
||||||
<div className="page-with-padding content-text scroll">
|
<div className="page-with-padding content-text scroll">
|
||||||
<h1 className="text-title margin-title">Study Card Tool</h1>
|
<h1 className="text-title margin-title">Study Card Tool</h1>
|
||||||
<p className="text-details margin-paragraph">
|
<p className="text-details margin-paragraph">
|
||||||
A handy tool for vocabulary practice through repetition. Go to{" "}
|
A handy tool for vocabulary practice through repetition. Go to
|
||||||
<i>settings -> create card</i> to start adding words for practicing.
|
"settings" to add some words and you'll be ready to practice.
|
||||||
Once you have a few go to practice and start from your daily words.
|
</p>
|
||||||
|
<nav>
|
||||||
|
<ol className="navigation">
|
||||||
|
<li
|
||||||
|
className="navigation-li"
|
||||||
|
onClick={() => setRoute({ path: AppPath.CreateCards })}
|
||||||
|
>
|
||||||
|
<div className="navigation-item">Create study cards</div>
|
||||||
|
</li>
|
||||||
|
<li
|
||||||
|
className="navigation-li"
|
||||||
|
onClick={() => setRoute({ path: AppPath.ExpressionSetsPractice })}
|
||||||
|
>
|
||||||
|
<div className="navigation-item">Practice</div>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
</nav>
|
||||||
|
<p className="text-details margin-paragraph">
|
||||||
|
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.
|
||||||
|
</p>
|
||||||
|
<p className="text-details margin-paragraph">
|
||||||
|
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.
|
||||||
|
</p>
|
||||||
|
<p className="text-details margin-paragraph">
|
||||||
|
A guideline for creating new cards is doing so while reading a text in
|
||||||
|
the language that you are studying and adding unknown words as you go.
|
||||||
|
</p>
|
||||||
|
<p className="text-details margin-paragraph">
|
||||||
|
A guideline for practicing is to go through the daily deck once a day,
|
||||||
|
weekly deck once a week, monthly deck once a month and so on.
|
||||||
</p>
|
</p>
|
||||||
<h2 className="text-title margin-title">Privacy</h2>
|
<h2 className="text-title margin-title">Privacy</h2>
|
||||||
<p className="text-details margin-paragraph">
|
<p className="text-details margin-paragraph">
|
||||||
The app requests data from Wiktionary when you create study cards. Their
|
There is no data collection by the app. The app makes requests to
|
||||||
privacy policy can be found{" "}
|
Wiktionary during card creation, their privacy policy can be found{" "}
|
||||||
<a
|
<a
|
||||||
className="link"
|
className="link"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
@ -19,12 +56,7 @@ export function HomeView() {
|
|||||||
>
|
>
|
||||||
on this link
|
on this link
|
||||||
</a>
|
</a>
|
||||||
. Apart from the initial page load, this should be the only time any
|
.
|
||||||
data transfer happens during the usage of the app.
|
|
||||||
</p>
|
|
||||||
<p className="text-details margin-paragraph">
|
|
||||||
Once you save a card, it is stored on your own device and never
|
|
||||||
transmitted anywhere else.
|
|
||||||
</p>
|
</p>
|
||||||
<h2 className="text-title margin-title">Licensing</h2>
|
<h2 className="text-title margin-title">Licensing</h2>
|
||||||
<p className="text-details margin-paragraph">
|
<p className="text-details margin-paragraph">
|
||||||
@ -33,10 +65,9 @@ export function HomeView() {
|
|||||||
You are free to use the app for any purposes. You are free to modify
|
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
|
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
|
source-code, content and assets you modify and redistribute under the
|
||||||
same terms listed below.{" "}
|
same terms listed below
|
||||||
</strong>{" "}
|
</strong>
|
||||||
As long as you follow those rules, you don't need to contact the
|
.
|
||||||
author(s) about it.
|
|
||||||
</p>
|
</p>
|
||||||
<p className="text-details margin-paragraph">
|
<p className="text-details margin-paragraph">
|
||||||
The user-interface icons are licensed under the{" "}
|
The user-interface icons are licensed under the{" "}
|
||||||
@ -67,7 +98,19 @@ export function HomeView() {
|
|||||||
.
|
.
|
||||||
</p>
|
</p>
|
||||||
<p className="text-details margin-paragraph">
|
<p className="text-details margin-paragraph">
|
||||||
The rest of the application and its assets are licensed under the{" "}
|
A full list of licenses for the 3rd-party libraries used by the main
|
||||||
|
application can be found{" "}
|
||||||
|
<a
|
||||||
|
className="link"
|
||||||
|
target="_blank"
|
||||||
|
href="/static/js/full-license-manifest.txt"
|
||||||
|
>
|
||||||
|
here
|
||||||
|
</a>
|
||||||
|
.
|
||||||
|
</p>
|
||||||
|
<p className="text-details margin-paragraph">
|
||||||
|
The main application code and its assets are licensed under the{" "}
|
||||||
<a
|
<a
|
||||||
className="link"
|
className="link"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
@ -78,18 +121,6 @@ export function HomeView() {
|
|||||||
</a>
|
</a>
|
||||||
.
|
.
|
||||||
</p>
|
</p>
|
||||||
<p className="text-details margin-paragraph">
|
|
||||||
The official source code repository for this application can be found at{" "}
|
|
||||||
<a
|
|
||||||
className="link"
|
|
||||||
target="_blank"
|
|
||||||
rel="noreferrer"
|
|
||||||
href="https://git.studycardtool.org/tcoh/app"
|
|
||||||
>
|
|
||||||
git.studycardtool.org/tcoh/app
|
|
||||||
</a>
|
|
||||||
.
|
|
||||||
</p>
|
|
||||||
<h2 className="text-title margin-title">Support the app</h2>
|
<h2 className="text-title margin-title">Support the app</h2>
|
||||||
<p className="text-details margin-paragraph">
|
<p className="text-details margin-paragraph">
|
||||||
This app would not exist if it was not for Wiktionary and the Wikimedia
|
This app would not exist if it was not for Wiktionary and the Wikimedia
|
||||||
@ -107,16 +138,17 @@ export function HomeView() {
|
|||||||
</p>
|
</p>
|
||||||
<h2 className="text-title margin-title">Contributing</h2>
|
<h2 className="text-title margin-title">Contributing</h2>
|
||||||
<p className="text-details margin-paragraph">
|
<p className="text-details margin-paragraph">
|
||||||
The main thing on the roadmap is improved language support for
|
Code, comments and feedback, design improvements are very much welcome.
|
||||||
vocabulary practice. The app still needs bugfixes, code and style
|
To participate join the official repository at{" "}
|
||||||
cleanup and potentially rethinking of some existing features.
|
<a
|
||||||
Contributions introducing a need for smarter backend functionality than
|
className="link"
|
||||||
a static file server are in principle unwelcome in this project.
|
target="_blank"
|
||||||
</p>
|
rel="noreferrer"
|
||||||
<p className="text-details margin-paragraph">
|
href="https://git.studycardtool.org/tcoh/app"
|
||||||
There are a few pending tasks in server configuration and testing, but
|
>
|
||||||
once those are done local gitea registrations for contributors should
|
https://git.studycardtool.org/tcoh/app
|
||||||
open and potentially federated accounts as well.
|
</a>
|
||||||
|
.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
Loading…
Reference in New Issue
Block a user