SELab-2 / UGent-6

MIT License
2 stars 0 forks source link

Project API Changes #149

Closed usserwoutV2 closed 6 months ago

usserwoutV2 commented 6 months ago

API dog is nog niet aangepast

Route: /projects/{projectid}

API dog: https://app.apidog.com/link/project/467959/apis/api-5723844

{
    course: {
      name: string
      url: string
      courseId: number
    },
    deadline: string
    description: string
    projectId: number
    name: string
    submission_url: string
    tests_url: string
    maxScore:number,
    state: "completed" | "notStarted" | "failed" // geeft aan of je groep dit project al ingediend heeft en al dan niet alle testen slagen 

    progress: {
        usersCompleted: number // Hoeveel groepen klaar zijn met de opdracht
        userCount: number,           // Hoeveel groepen er in het totaal zijn
     }
  }

course object is handing om alle projecten te tonen in een lijst. progress wordt gebruikt om zoals in dodona weer te geven hoeveel mensen er al klaar zijn.

Route: /courses/{courseid}/projects

API route: https://app.apidog.com/link/project/467959/apis/api-5723840 Zelfde als hierboven maar dan een array

Aqua-sc commented 6 months ago

Geimplementeerd zoals hierboven besproken, enkel state heb ik overgelaten aangezien dit niet altijd kan (bv. als een prof dit opvraagt, indien je dit toch graag zou hebben kan ik het wel toevoegen en dan gewoon leeglaten als het niet van toepassing is). Ook hier heb ik '_' vermeden in de namen:

[
    {
        "course": {
            "name": "Math 101",
            "url": "/api/courses/1",
            "courseId": 1
        },
        "deadline": "2024-03-20T08:00:00.000+00:00",
        "description": "Solve equations",
        "projectId": 1,
        "name": "Math project 1",
        "submissionUrl": "/api/projects/1/submissions", // Indien een user dit opvraagt zal er nog een '/groupId' toegevoegd worden, dit is dan de link voor de submissions van die groep
        "testUrl": "/api/tests/1",
        "maxScore": 20,
        "visible": false,
        "progress": {
            "completed": 1,
            "total": 1
        }
    }
]