Landing page and UI text improvements, list 3rd-party library licenses

This commit is contained in:
Thiago Chaves 2022-08-13 09:12:26 +03:00
parent 250a126acd
commit d11fd3d3a8
7 changed files with 97 additions and 80 deletions

View File

@ -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/",

View File

@ -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 {

View File

@ -201,6 +201,12 @@ i {
align-items: center; align-items: center;
} }
.item-list {
padding-left: 16px;
list-style: disc;
margin: var(--gap-small) 0;
}
.content-list { .content-list {
display: flex; display: flex;
flex-direction: column; flex-direction: column;

View File

@ -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>
); );
} }

View File

@ -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>

View File

@ -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>
); );
} }

View File

@ -1,16 +1,45 @@
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 -&gt; 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>
<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 +48,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,63 +57,46 @@ 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"> <ul className="item-list">
The user-interface icons are licensed under the{" "} <li className="margin-small">
<a className="link" target="_blank" href="/icons/icons-license.txt"> <a className="link" target="_blank" href="/icons/icons-license.txt">
MIT license User interface icons
</a> </a>
. </li>
</p> <li className="margin-small">
<p className="text-details margin-paragraph">
The content for the study cards generated is dual-licensed under{" "}
<a <a
className="link" className="link"
target="_blank" target="_blank"
rel="noreferrer" rel="noreferrer"
href="https://en.wiktionary.org/wiki/Wiktionary:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License" href="https://creativecommons.org/licenses/by-sa/3.0/"
> >
Creative Commons Attribution-ShareAlike 3.0 Unported License Study cards text
</a>{" "} </a>
and the{" "} </li>
<li className="margin-small">
<a <a
className="link" className="link"
target="_blank" target="_blank"
rel="noreferrer" href="/static/js/full-license-manifest.txt"
href="https://en.wiktionary.org/wiki/Wiktionary:GNU_Free_Documentation_License"
> >
GNU Free Documentation License 3rd-party javascript libraries
</a> </a>
. </li>
</p> <li className="margin-small">
<p className="text-details margin-paragraph">
The rest of the application and its assets are licensed under the{" "}
<a <a
className="link" className="link"
target="_blank" target="_blank"
rel="noreferrer" rel="noreferrer"
href="https://www.gnu.org/licenses/agpl-3.0.en.html" href="https://www.gnu.org/licenses/agpl-3.0.en.html"
> >
GNU Affero General Public License version 3 Study Card Tool original source code
</a> </a>
. </li>
</p> </ul>
<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 +114,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{" "}
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 the official repository
open and potentially federated accounts as well. </a>
.
</p> </p>
</div> </div>
); );