Skip to content

on3iro/aeons-end-randomizer

Repository files navigation

App Docs Official Aeons End Discord

Warning

This repository is currently in maintenance mode. Unfortunately I don't have time to add features to the randomizer myself anymore and I also no longer own the game. However I still welcome pull requests and will try to review them as quickly as possible. So if you would like to see new features/translations, you would either need to provide them yourself or find someone to implement these for you. Also reach out to me, if you would like to help maintain the project.

AER

ToC

About

Aeons End Randomizer is an unofficial companion app for the popular deck building game Aeons End. It is build as an offline first Progressive Web App, which means that it can be opened inside a regular web browser, but also be saved to you smartphone or tablet device (by using the "add-to-homescreen" option, your handheld browser provides). If you do the latter, the randomizer will behave almost like a native application.

AER currently does not communicate with any kind of backend. All user data, like e.g. your settings are saved locally on you device in your browsers instance of indexedDB. This way you will always be able to use the app, even during periods where you do not have an internet connection.

Updating to the newest version

Currently updating is a bit cumbersome (don't worry, we are working on it). To receive the newest version of the app close all instances of it (browser tabs and instances added to your homescreen) and re-open them. In most cases this should do the trick. If you still do not have the newest version (check by referencing the version number inside the apps drawer), repeat the process.

Available Scripts

This project was bootstrapped with Create React App.

In the project directory, you can run:

yarn start

Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.

The page will reload if you make edits.
You will also see any lint errors in the console.

yarn test:jest

Launches the test runner in the interactive watch mode.
See the section about running tests for more information.

yarn test:jest:ci

Runs jest single threaded for CI purposes. Otherwise memory issues might occur.

yarn test:coverage

Runs all tests and creates coverage for them

yarn test:components

Only runs component tests

yarn test:components:coverage

Only runs component tests and creates coverage

yarn test:redux

Only runs redux related tests

yarn test:redux:coverage

Only runs redux tests and creates coverage

yarn test:cy

Runs cypress test inside the command line

yarn test:cy:open

Opens the cypress app to run tests and see the dashboard

yarn deploy:docs

Deploys the ./docs directory directly to github pages. You need to have repository access and push permissions to run this command.

NOTE: To show the docs locally, you have to install docsify as global npm package and run docsify serve docs -p 3001 inside the project root.

yarn run 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.
Your app is ready to be deployed!

See the section about deployment for more information.

yarn run build:gh-pages

This builds the app for github pages.

yarn run deploy

This is currently used as a our legacy way of deployment! We now deploy manually to surge instead. Creates the regular build and pushes to the repositories gh-pages branch afterwards.

yarn run analyze:app

Runs the source-map-explorer and displays its results inside the browser. This analyzes only app data. node_modules are skipped.

yarn run analyze:vendor

Runs the source-map-explorer and displays its results inside the browser. This analyzes only vendor data. app data is skipped.

Docker Setup

This project can also be deployed via docker-compose.

Simply run docker-compose up -d inside the docker folder. Open http://localhost:8080 to view it in the brwoser.

For further instructions regarding docker or docker-compose please refer to the official documentations of docker or docker-compose

Using types and data in other apps

The typings and all of our aeons end data are part of this mono-repository. However we publish both separately to npm, so they can be easily consumed by other applications and libraries.

TODO - writing client side migrations