A calculator for slayer geeks that need to know percentages. https://bartvdbraak.github.io/SlayerWeightCalculator/#/
Find a file
2020-02-06 16:38:17 +01:00
api temporary 2020-02-06 16:35:14 +01:00
css missing bootstrap map 2019-04-29 16:43:22 +02:00
data Merge branch 'cblevel-filter' 2019-04-29 13:06:51 +02:00
js bug fix (Fossil Island Wyverns) 2019-05-03 11:01:57 +02:00
public temporary 2020-02-06 16:35:14 +01:00
src Ignore combat level, remove unused elements (edit columns) 2020-02-06 16:35:47 +01:00
.eslintrc.js base layout, data, components 2020-02-06 16:34:35 +01:00
.gitignore init 2020-02-06 16:34:34 +01:00
application.png README cleanup, additions 2020-02-06 16:35:48 +01:00
babel.config.js base layout, data, components 2020-02-06 16:34:35 +01:00
index.html text change (morytania unlocks) 2019-04-30 11:01:24 +02:00
LICENSE add license 2020-02-06 16:35:47 +01:00
package.json Add lodash pkg, bugfix config loader (update:configData), stat filters implemented with lodash 2020-02-06 16:35:14 +01:00
README.md README fix 2020-02-06 16:35:48 +01:00
yarn.lock yarn package changes, minor tweaks 2020-02-06 16:35:14 +01:00

Slayer Weight Calculator

A cross-section of the Applications interface.

A calculator for slayer geeks that need to know percentages. Reworked in VueJS.


The full application can be accessed at:

https://bartvdbraak.github.io/slayweightcalc/index.html

Why VueJS?

This application was first written with little knowledge of the front-end Javascript landscape. Therefore, only jQuery and Datatables were used in conjunction with vanilla HTML and Bootstrap CSS. The codebase wasn't easily maintainable, making bugfixes or feature additions extremely tedious and time consuming.

The reactiveness and structure that is used in VueJS is alot easier to maintain and extend. Also, I just really wanted to learn more front-end javascript and it's very likely that many parts of the codebase can be improved.

Why a static API?

This choice stems from the fact that I want users to be able to reach the application in Github pages. The application is meant for RuneScape players, which are (and should be) very hesitant to use tools that may compromise their account details. Therefor, the way to go was: an open-source codebase with all the API endpoints stored in JSON while the application can be reached by Github Pages.

NPM Libraries

  • lodash for filtering objects
  • bootstrap-vue for reactive bootstrap components
  • vue-router for navigation handling

Project folder structure

.
+-- api/                    # python, csv, json files for API generate
+-- public/                 # beginning point for VueJS app (index)
+-- src/                    # files used by app
|   +-- assets/             # images
|   +-- components/         # vuejs components
|   +-- data/               # json endpoint files
|   +-- plugins/            # plugins (bootstrap-vue)

Project setup

yarn install

Compiles and hot-reloads for development

yarn serve

Compiles and minifies for production

yarn build

Lints and fixes files

yarn lint