random-fo76/README.md

38 lines
1.4 KiB
Markdown

# Random _Fallout 76_ records
Allows a user to retrieve a random record from the _Fallout 76_ game files.
The user can filter records by data type to avoid receiving uninteresting data types.
The back end, `api.php`, communicates with an SQLite database, `.fo76-dumps-ids.db`, containing the `IDS.csv` dump from
[the _Fallout 76_ data dumps repository](https://github.com/FWDekker/fo76-dumps/), with an additional index
`sk_signature` on the signature column.
The database also has a table `meta` with text columns `key` and `value` that contain version information.
Additionally, the database has an index `sk_signature` on the signature column.
The database is not included in this repository.
The front end, `index.html`, sends asynchronous queries to the back end based on the user's settings.
Selected data types are stored in a cookie so the user doesn't have to redo their settings each time the page is
refreshed.
## Development
### Requirements
* [npm](https://www.npmjs.com/)
* PHP 7.3+
* [PHP SQLite 3](https://www.php.net/manual/en/book.sqlite3.php)
* a local copy of `.fo76-dumps-ids.db`
### Setting up
```shell script
# Install dependencies (only needed once)
$> npm ci
```
### Building
```shell script
# Build the tool in `dist/` for development
$> npm run dev
# Same as above, but automatically rerun it whenever files are changed
$> npm run dev:server
# Build the tool in `dist/` for deployment
$> npm run deploy
```