Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • wilsonba/polling-server-ia-04
  • gvandevi/ia04binome2a
2 results
Show changes
# Serveur de vote Rest en Go
Le serveur permet de créer des scrutins suivants plusieures méthodes de vote.
Les votants peuvent faire des requêtes pour voter dans les scrutins qui le concernent
Toutes les requêtes doivent suivre la norme suivante : https://gitlab.utc.fr/lagruesy/ia04/-/blob/main/docs/sujets/activit%C3%A9s/serveur-vote/api.md
2 exécutables (indépendants) sont fournis :
* `launch-bagt` permet de lancer un agent de type serveur de vote
* `launch-vagt` permet de lancer un agent de type votant
Il est possible d'avoir accès à ces commandes en les installant ainsi :
`go install gitlab.utc.fr/gvandevi/ia04binome2a/cmd/launch-bagt`
Méthodes de vote implémentées :
* Majorité
* Approval
* Borda
* Copeland
* STV
Agents implémentés :
* Serveur
* Votants (paramètres à modifier en fonction du scrutin créé auprès du serveur)
\ No newline at end of file
package ia04binome2a
type BallotRequest struct {
Rule string `json:"rule"`
Deadline string `json:"deadline"`
VotersID []string `json:"voters-id"`
NbAlts int `json:"#alts"`
TieBreak []int `json:"tie-break"`
}
type Vote struct {
AgentID string `json:"agent-id"`
BallotID string `json:"ballot-id"`
Prefs []int `json:"prefs"`
Options []int `json:"options"`
}
type Ballot struct {
BallotID string `json:"ballot-id"`
}
type ResultResponse struct {
Winner int `json:"winner"`
Ranking []int `json:"ranking"`
}
type Request interface {
BallotRequest | Ballot | Vote
}