I developed this app because I found it frustrating to try to comment on games other players would post for review: instructions like "on move 140, black should consider e14..." are frustrating to write and to read.
GoKibitz is currently free to all users, and its code is open source.
Feature requests are welcome! Timely delivery is, of course, not guaranteed. But knowing what people would like to see is very helpful.
I'm grateful for any and all bug submissions. GoKibitz is in alpha, and I expect a lot of them.
Please have patience with me, though: I'm a one-father development shop, which means most coding gets done during naps and after bedtime.
There are two ways you can support development of GoKibitz:
- Feedback! I wrote this to help go players. If you use GoKibitz and tell me so, it's great encouragement to keep plugging away at features and bugs.
- Pull Requests: it's asking a lot to ask other developers to dive into your code and contribute, but if anyone feels especially generous, I'd welcome collaboration.
If you like GoKibitz enough to feel motivated to fix a bug or implement a new feature, I'd like to give you a virtual hug right now.
First, fork this repo on Github. Once you've got it cloned, Here's how to get set up:
Warning: I've only tested this on OS X and Ubuntu.
2. Install gulp globally:
$ npm install --global gulp
3. Install the project's npm packages:
(project directory) $ npm install
4. Start up MongoDB:
Note: If you see the following error - "
ERROR: dbpath (/data/db) does not exist," you need to create a directory path for Mongo. The following commands will help you setup the standard directory:
$ sudo mkdir -p /data/db/ $ sudo chown `id -u` /data/db
5. Create your .env file (In your project directory)
6. Run gulp to build your files:
(project directory) $ gulp default
7. Start up a local node server and gulp watcher:
(project directory) $ gulp watch
(Port named after the traditional alternating komoku opening.)
9. Create a new branch, and start working
$ git checkout -B my-bug
When you're done, just submit a pull request.
If you have any issues following these instructions, please let me know so that I can make the road smoother for others. Thanks!
If you're fixing a bug, do me a solid and create an issue and mention that you're working on it. That way I won't try to fix it while you're working.
If you're working on a feature, feel free to work on it and then unveil it to see what I think, but I'm also happy to give you feedback beforehand via an issue.
Error: listen EADDRINUSE
If you're like me and you close your laptop without shutting down your
gulp watch process, sometimes when you come back you'll close your gulp watch, but you'll still be able to access the site locally and if you try to start up
gulp watch again, you'll get an
EADDRESSINUSE error. (And you'll still get console output about requests.) Just type
killall node on a Mac (Command for Windows?) to shut down the node process and you should be able to start
gulp watch again. If anyone wants to let me know how to fix this, I'd be much obliged.
There are two kinds of tests in this project: acceptance tests (sometimes called functional or end-to-end tests) and unit tests. Acceptance tests make sure that the system is working as a whole and unit tests make sure that the logic of individual functions is correct.
Assuming you have already run
npm install you should already have links to
the binaries you need in
First you will need to get the Selenium Webdriver driver for Chrome. This is a one-time task.
Then you will need to open the webdriver-manager in a separate terminal window, terminal tab, tmux pane, etc.
In your main terminal you can run the tests with:
Note: You do not need to be running a development server, but you do need to have MongoDB running. The acceptance test starts up its own test app server that needs to connect to Mongo.
If all goes well you should see a Chrome window open briefly and you should see information about passing (and failing) tests in your terminal.
These haven't been implemented yet.