Skip to content

duanefields/bgg-browser

Repository files navigation

BGG Collection Browser

Board Game Geek collection browser, deployed at https://bgg2.fastwombat.com.

This application uses the Board Game Geek XML API to allow you to browse anyone's collection. The application is optimized for mobile use and makes extensive use of caching and background updating to be nice and fast after the initial load. Click or tap on any game to open it at Board Game Geek. Filters let you find a game in your collection quickly, by player count and play time. You can even sort the results randomly to help in choosing a game from the filtered titles.

Dependencies and Prerequisites

You will need the version of node specified in the .nvmrc file. If you are using nvm you can switch to the correct version of node by running the command:

nvm use

You will need to install the required node modules:

npm install

Running in Development Mode

This application was build with Vite. Running the development server is simple:

npm run dev

Code Formatting and Style

Prettier

This project enforces code formatting with Prettier. If you are running Visual Studio Code it is recommended that you install the Prettier Formatter extension.

ESLint

This project enforces code quality with ESLint. If you are running Visual Studio Code it is recommended that you install the ESLint extension. This will provide you with real-time linting on files in your editor. See the documentation for tips on integration with other editors. But if you prefer you can from the linter from the command line:

npm run lint

Testing

This project uses Vitest for testing. None of the tests hit the proxy server and utilize mock responses provided by Mock Service Worker. You can mock additional responses by editing mockServer.ts and adding the JSON responses to the test folder.

If you are running Visual Studio Code it is recommended that you install the Vitest extension. But if you prefer you can run tests from the command line:

npm run test

To run tests with code coverage:

npm run coverage