Class Setup
Use this page when the infrastructure already exists and the next job is preparing a specific course or cohort to use it.
Introduction
This guide walks through the basic steps an instructor may follow in order to integrate RemoteRF into their course. The instructions below assume that the RemoteRF server, and any relevant hosts, have already been set up. To complete these instructions, the instructor needs physical access to the RemoteRF server and must execute the commands listed below.
With the RemoteRF server set up and users provided access to it, little to no intervention is required from instructors throughout the course, since the platform is designed to run autonomously.
About User Groups and Enrollment Codes
User groups are mechanisms used by RemoteRF to scope access without manually configuring each student account one-by-one.
- User Groups: A user group defines the permissions and privileges of its members. It determines which SDRs are accessible to members of the group, the number of reservations each member may hold, and the duration of each reservation.
- Enrollment Codes: An enrollment code is a token that allows a student to self-enroll into a user group without you manually editing their account on the RemoteRF server.
Note: The server runs a background cleanup loop intended to prune or expire user groups and enrollment codes according to whatever expiration rules are stored in the user-group store.
Creating a User Group
The first step is to create a user group that students will be members of upon registering their RemoteRF accounts.
Each user group has a name and unique ID.
It is best practice to use a sensible name, such as EE123_F26 if the course number is EE123 and it is being offered in Fall 2026.
It is recommended that you create a unique user group for each course offering.
Creating a User Group
To initiate the process of creating a new user group, run:
groups createYou will be prompted for the following:
- group name
- devices whitelist as comma-separated device IDs
- max reservation time (sec) with default
1800 - max concurrent reservations with default
3 - group lifetime (sec) with default
0meaning forever
Example guidance: In undergraduate courses at UCLA with around 60 to 100 students, it has proven sufficient to set reservation time slots to be 30 minutes long and to allow students to hold at most 3 reservations concurrently.
Record User Group ID
To verify that the newly created group exists and to record its unique ID, run:
groups listYou will need the group_id of the user group when generating enrollment codes next.
Generating and Distributing Enrollment Codes
The next step is to generate enrollment codes for the class and then distribute them to students. Users cannot create their accounts without a valid enrollment code.
Enrollment codes are generated for a specific user group. Many enrollment codes can, and often should, be generated at once for that user group. Codes can be made single-use or valid for multiple uses.
Generate Enrollment Codes
To begin the process of generating enrollment codes, run:
codes createThis will prompt you for the following:
- how many codes to generate
- group_id of the user group to attach them to
- number of alphanumeric characters per code
- number of valid uses per code
- duration in seconds of the enrollment code’s validity
Example: Suppose you teach a class of 30 students. Best practice would be to first create a user group for that class with the desired permissions per student, then create around 45 enrollment codes rather than only 30, so extra codes can be given to students who need to create a new account upon forgetting their credentials.
Distribute Enrollment Codes to Students
Once enrollment codes have been generated, they need to be shared with students in the class. To simplify this process, the RemoteRF server can write the list of enrollment codes to a CSV file.
- Share the generated
code_namevalues with students groups csvwrites all groups to a CSV in Downloadscodes csvwrites all codes to a CSV in Downloadscodes listlets you view code and group metadata
If you create a single code with many uses, then you only need to distribute one code per class, but there is the possibility that the code is abused by a single student to create more than one RemoteRF account.
Making Modifications Mid-Course
If changes need to be made to a user group or if enrollment codes need to be deleted, follow the instructions below.
Editing User Group Permissions
To edit the permissions and privileges of an existing user group, run:
groups editAfterward, input the ID of the user group you wish to edit. You will then be prompted for optional edits such as:
- new
group_name - new
devices_whitelist - new
max_reservation_time_sec - new
max_reservations - new
lifetime_sec
This updates the existing permissions and privileges of all existing members of the user group.
Deleting a Single Enrollment Code
To revoke a single leaked code by name:
codes deleteThen choose the delete-by-name path and enter the code_name.
Deleting codes stops new enrollments via those codes. Existing members do not lose access.
Deleting All Enrollment Codes for a User Group
Use codes delete, then choose the delete-by-group flow and enter the group_id.
Deleting an Entire User Group
Remove a group entirely with:
groups deleteUsers’ accounts will not be deleted, but they will lose all permissions and access given by that user group.
Client Installation
Clients, such as students, will need a few things from administrators to begin using the platform:
- Static IP and port of the reachable RemoteRF instance
- Valid enrollment code to create an account
Refer to the client usage guide, and as the admin you will need to provide them with a populated configuration command:
remoterf --config --addr <staticIP:Port>
# Example
remoterf --config --addr 164.67.195.207:61005
remoterf -c -a 164.67.195.207:61005Along with this, each student also needs a valid enrollment code.