Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vpdb/website
The VPDB web application.
https://github.com/vpdb/website
angularjs beautiful database pinball pwa threejs
Last synced: 3 months ago
JSON representation
The VPDB web application.
- Host: GitHub
- URL: https://github.com/vpdb/website
- Owner: vpdb
- License: gpl-2.0
- Created: 2017-09-28T22:32:29.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-07-30T04:58:14.000Z (6 months ago)
- Last Synced: 2024-07-30T08:30:21.990Z (6 months ago)
- Topics: angularjs, beautiful, database, pinball, pwa, threejs
- Language: JavaScript
- Homepage: https://vpdb.io
- Size: 12.3 MB
- Stars: 6
- Watchers: 2
- Forks: 1
- Open Issues: 53
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
*A database for Virtual Pinball tables.*
[![Codeship Status](http://img.shields.io/codeship/7a665bd0-b073-0135-06f3-52802c62f0b1.svg?style=flat-square)](https://app.codeship.com/projects/257675)
[![BrowserStack Status](https://www.browserstack.com/automate/badge.svg?badge_key=RXJHMzgzZ1hZVURNS1pwWUUybFpxUXdOb1daQTlhTmExWms1K3ptenlocz0tLXp2R1VtMUtOOG1PN0tCZ1lJdmdjQ0E9PQ==--59873cb571ddbb196a9f1979a0c316718c2bc23e)](https://www.browserstack.com/automate/public-build/RXJHMzgzZ1hZVURNS1pwWUUybFpxUXdOb1daQTlhTmExWms1K3ptenlocz0tLXp2R1VtMUtOOG1PN0tCZ1lJdmdjQ0E9PQ==--59873cb571ddbb196a9f1979a0c316718c2bc23e)
[![Dependencies](https://david-dm.org/vpdb/website.svg?style=flat-square)](https://david-dm.org/vpdb/website)This the code of the website. For the API, check out the [server project](https://github.com/vpdb/server).
## Quick Start
Since the web application is completely decoupled from the server, you can
easily run it locally and use `api.vpdb.io` as backend.You're going to need to have [Node.js](https://nodejs.org/) and
[git](https://git-scm.com/downloads) installed.1. `git clone https://github.com/vpdb/website vpdb-website`
2. `cd vpdb-website`
3. `npm install`
4. `npm run serve:dev:prod`
5. Open `http://localhost:3333` in browser.## Stack
The VPDB website uses a somewhat modernized stack of AngularJS using ES6 and
Webpack. For markup, [pug](https://pugjs.org/api/getting-started.html) is used
and [Stylus](http://stylus-lang.com/) for the styles.## Build Modes
Since the the website is separated from the server, you can choose any server
to run with. Basically, when running the website, there are two factors:1. Which backend to use
2. How to compileThere are two compilation options, `prod` and `dev`. The only difference is that
`prod` minimizes and tree-shakes the code, resulting in a smaller bundle but
longer compilation time. It also installs a service worker for pre-caching.The most common ways to build are:
| npm script | | Server | Minify |
|-------------------|-------------------------------------|------------------|--------|
| `serve:dev:local` | Development using local server | `localhost:3000` | no |
| `serve:dev:prod` | Development using production server | `api.vpdb.io` | no |
| `serve:test` | Automated tests | `localhost:7357` | yes |
| `build:prod` | Build for production site | `api.vpdb.io` | yes |
| `build:analyze` | Build and show bundle analysis | *n/a* | yes |All `serve` commands will hot-reload your code while you change files locally.
You can easily add additional server end-points by creating a new VPDB config
in the `config` folder and set the `CONFIG` environment variable accordingly.## Tests
Tests are end-to-end using [Protractor](http://www.protractortest.org) through
[Codeship](https://codeship.com/) and [BrowserStack](https://www.browserstack.com).
Test results of the latest CI run can be seen [here](https://results.vpdb.io/).
For more info about how tests and CI are set up, check [this](https://github.com/vpdb/website/tree/master/src/test).Running locally you'll need four terminals open.
- **Server**: Git clone [vpdb/server](https://github.com/vpdb/server) and install
it according to the instructions. Then run it with `npm run serve:protractor`.
- **Website**: This repo. Run `npm run serve:test` to spawn the web server.
- **Selenium**: The Selenium server running the tests. First time: `npm run selenium:init`,
then just `npm run selenium`.
- **Test runner**: Finally, execute the tests with `npm run test:local`Before tests, code is linted using [ESLint](https://eslint.org/).
## Credits
Thanks to JetBrains for their awesome IDE and support of the Open Source Community!
Then cheers to Sqreen for their excellent security services protecting our host at vpdb.io!
Finally, huge thanks to BrowserStack for offering free end-to-end testing for this project.
## License
GPLv2, see [LICENSE](LICENSE).