Enjoy.
This project exposes REST API as a service for the Teams attendance list analyzer model.
-
If you are interested in the ML model, please visit ms-teams-attendance-list-analyzer: a Jupyter notebook with researches on the best attendance lists analyzer model.
-
If you are looking for frontend code, visit tala-frontend.
- Create a Python 3.8 virtualenv
python3 -m venv venv
source bin/venv/activate
- Install requirements
pip install -r requirements.txt
- Run the backend
python server.py
You can now see the server up and running at http://localhost:5000/
.
Build an image and push it to Dockerhub.
docker build lparolari/tala:tala-backend-latest -f deploy/Dockerfile .
docker push lparolari/tala:tala-backend-latest
Dummy reply, should return {"hello": "world"}
if server status is ok.
$ curl http://localhost:5000
127.0.0.1 - - [20/Aug/2022 13:54:09] "GET / HTTP/1.1" 200 -
{"hello":"world"}
Return a list of outliers for each attendance list provided.
Headers
Content-Type: multipart/form-data
Query params
analysis_type
, can be eitherLeft
orJoined
. If not set,Left
is used.
Form parts
file[]
, a list of files where each file must be a well-formed MS Teams attendance list (see below).
A list of outliers for each attendance list provided.
$ curl -X post -F "file[]=@demo/test.csv" http://localhost:5000/anomalies
[
{
"estimated_robust_location":"29/03/2021 12:46:31",
"filename":"test.csv",
"outliers":[
{
"delta":"-2:40",
"participant":"Nakia Sporer"
},
{
"delta":"00:42",
"participant":"Leonor Bernhard"
},
{
"delta":"01:05",
"participant":"Dustin Pacocha"
}
]
}
]
You can download attendance lists from MS Teams, follow official instructions.
A valid MS Teams Attendance List must adhere to the following rule.
-
It is a CSV file delimited by tabs
-
It has 3 columns:
Full Name
, the participant nameUser Action
, the action user performed during the meetingTimestamp
, date and time of action performed by user
-
User Action
's values must be eitherLeft
orJoined
-
Timestamp
is formatted like3/29/2021, 12:01:32 PM
Note that a user may have more that 2 rows in the attendance list, mainly because of disconnections during meeting.
Luca Parolari
MIT