Time-planner-scheduling server
March 12, 2024 · View on GitHub
Deploy
docker build -t time-planner-scheduling .
docker image tag time-planner-scheduling europe-central2-docker.pkg.dev/time-planner-dc611/time-planner-server/scheduling
docker image push europe-central2-docker.pkg.dev/time-planner-dc611/time-planner-server/scheduling
Run
Run container
docker run --rm -it -p 8082:8082 time-planner-scheduling
Run tests
python3 -m unittest tests.test_model.TestCalculations
Start dev server
python3 src.main.py
Start prod server
gunicorn -w 2 src.main:app -b 0.0.0.0:8082
API
http://localhost:8082/v1/scheduleTasks
Example request body:
{
"tasks": [
{
"id": "B1",
"name": "Naprawić buga w feature A",
"projectId": "B",
"priority": 4,
"startTime": null,
"duration": 3
},
{
"id": "B2",
"name": "Testy jednostkowe do feature A",
"projectId": "B",
"priority": 3,
"startTime": null,
"duration": 3
},
{
"id": "B3",
"name": "Przeanalizować wymagania do feature X",
"projectId": "B",
"priority": 1,
"startTime": null,
"duration": 2
},
{
"id": "C1",
"name": "Bieganie",
"projectId": "C",
"priority": 3,
"startTime": null,
"duration": 1
},
{
"id": "C2",
"name": "Czytanie",
"projectId": "C",
"priority": 2,
"startTime": null,
"duration": 0
},
{
"id": "C3",
"name": "Pianino",
"projectId": "C",
"priority": 1,
"startTime": null,
"duration": 1
},
{
"id": "A1",
"name": "Odkurzyć",
"projectId": "A",
"priority": 1,
"startTime": null,
"duration": 0
},
{
"id": "A2",
"name": "Duże zakupy",
"projectId": "A",
"priority": 2,
"startTime": null,
"duration": 1
},
{
"id": "A3",
"name": "Wizyta internista",
"projectId": "A",
"priority": 4,
"startTime": 12.0,
"duration": 1
},
{
"id": "A4",
"name": "Przygotować obiad na kolejne dni",
"projectId": "A",
"priority": 2,
"startTime": null,
"duration": 1
},
{
"id": "D1",
"name": "Medytacja",
"projectId": "D",
"priority": 3,
"startTime": null,
"duration": 0
},
{
"id": "D2",
"name": "Spacer",
"projectId": "D",
"priority": 2,
"startTime": null,
"duration": 0
}
],
"projects": [
{
"timeRangeStart": 8.0,
"timeRangeEnd": 10.0,
"id": "D",
"name": "morning"
},
{
"timeRangeStart": 0.0,
"timeRangeEnd": 24.0,
"id": "A",
"name": "default"
},
{
"timeRangeStart": 9.0,
"timeRangeEnd": 17.0,
"id": "B",
"name": "work"
},
{
"timeRangeStart": 17.0,
"timeRangeEnd": 22.0,
"id": "C",
"name": "hobby"
}
],
"bannedRanges": [
{
"timeRangeStart": 0.0,
"timeRangeEnd": 8.0,
"id": "R1"
},
{
"timeRangeStart": 22.0,
"timeRangeEnd": 24.0,
"id": "R2"
}
]
}