27a571328b | ||
---|---|---|
api | ||
client | ||
config | ||
migrations | ||
public | ||
server | ||
shared | ||
test | ||
.gitignore | ||
.nodemonignore | ||
Capfile | ||
Gemfile | ||
Gemfile.lock | ||
Gruntfile.coffee | ||
LICENSE | ||
Makefile | ||
README.md | ||
Vagrantfile | ||
assets.coffee | ||
aws_config.json | ||
aws_config.json.example | ||
bootstrap.sh | ||
icomoon-selection.json | ||
index.coffee | ||
node_modules.tar.gz | ||
nodetime.json | ||
npm-shrinkwrap.json | ||
package.json | ||
start.js |
README.md
pokebattle-sim
A competitive Pokemon battle simulator playable in the browser.
Set up
Installation
git clone git://github.com/sarenji/pokebattle-sim.git
cd pokebattle-sim
npm install
Next, you need to install two dependencies: redis and PostgreSQL 9.1.
Redis
On Mac OS X with homebrew, you can do:
brew install redis
On Windows, there is a Redis port that works fairly well: https://github.com/rgl/redis/downloads
PostgreSQL
PostgreSQL has installable versions for every major OS. In particular, for Mac OS X, there is Postgres.app.
When you install PostgreSQL, you should create a database for pokebattle, called pokebattle_sim
. You can do this two ways:
# command-line:
$ createdb pokebattle_sim
# or via SQL client:
CREATE DATABASE pokebattle_sim;
Next, you must migrate the database. Simply run:
npm install -g knex
knex migrate:latest
If you get an error complaining that the postgres
role doesn't exist, run this: createuser -s -r postgres
.
Run server
We use Grunt to handle our development. First, you must npm install -g grunt-cli
to get the grunt runner. Then you can type
grunt
to automatically compile all client-side files and run nodemon
for you.
We also support Vagrant if you are on a Windows machine and so desire.
Run tests
npm test
# or
npm install -g mocha
mocha
Or if you're in the Vagrant VM, you can just run
mocha
Deployment
First, you must get SSH access to the server. Then, to deploy:
cap staging deploy
# test on staging
cap production deploy
Guide
pokebattle-sim is a one-page app. The server serves the client.
api/ Hosts the code for the API that we host.
client/ Main client code. Contains JS and CSS.
config/ For Capistrano and deployment.
public/ Public-facing dir. Generated files, fonts, images.
server/ Server, battle, move, Pokemon logic, etc.
shared/ Files shared between server and client.
test/ Automated tests for server and client.
views/ All views that are rendered server-side go here.
Gruntfile.coffee Contains all tasks for pokebattle-sim, like compiling.
start.js The main entry point of pokebattle-sim.
Contributing
All contributions to the simulator logic must come with tests. If a contribution does not come with a test that fails before your contribution and passes after, your contribution will be rejected.
Other contributions (e.g. to the client) are much less strict!
Issues
Report issues in GitHub's issue tracker.