edemo / pdengine Goto Github PK
View Code? Open in Web Editor NEWvoting engine using ADA authentication and condorcet method
License: Other
voting engine using ADA authentication and condorcet method
License: Other
Behaviour: Manage votes/modify vote; vote invariants
@tested_feature("Manage votes")
@tested_operation("modify vote")
@tested_behaviour("vote invariants")
the following vote parameters are invariant:
Behaviour: Manage votes/delete vote; deletes the vote with all parameters, choices, ballots and votes cast
@tested_feature("Manage votes")
@tested_operation("delete vote")
@tested_behaviour("deletes the vote with all parameters, choices, ballots and votes cast")
Behaviour: Manage votes/set vote parameters; vote invariants
@tested_feature("Manage votes")
@tested_operation("set vote parameters")
@tested_behaviour("vote invariants")
the following vote parameters are invariant:
I, as a voter want to have means to make sure that my vote is indeed correctly accounted for.
Behaviour: Manage votes/set vote parameters; validates inputs
@tested_feature("Manage votes")
@tested_operation("set vote parameters")
@tested_behaviour("validates inputs")
String voteId: id of existing vote
String adminKey: same as vote's adminKey
String newstage: one of "created",
Behaviour: Manage votes/create vote; returns an unique vote id for reference and administrator key for vote management
@tested_feature("Manage votes")
@tested_operation("create vote")
@tested_behaviour("returns an unique vote id for reference and administrator key for vote management")
Online games and illustrative figures can tell me what it is and how it works (with drag&drop UI, gamification)
http://likvid-demokracia.blogspot.hu/
listing new/modified testcases in commit log
Behaviour: Manage votes/create vote; The vote initially can only be modified with the adminkey
@tested_feature("Manage votes")
@tested_operation("create vote")
@tested_behaviour("The vote initially can only be modified with the adminkey")
The fields describing what can be done with the vote are the following:
canAddIn: False ;users can add in without the adminKey
canEndorse: False ;users can endorse choices
canVote: False; users can vote
canView: False; users can view the vote result
Behaviour: Manage votes/Add choice; validates inputs
@tested_feature("Manage votes")
@tested_operation("Add choice")
@tested_behaviour("validates inputs")
String voteId: id of existing vote
String adminKey: same as vote's adminKey, or "user"
String choiceId: id of existing choice in the vote with voteid
Behaviour: Manage votes/modify choice; if "user" is used as adminKey, then the user must be the one who added the choice and canAddIn be true
@tested_feature("Manage votes")
@tested_operation("modify choice")
@tested_behaviour("if "user" is used as adminKey, then the user must be the one who added the choice and canAddIn be true")
Behaviour: Manage votes/modify vote; validates inputs
@tested_feature("Manage votes")
@tested_operation("modify vote")
@tested_behaviour("validates inputs")
String voteId: id of existing vote
String adminKey: same as vote's adminKey
String votename: for length and characters contained
measure coverage change since previous commit as well
Behaviour: Manage votes/show vote; returns the vote in json
@tested_feature("Manage votes")
@tested_operation("show vote")
@tested_behaviour("returns the vote in json")
containing
does not contain adminKey
Behaviour: Manage votes/Add choice; returns a unique choice id
@tested_feature("Manage votes")
@tested_operation("Add choice")
@tested_behaviour("returns a unique choice id")
Behaviour: Manage votes/Add choice; registers the user with the choice
@tested_feature("Manage votes")
@tested_operation("Add choice")
@tested_behaviour("registers the user with the choice")
If no user, then None is registered
Behaviour: Manage votes/create vote; Creates a vote
@tested_feature("Manage votes")
@tested_operation("create vote")
@tested_behaviour("Creates a vote")
A new vote appears in the database, with needed- and countedAssurances, isClosed, vote id, creation time (unix time), minEndorsements and admin key.
Behaviour: Manage votes/show vote; if adminKey is anon, the user should have any of the countedAssurances
@tested_feature("Manage votes")
@tested_operation("show vote")
@tested_behaviour("if adminKey is anon, the user should have any of the countedAssurances")
Behaviour: Manage votes/modify choice; modifies the string of the choice
@tested_feature("Manage votes")
@tested_operation("modify choice")
@tested_behaviour("modifies the string of the choice")
Behaviour: Manage votes/create vote; formally validates all inputs
@tested_feature("Manage votes")
@tested_operation("create vote")
@tested_behaviour("formally validates all inputs")
String votename: for length and characters contained
List<String> neededAssurances: for length and characters contained. no empty string. can be empty. no two strings are the same
List<String> countedAssurances: for length and characters contained. can be empty string. no two strings are the same. nonempty
bool private: true or false
such that
Behaviour: Manage votes/create vote; vote invariants
@tested_feature("Manage votes")
@tested_operation("create vote")
@tested_behaviour("vote invariants")
the following vote parameters are invariant:
Kedden beszéljük át.
Vida Zoltán
Vida Zoltán Árpi, lehet, hogy én rosszul nézem, vagy túlzott követelményeim vannak, de szerintem volt is róla szó, hogy a Vote-okat nem törölnénk a delete során, csak inaktiválnánk őket. Különben utána nem lesz mit kiértékelni.
Tetszik · Válasz · 12 perce
Árpád Magosányi
Árpád Magosányi Beszéljük meg, úgy is lehet. De az miért nem elég, ha az ember utolsó érvényesen leadott szavazata szerepel az adatbázisban?
Tetszik · Válasz · 10 perce
Árpád Magosányi
Árpád Magosányi Vagy erre gondolsz: http://adadocs.demokracia.rulez.org/PDEn.../edemo/master/... ?
Jogos, hogy a már elkezdett szavazást ne lehessen törölni.
Tetszik · Válasz · 8 perce
Vida Zoltán
Vida Zoltán Ha valami kavarás van, akkor legalább megtudjható, mikor és milyen választókat érintett. Pl. ha Hupikék párt elrendeli,hogy az ő támogatói lépjenek vissza, akkor ezt ki lehet mutatni, mennyire mentek utánuk a szavazóik.
Tetszik · Válasz · 3 perce
Behaviour: Manage votes/delete choice; validates inputs
@tested_feature("Manage votes")
@tested_operation("delete choice")
@tested_behaviour("validates inputs")
String voteId: id of existing vote
String adminKey: same as vote's adminKey, or "user"
String choiceId: id of existing choice in the vote with voteid
Behaviour: Manage votes/delete vote; validate inputs
@tested_feature("Manage votes")
@tested_operation("delete vote")
@tested_behaviour("validate inputs")
String voteId: id of existing vote
String adminKey: same as vote's adminKey
after build the "tests" és "coverage" report of shippable should show the relevant data
Behaviour: Manage votes/show vote; validates inputs
@tested_feature("Manage votes")
@tested_operation("show vote")
@tested_behaviour("validates inputs")
String voteId: id of existing vote
String adminKey: same as vote's adminKey for private votes, "anon" for public ones
Behaviour: Manage votes/delete choice; deletes the choice
@tested_feature("Manage votes")
@tested_operation("delete choice")
@tested_behaviour("deletes the choice")
Behaviour: Manage votes/Add choice; registers the choice with the vote
@tested_feature("Manage votes")
@tested_operation("Add choice")
@tested_behaviour("registers the choice with the vote")
Behaviour: Manage votes/delete choice; if "user" is used as adminKey, then the user must be the one who added the choice and canAddIn be true
@tested_feature("Manage votes")
@tested_operation("delete choice")
@tested_behaviour("if "user" is used as adminKey, then the user must be the one who added the choice and canAddIn be true")
Behaviour: Manage votes/Obtain ballot; creates a new ballot with an id for the vote
@tested_feature("Manage votes")
@tested_operation("Obtain ballot")
@tested_behaviour("creates a new ballot with an id for the vote")
an xml and html generated from that
the behaviours are documented with all the testcase names testing that behaviour converted to english sentences
Behaviour: Manage votes/Obtain ballot; vote invariants
@tested_feature("Manage votes")
@tested_operation("Obtain ballot")
@tested_behaviour("vote invariants")
the following vote parameters are invariant:
Behaviour: Manage votes/modify vote; updates vote title
@tested_feature("Manage votes")
@tested_operation("modify vote")
@tested_behaviour("updates vote title")
No other vote parameters are changed
Behaviour: Manage votes/modify choice; validates inputs
@tested_feature("Manage votes")
@tested_operation("modify choice")
@tested_behaviour("validates inputs")
String voteId: id of existing vote
String adminKey: same as vote's adminKey, or "user"
String choiceId: id of existing choice in the vote with voteid
Behaviour: Manage votes/set vote parameters; sets the parameters of the vote
@tested_feature("Manage votes")
@tested_operation("set vote parameters")
@tested_behaviour("sets the parameters of the vote")
Deviation in model
depends #17
I, as a voter want to have means to check that the vote is correctly tallied.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.