Alexandria is a content-opinionated web app for memorizing Grammar of the following languages:
- German
- Ancient Greek
- Latin
- Hebrew (Classical)
- Sanskrit (Classical)
It was initiated when I needed a centralized grammar reference of languages I was studying so that I can utilize my fragmented time more efficiently by peeking into them with my mobile phone.
The app is hosted at alexandria.qubitpi.org.
Alexandria has the following packages:
alexandria-app
: holding business logics of the appalexandria-redux
: managing all app states. Alexandria uses Redux state managementinstead of
React state managementfor a much more maintainable decoupling of React components
git clone git@github.com:QubitPi/alexandria.git
cd alexandria
Install dependencies by
Note
Node 22 and Yarn 4 must be installed in local environment.
yarn
yarn start
: Runs the app in development mode. Open http://localhost:3000 to view it in the browser. The page automatically reloads if we make changes to the code. we will see the build errors and lint warnings in the console.yarn test
: Runs the unit testsyarn cypress:open
&yarn e2e
: Opens Cypress End-to-End test console and runs the End-to-End tests, respectivelyyarn build
: Builds the app for production to the build folder. It correctly bundles React in production mode and optimizes the build for the best performance. The build is minified and the filenames include the hashes.
When CI/CD complains about "Code style check" as the following:
Simply run the following command at project root which will auto formatting the codebase using Prettier:
yarn prettier --ignore-path .gitignore . --write
sentry.io has been integrated into the alexandria.qubitpi.org. Specifically:
- sourcemap is uploaded to sentry during build time
- error trace are sent to sentry during run time
While error trace will always be sent in production mode (process.env.NODE_ENV === "production"
), an
.env.sentry-build-plugin is, however,
required for yarn build
to be able to generate and upload the sourcemap.
Note
If the .env.sentry-build-plugin
is not present, yarn build
will still run successfully. It's just not possible
then to locate the exact location of error in code on sentry issue console because sourcemap hasn't been uploaded
The use and distribution terms for alexandria are covered by the Apache License, Version 2.0.