https://github.com/cschmidt/tic-tac-toe-api
https://github.com/cschmidt/tic-tac-toe-api
serverless
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/cschmidt/tic-tac-toe-api
- Owner: cschmidt
- Created: 2018-09-28T20:07:16.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-03-02T08:52:57.000Z (over 3 years ago)
- Last Synced: 2025-11-23T14:06:14.388Z (7 months ago)
- Topics: serverless
- Language: JavaScript
- Size: 1.74 MB
- Stars: 0
- Watchers: 0
- Forks: 1
- Open Issues: 22
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# tic-tac-toe-api
[](https://gitter.im/tic-tac-toe-api/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

Well hello!
This is a personal project I've been working on, just exploring what's possible
with serverless (just happen to be using Serverless Framework) and heavily
asynchronous approaches.
Eventually I'll split this module into two; one that's specific to Tic Tac Toe
functionality, and then one for the "framework" portions (assuming there's any
significant value in said framework).
## Running
As a personal project, I've not put much effort into making this deployable by
others (yet), but it goes something like this:
* Set yourself up with an AWS account and the command line tools
* [Install Servless ](https://serverless.com/framework/docs/getting-started/)
* (somehow solve resource naming conflicts in serverless.yml)
* Run `$ serverless deploy`. You should see a bunch of output that looks
something like this:
```
Serverless: Stack update finished...
Service Information
service: tic-tac-toe-api
stage: dev
region: us-west-2
stack: tic-tac-toe-api-dev
resources: 41
api keys:
None
endpoints:
GET - https://u6d07hxpr6.execute-api.us-west-2.amazonaws.com/dev/sample
wss://38t51ncco1.execute-api.us-west-2.amazonaws.com/dev
functions:
Sample: tic-tac-toe-api-dev-Sample
Sessions: tic-tac-toe-api-dev-Sessions
CommandReceiver: tic-tac-toe-api-dev-CommandReceiver
CommandProcessor: tic-tac-toe-api-dev-CommandProcessor
EventDispatch: tic-tac-toe-api-dev-EventDispatch
layers:
None
```
* Note the websockets URL under "endpoints" and run `wscat -c [wss endpoint]`
* You can then start a new game:
```
> {"commands":[{"start_game": {}}]}
```
If everything's working as expected, you should get a `game_started` event
returned to you. Make note of the game id.
* You can make a move with:
```
> {"commands":[{"make_move": {"game_id": "[game id from game_started]", "square": "a1", "mark": "X", "move_number": 1}}]}
```