Het endorsement ding en zo
Find a file
2018-11-28 16:14:15 +01:00
templates Added add achievement field 2018-07-18 19:10:55 +02:00
.gitignore Added login, moved files, started /achievements 2018-07-12 21:37:37 +02:00
achievements.py Remove achievement when nobody endorses it 2018-11-28 16:14:15 +01:00
api.py Do merge conflicts correctly 2018-11-28 16:04:07 +01:00
app.py Added login, moved files, started /achievements 2018-07-12 21:37:37 +02:00
config.example.py Updated config.example.py 2018-07-18 18:35:15 +02:00
endorsement.py Better api and README 2018-11-28 15:02:38 +01:00
login.py Added possibility to add achievements 2018-07-12 22:09:10 +02:00
models.py Changes for Herbert 2018-11-28 14:24:32 +01:00
passenger_wsgi.py Changes for Herbert 2018-11-28 14:24:32 +01:00
README.md Better api and README 2018-11-28 15:02:38 +01:00
requirements.txt Added svg graphviz rendering 2018-11-28 16:01:48 +01:00
run_dev.sh Changes for Herbert 2018-11-28 14:24:32 +01:00
setup_db.py Changes for Herbert 2018-11-28 14:24:32 +01:00
user.py Better api and README 2018-11-28 15:02:38 +01:00
zeus.py Added possibility to add achievements 2018-07-12 22:09:10 +02:00

Endorsement

Zoals besproken op de eerste bestuursvergadering.

! Beware: ux is nog verschrikkelijk lelijk, functioneel werkt het wel

Endpoints

Geen authenticatie

  • /users: Overzicht van alle users (default)
  • /users/<username>: Achievements van de user username
  • /login en /logout: Laat de user aan- en afmelden
  • /achievement/<id>: Een specifieke achievement

Enkel bereikbaar na aanmelden

  • /users/<username>/addachievement?name=XYZ: Maakt een nieuw achievement aan bij username met naam XYZ en laat de ingelogde persoon endorsen
  • /achievement/<id>/endorse: Voegt de ingelogde persoon toe aan endorsed_by van achievement id
  • /achievement/<id>/unendorse: Verwijdert de ingelogde persoon van endorsed_by van achievement id

DB model

User

name type nullable uniek beschrijving
id String(80) False True de username

Achievement

name type nullable uniek beschrijving
id Integer False True unieke id
name String(128) False False beschrijving van de achievement
achieved_by FK -> user.id False False wie de achievement gehaald heeft

Endorses

Relatie tussen User en Achievement

API

/api/users

Returnt een lijst van strings (usernames)

/api/achievements

Return een lijst van Achievement-objecten

Achievement-object:

{
    id: number -> Unieke id
    name: String -> Naam van het achievement
    endorsed_by: [String] -> Lijst van User-ids die deze achievement endorsen
    achieved_by: String -> User-id van de persoon die dit achievement gehaald heeft
}

/api/all

Returnt een lijst van User-objecten

User-object

{
    id: String -> Username
    achievement: [Achievement] -> Lijst met achievements van deze persoon
}