# Users

Every user has the following properties when created or mass-uploaded:

* `role` (string of up to 100 characters) - only present when adding a single user
* `name` - **unique** username used for login (string, up to 100 characters)
* `password` (string, up to 100 characters)
* `contest` (string, up to 100 characters)
* `category` - name of subcompetition (string, up to 100 characters)
* `display_name` - the name of the user (string, up to 100 characters)
* `grade` - school grade (string, up to 100 characters)
* `country` (string, up to 100 characters)
* `city` (string, up to 100 characters)
* `school` (string, up to 100 characters)
* `gender` (string, up to 5 characters, default is "1")
* `place` - can be used for team name (string, up to 100 characters)
* `type` (string, up to 100 characters)
* `extra_info` (string, up to 100 characters)
* monitoring (string of 3 characters, either 0 or 1 which require the user to share screen, share camera and have no internet access, respectively; default is 000)

Additionally, the following properties can be modified for every user:

* `max_ips` - maximum number of different IPs that the user can log in from (default is 100)
* `ips` - saved login IPs (string, up to 1000 characters, describing the IPs as comma-separated values)
* `extra_time` - number of additional seconds (for competitors only, default is 0)
* `finished` - boolean value indicating if the competitor has finished

Users may have the following roles:

* USER - intended for basic users that are competitors
* ADMIN - role with full access
* AUTHOR - role for task authors/testers and competition supervisors/testers
* SPECTATOR - role for spectating contest standings, the names of the competitions that can be spectated are comma-separated in `contest` field
* PROCTOR - role for proctoring contests (see screen and camera recordings of users), the names of the competitions that can be proctored are comma-separated in `contest`

Users may have the following types:

* official/unofficial (for competitors)
* online (for competitors)
* supervisor/tester/spectator (for authors) - supervise/test/spectate all competitions

`Type` field can contain multiple types, separated by commas.

Users can be added one by one and also mass uploaded. For mass upload of users, a .csv file must be created with a header row and descriptions of the fields (optionally including only some of the fields). Then, the file is uploaded and the numbers of the corresponding columns are filled out in the following way:

<figure><img src="https://3579146298-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGJuHz6kENKZgesQS4KqK%2Fuploads%2F7Mh8IsMNq8LvRAVYG7C3%2FScreenshot%202025-01-14%20113728.png?alt=media&#x26;token=c6859141-bac8-40dd-91ed-47940dc84bd3" alt=""><figcaption></figcaption></figure>

The system will only add users with new usernames. Also, their `role` will be set to USER.

