Add ability to concede vote and update debug sites Signed-off-by: Armand Kamffer armandk@discovery.co.za
Add ability to concede vote and update debug sites
Signed-off-by: Armand Kamffer armandk@discovery.co.za
This is the backend companion for Mamba iOS
The Mamba project allows a user to host or join a Story Point Planning session and vote on a story.
To get a local copy up and running follow these simple example steps.
brew install vapor
git clone https://github.com/Operation-Winter/mamba-ios.git
Build package:
swift build
Test package:
swift test
Update or resolve package dependencies:
swift package update
To run the container:
docker-compose up
Commands are sent between the backend and any front-end application using WebSockets. A command is sent in the following structure:
{ "uuid": "<Front-End UUID>", "type": "<Command identifier>", "message": {} //Contains the message body structure as specified below or null }
START_SESSION
{ "sessionName": "Example session", "availableCards": [ "ZERO", "ONE", "TWO", "THREE", "FIVE", "EIGHT", "THIRTEEN", "TWENTY", "FOURTY", "HUNDRED", "QUESTION" ], "autoCompleteVoting": true, "tags": ["iOS", "Android"], "password": "Bacon", // optional }
}
ADD_TICKET
VOTING
{ "title": "DM-10000", "description": "Blah blah", "selectedTags":["iOS", "Android"] }
SKIP_VOTE
{ "participantId": "" }
REMOVE_PARTICIPANT
END_SESSION
FINISH_VOTING
VOTING_FINISHED
REVOTE
RECONNECT
EDIT_TICKET
ADD_TIMER
{ "time":2 }
CANCEL_TIMER
PREVIOUS_TICKETS
REQUEST_COFFEE_BREAK
NONE_STATE
{ "participants":[ { "name":"Armand", "participantId":"852ACB12-4B40-4BC2-B72B-17057A1A5AE9" } ], "availableCards":[ "ZERO", "ONE", "TWO", "THREE", "FIVE", "EIGHT", "THIRTEEN", "TWENTY", "FOURTY", "HUNDRED", "QUESTION" ], "sessionCode":"000000", "sessionName":"Test" }
VOTING_STATE
{ "participants":[ { "name":"Armand", "participantId":"852ACB12-4B40-4BC2-B72B-17057A1A5AE9" }, { "name":"Piet", "participantId":"34ED510B-B21D-423E-83D0-B85747F4D515" } ], "ticket":{ "title":"Test", "ticketVotes":[ { "participantId":"852ACB12-4B40-4BC2-B72B-17057A1A5AE9", "selectedCard":"FIVE", "tag":"iOS" } ], "description":"Test" }, "availableCards":[ "ZERO", "ONE", "TWO", "THREE", "FIVE", "EIGHT", "THIRTEEN", "TWENTY", "FOURTY", "HUNDRED", "QUESTION" ], "sessionCode":"000000", "sessionName":"Test" }
FINISHED_STATE
{ "participants":[ { "name":"Armand", "participantId":"852ACB12-4B40-4BC2-B72B-17057A1A5AE9" }, { "name":"Piet", "participantId":"34ED510B-B21D-423E-83D0-B85747F4D515" } ], "ticket":{ "title":"Test", "ticketVotes":[ { "participantId":"852ACB12-4B40-4BC2-B72B-17057A1A5AE9", "selectedCard":"FIVE" "tag":"iOS" }, { "participantId":"34ED510B-B21D-423E-83D0-B85747F4D515", "selectedCard":null, //Indicates that this vote is skipped "tag":null } ], "description":"Test" }, "availableCards":[ "ZERO", "ONE", "TWO", "THREE", "FIVE", "EIGHT", "THIRTEEN", "TWENTY", "FOURTY", "HUNDRED", "QUESTION" ], "sessionCode":"000000", "sessionName":"Test" }
INVALID_COMMAND
{ "code":"0000", "description":"No session code has been specified" }
{ "previousTickets":[ { "title":"Test", "ticketVotes":[ { "participantId":"D520EFDD-C4BD-450B-9531-30E404B77D0F", "selectedCard":"FIVE", "tag":"iOS" } ], "description":"" } ] }
SESSION_IDLE_TIMEOUT
JOIN_SESSION
{ "participantName":"Armand", "sessionCode":"545544", "password":"Bacon" //optional }
VOTE
{ "selectedCard":"ONE", "tag":"iOS" }
LEAVE_SESSION
CHANGE_NAME
{ "name":"TestName" }
{ "participants":[ { "name":"Armand", "participantId":"852ACB12-4B40-4BC2-B72B-17057A1A5AE9" }, { "name":"Piet", "participantId":"34ED510B-B21D-423E-83D0-B85747F4D515" } ], "ticket":{ "title":"Test", "ticketVotes":[ { "participantId":"852ACB12-4B40-4BC2-B72B-17057A1A5AE9", "selectedCard":"FIVE", "tag":"iOS" }, { "participantId":"34ED510B-B21D-423E-83D0-B85747F4D515", "selectedCard":null, //Indicates that this vote is skipped "tag": null } ], "description":"Test" }, "availableCards":[ "ZERO", "ONE", "TWO", "THREE", "FIVE", "EIGHT", "THIRTEEN", "TWENTY", "FOURTY", "HUNDRED", "QUESTION" ], "sessionCode":"000000", "sessionName":"Test" }
INVALID_SESSION
{ "password":"Bacon", "sessionCode":"545544" }
{ "participants":[ { "name":"Armand", "participantId":"852ACB12-4B40-4BC2-B72B-17057A1A5AE9" }, { "name":"Piet", "participantId":"34ED510B-B21D-423E-83D0-B85747F4D515" } ], "ticket":{ "title":"Test", "ticketVotes":[ { "participantId":"852ACB12-4B40-4BC2-B72B-17057A1A5AE9", "selectedCard":"FIVE", "tag":"iOS" }, { "participantId":"34ED510B-B21D-423E-83D0-B85747F4D515", "selectedCard":null, //Indicates that this vote is skipped "tag":null } ], "description":"Test" }, "availableCards":[ "ZERO", "ONE", "TWO", "THREE", "FIVE", "EIGHT", "THIRTEEN", "TWENTY", "FOURTY", "HUNDRED", "QUESTION" ], "sessionCode":"000000", "sessionName":"Test" }
0001
0000
0002
0003
0004
0005
0006
0007
White lines indicate completed features.
Distributed under the MIT License. See LICENSE for more information.
LICENSE
Armand Kamffer - @Armgame - kamffer1@gmail.com
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
mamba-backend-vapor
Table of Contents
About The Project
Description
This is the backend companion for Mamba iOS
The Mamba project allows a user to host or join a Story Point Planning session and vote on a story.
Built With
Getting Started
To get a local copy up and running follow these simple example steps.
Prerequisites
Installation
Usage
Swift Package Manager
Build package:
Test package:
Update or resolve package dependencies:
Docker
To run the container:
Commands
Commands are sent between the backend and any front-end application using WebSockets. A command is sent in the following structure:
Planning Sequence Diagram
Planning Host
Client to server
VOTING
VOTING
toVOTING_FINISHED
VOTING_FINISHED
state revote the current ticketServer to client
Planning Join
Client to server
Server to client
Planning Spectate
Client to server
Server to client
Error codes
Invalid Session
0001
: The specified session code doesn’t exist or the password provided is invalid.Invalid Command
0000
: No session code has been specified.0002
: The command doesn’t exist.0003
: The server has run out of capacity, could not create a new planning session.0004
: Invalid identifier.0005
: Invalid parameters.0006
: Invalid state.Session timeout
0007
: Session idle timeoutRoadmap
White lines indicate completed features.
License
Distributed under the MIT License. See
LICENSE
for more information.Contact
Armand Kamffer - @Armgame - kamffer1@gmail.com