River Tech Β· Admin Guide
For administrators

Running the school side of the River Tech portal

Enrolments in, accounts opened, families connected to the right children, the roster kept honest, and the settings the whole school runs on. Fifteen screens, and the handful of decisions inside them that are hard to take back.

The dashboard

πŸ”‘ Admin in the nav bar. Everything below is reached from this one screen.

At the top, πŸ“Š Overview β€” a count of students, teachers, parents and admins, then classes, how many pupils are actually enrolled in something, and assignments. Beside it, πŸ“’ Send Announcement and πŸ“§ Email Log.

Then fifteen cards:

rivertech.me/portal/#admin-dashboard
βš™οΈ Settings
Quarters, grading, school info
πŸ‘₯ Staff & Parents
Roles & permissions
πŸ“ Students
Profiles, accounts, records
🏫 Classes
All classes & enrollments
πŸ“Š Grade Reports
By quarter & class
πŸ“‹ Attendance Reports
Search & filter records
πŸ‘ͺ Parent Link Requests
Connect parents to their children
⚠️ Student Strikes
Discipline & auto-decay
πŸ“‹ Enrollment
Applications & approvals
πŸ€ Activities
Sports & clubs management
πŸ“¦ Materials
Supply & material requests
🏒 Facilities
Room booking & scheduling
🧭 Staff Duties
Lunch, attendance, assembly, gate
πŸ”” Bell Schedule
Time blocks for periods & breaks
πŸ’° RTC Management
Currency balances & categories

The admin dashboard. None of the cards carries a waiting count.

Nothing tells you there is a queue. Parent link requests, enrolment applications, materials requests and room bookings all wait quietly β€” no card shows a number, and there is no badge in the nav. Turning on the matching email notifications in πŸ‘€ Profile is how you find out without remembering to look.

Part 1 Β· People

Getting a family from an application to a working account is three separate steps, and the portal deliberately does not join them up.

Enrolment

πŸ“‹ Enrollment. Six counters across the top β€” Families, Students, Pending, Approved, Denied, Waitlisted β€” then a filter bar (status, school year, a search that matches student name, parent name or application number) and Export CSV.

The queue is grouped by family, and children are hidden until you click. A family row reads "Whitfield Family β€” 2 student(s)" with a β–Ά marker. Click it to open the children underneath. A family with more than one child also gets Approve All and Deny All on the header row.

View opens the application in four tabs β€” Student, Family, Medical and Review. Review is where the admin notes, the buttons and the parent's typed signature live.

Approving

Two buttons, and the difference is whether the pupil can be signed in yet:

Approve (Active)

The pupil is enrolled and ready to be given a sign-in.

Approve (Inactive)

The record is created, but the pupil is not yet active β€” they can still be given a Games PIN and graded.

Either way the confirmation says exactly what it does:

"This creates their school record, medical details, waivers and the parent profile, and emails the family to say the place is confirmed. Their sign-in is opened afterwards from the roster β€” no password link goes out yet."

Afterwards you get a Still to do list, and it is the most useful thing on the screen β€” "Milo needs their account opened", "Dana needs a parent login before they can be linked". Those two jobs are the next section.

Approve All does the same thing for every child in the family, and reports the same way β€” it names them in the confirmation, emails the family, and gives you one combined Still-to-do list. It approves as active; to approve a child as inactive, use their own button instead, which the confirmation reminds you of.

Deny asks for a reason in a prompt and emails it. Waitlist and Mark Under Review ask nothing at all and act immediately.

Opening accounts

Approving creates records. It creates no logins. Opening a login is a separate, deliberate act, and it is the same modal wherever you start from.

rivertech.me/portal/#admin-users
Activate Dana Whitfieldβœ•
Address on record
dana.whitfield@example.com
The activation link goes here, and this becomes the address Dana signs in with.
dana.whitfield@example.com
βœ“ I have checked this address is right for Dana. Activating creates their login and emails them a link to set a password.
Cancel Activate and send

Example only β€” invented name and address.

The modal tells you which of three situations you are in:

  • Address on record β€” the usual case. Check it and send.
  • No usable address yet β€” the pupil signs in by PIN and the address on file is an internal placeholder with no inbox. Type the one they actually read.
  • No address on record β€” nothing can be sent. Add one first.

Staff & parents

πŸ‘₯ Staff & Parents. Four tables β€” Admins, Active Teachers, Former Teachers, Parents β€” plus βœ‰οΈ Invite Teacher at the top. Pupils are deliberately not here; every per-pupil action lives on the student hub instead.

Inviting a teacher takes an email address and, optionally, a name. Leave the name blank and the account is created as New Teacher with a machine-generated display name, so fill it in. βœ‰οΈ Reinvite on a teacher's row sends a fresh set-password link and kills any earlier one.

On a parent's row: βž• Link Child if they have a login, βœ‰οΈ Open account if they do not, and their linked children as removable pills.

A parent must have a login before they can be linked to anyone. That is why a parent with no sign-in is offered only βœ‰οΈ Open account. If you try it the other way round the portal tells you so.

The orphan sign-ins card

If it appears, read it. ⚠️ Sign-ins with no account lists addresses that can sign in and land on nothing, and they cannot fix it themselves β€” they already have a login, so registering again is refused.

Do not guess who they are. If you know whose an address is, open that person's account from the roster using that address β€” it moves the sign-in onto their record. If you do not recognise it, ask before doing anything.

πŸ‘ͺ Parent Link Requests. This is the queue a parent lands in when they do not have a link code. Each request shows who is asking, the name they typed, and either a list of possible matches or "No name match found."

Clicking a candidate asks you to confirm first, naming the parent and the child and saying what they will be able to see. A ⚠️ beside a name means that pupil is already linked to somebody, and the confirmation repeats that warning β€” two parents on one child is ordinary, but so is a mis-click on the wrong row of a list of siblings.

The faster route for a family is a link code, which you can read out over the phone. It is on every row of Student Records under Parent Code β€” click to copy. Reissuing one stops the old code working but keeps everyone already linked.

Deactivating and deleting

Almost always, deactivating is the right answer.

PersonReversible optionWhat it keeps
Teacher or adminDeactivateEverything. They stop signing in; classes and history stay. Reactivate restores it.
Student, account⊘ Deactivate AccountThe record entirely.
Student, enrolmentMark as PastGrades and attendance. Removes them from live rosters and teacher views, and issues a Games PIN if they had none.
Parentβ€” none β€”The only irreversible option on a parent row is Delete.

Delete asks twice: a full list of what goes, then a prompt where you type DELETE in capitals. Every delete that cannot be undone β€” a person, an enrolment, a whole class, an assignment with work handed in β€” uses that same two-step gate. It removes the profile, the login and every record attached β€” grades, attendance, notes, medical information, contacts and parent links β€” and unsets the teacher on any class they taught. You cannot delete yourself; your own row says "You" instead.

Part 2 Β· The roster

Student records

πŸ“ Students. Search by name or email, filter by Active / Past / All and by grade. Then βž• Add Student, Import from CSV, πŸ‘₯ Find duplicates and Manage Groups.

Eight columns, and three of them are the ones you came for:

rivertech.me/portal/#admin-student-records
NameGradeEmailStatusGames PINPickupParent CodeActions
Milo WhitfieldGrade 6milo@example.com Active K7RM ↻#14 πŸ“Œ ABCD2345 ↻Open Β· Mark as Past
Junie WhitfieldGrade 9β€” Active β€” GenerateN/A QN48PLZ2 ↻Open Β· Mark as Past

Example only β€” invented names and codes.

  • Games PIN β€” shown in plain text on purpose, because pupils forget and staff have to read it back. ↻ issues a new one and kills the old one.
  • Pickup β€” the family's pickup number. A blank here means the child cannot be called at pickup, so the gap is the point.
  • Parent Code β€” click to copy. Reissuing keeps existing links.

Mark as Past asks for a date left and an optional reason, then tells you exactly what moved β€” classes archived, attending days cleared, activities ended, grades and attendance kept.

The student hub

Open on any row. A full-screen view with the pupil's GPA and quarters in the header and twelve tabs. It is the only "view one student" screen in the portal β€” teachers reach the same hub from πŸ‘₯ My Students β†’ πŸ“‹ View Details, so what you see is what they see, less the Account tab.

TabWhat's in it
πŸ“š ClassesEnrolments, per-class grades, βž• Enroll in Class, πŸ“„ Generate Report Card.
✏️ ProfileName, grade level and enrolment type β€” admin-only fields; teachers see them greyed out. Also the Games PIN and the sign-in link.
πŸ“ RecordsFive sub-tabs: Contact Info, Emergency Contacts, Medical Info, Waivers, Grades.
πŸ“… AttendanceTheir record.
πŸ“ NotesWhat staff have written.
⚠️ StrikesCount, history and decay dates.
πŸ‘ͺ FamilyLinked parents, and Link New Parent.
πŸ’° RTCBalance and awards. Teachers can award; overriding the balance is yours.
🌳 Skill TreesProgress through the subject trees.
πŸ“ˆ Weekly ActivityWhat they did this week.
πŸ“œ Activity LogTheir history over a range you pick.
πŸ”‘ AccountSign-in, Games PIN, parent link code, enrolment β€” and the danger zone. Admins only; teachers do not see this tab.

Emergency contacts live under πŸ“ Records. Each has a Can Pickup flag, and it is ticked by default on a new contact β€” untick it deliberately for anyone who may not collect the child. Marking a contact Primary clears the flag from the others automatically.

Merging duplicates

πŸ‘₯ Find duplicates on Student Records. This exists because staff pre-add a pupil and the pupil later signs up themselves β€” the records end up on one row and the login on the other.

Two ways in:

  • Merge any two profiles β€” for the ones an exact-name match cannot spot: Ari and Arian, Sam and Samuel, a misspelling. Pick Keep this one and Remove this one.
  • Exact-name groups β€” anywhere two profiles share a name outright.

Either way you get a live preview and then a review step. Read the warnings; they are the whole value of the tool:

"The profile being removed has more records than the one being kept. Check that is what you mean."
"These have different dates of birth on file β€” they may be two different children."
"… is left over and stops working. If that is the one they use, keep the other profile instead."

The review step separates things to decide (both profiles hold a value and they disagree β€” you choose), settled without asking (only one has a value) and records that just combine. Then it asks once more, and says plainly that it cannot be undone.

Merge two at a time. A group of three will tell you to.

Strikes

⚠️ Student Strikes. Maximum three per pupil, and they decay after three months. Anyone at three appears in a red card at the top under 🚨 Students at Maximum Strikes (Review Required).

+ Strike opens a modal that shows current β†’ after and escalates its wording: first strike, second strike, then "This will be their THIRD strike and they will be flagged for review." A reason is required, and parents are emailed.

Decay is worked out when someone looks, not on a schedule. The clock restarts from the most recent strike β€” one strike clears three months after the latest one, two after six, three after nine. The roster and the pupil's record work it out the same way, so the two counts always agree.

Part 3 Β· The school

Quarters

βš™οΈ Settings β†’ πŸ“… Grading Periods β†’ πŸ“… Manage Quarters. One quarter is current; nothing works it out from today's date, so it has to be set by hand.

Setting a new current quarter snapshots the old one first, and refuses to continue if that fails. You would see "Could not save grades for the outgoing quarter, so the switch was cancelled. Nothing has changed." That is the system protecting a term's grades, not an error to work around.

The current quarter decides which assignments teachers see, what the due-date picker will accept, and which grades the gradebook is showing. If a teacher says their assignments have vanished, check this first.

Subjects and grade bands

βš™οΈ Settings β†’ Subjects & Grade Bands β†’ Edit lists. This is the school's own vocabulary, and it is editable β€” you do not need anyone to change code to add a subject.

ColumnWhat it does
SubjectThe name on the class form and the report card.
Drive groupWhich top-level Drive folder a class's work files under. Core, Tech, Arts, Life, Health β€” and Other, for the timetable blocks that are not a taught subject: study hall, props, cover.
Other namesAliases, comma separated. A class already typed in with an older spelling resolves to this row without being renamed.
Renaming a subject carries every class with it. That is the point of editing here rather than in the database: the classes and the list move together or not at all. A subject still in use by a class cannot be deleted β€” you are told no rather than left with classes pointing at nothing.
The Drive folder keeps its old name. A folder is remembered by its id, not its name, so a rename here does not rename it in Drive. If the folder name matters to anyone, rename it there too.

The second tab does the same for grade bands β€” the bands classes are assigned to, with the grades each one covers. Adding a band is how you split Highschool or add a Kindergarten band without anyone touching code.

The bell schedule

πŸ”” Bell Schedule β€” the time blocks that periods and breaks hang off. Classes show their times from here, so a class in a period with no block reads "no time set" to everybody.

Blocks can be reordered with the ↑ and ↓ buttons or sorted by time, and the screen warns about overlaps and out-of-order blocks. Staff duties can be tied to a block, and then they follow the bell β€” change the time here and the duty moves with it.

Rename, on the Every day tab, gives a block a clearer name β€” Period 5 (Lunch) β€” up to 40 characters. It renames the block on every day at once and changes only the label, never the times. Teachers see that name on the rows of their week view.

Pickup, and who is late

⚙️ Settings → 🚗 Pickup. Dismissal has always carried a real timestamp — the board shows the time each child was called, to the minute, and it keeps the first time if somebody taps twice. What this adds is the line that decides which of those times count as late.

SettingWhat it does
End of dayA pickup after this is late. School time, not the browser’s. Default 2:45 pm.
Hold the email forThe first late child starts the clock. Everyone else collected late inside that window joins the same email. Default 60 minutes.
Send it toWhere the report goes. Default learn@rivertech.me.
Email about late pickupsOff means nothing is sent. Times are still recorded either way, so you lose the email and not the record.

The email arrives once, naming each child, their number, the time they were collected and how many minutes past the cutoff that was.

Changing the time takes effect at the next pickup. The cutoff is read at the moment a child is ticked, not when the board was opened, so nobody has to reload anything.
A mistaken tick no longer costs a family a late email. Undo on the board β€” on Called today, on Here today, or by unticking on Dismissal β€” takes the child off the email that is being held, and if that leaves it empty the email is not sent at all. The toast says which happened.

The board itself is πŸš— Pickup, on the Attendance screen and on every teacher's home screen. Its search runs as you type, and a family card shows only the children today's register has in, with a line to show the rest. You also get a Without a number tab, and New family number, that teachers do not.

Children who are not called at pickup

Some walk, some drive themselves, some leave with a sibling off-site. Until now the only way to say so was to leave their family number blank — and the board reads a blank number as a job not yet done, so the children who needed no chasing were exactly the ones it kept flagging.

On a pupil’s record, beside their pickup number, there is now Not called at pickup. It asks how they leave, and that reason shows on the record afterwards. An exempt child:

  • stops counting towards Without a number, so that figure is only ever real gaps;
  • is never named in a late email, because they cannot be late for something they are not called to;
  • can still be dismissed on the board as normal — the record is unaffected.
A whole household can be marked instead of one child. Where the family is marked, the per-child button disappears, because a toggle that cannot win is worse than no toggle.

Emergency drills

🚨 Emergency drill is on the Attendance screen and every staff home screen. Any member of staff can start one, deliberately β€” whoever smells smoke should not have to find the office first. It puts one shared roll call on every staff screen, and pulls anyone already in the portal onto it within about twenty seconds. The teacher guide walks through the board.

The count to watch is unaccounted for. Children due in today with no register entry are counted separately as unknown and never as accounted for, because nobody knows whether they are in the building β€” which is also why taking the register every morning matters.

Only an administrator sees Turn off. It shows how many are still unaccounted for and unknown, then asks "Which was this?" β€” It was a test, Complete β€” all clear, or Keep it running. There is no default; pick deliberately, because that answer is saved with the drill.

Classes

🏫 Classes β€” every class in the school, not just yours. Filter by teacher, and tick to include past teachers when you are looking at history. A class shows both its teachers where there are two.

Changing who teaches a class is done from here. Only staff with a working sign-in can be assigned β€” anyone without one is listed but not selectable, because there would be nothing to attach the class to.

Attendance and reports

πŸ“‹ Attendance Reports is the school-wide view: search and filter records by date, pupil and status, and take the register from the same screen with πŸ“‹ Take Attendance.

πŸ“Š Grade Reports is by quarter and class, and is where report cards and transcripts are generated in bulk.

Report cards and transcripts open in a new tab and must be opened from the portal. They carry their data across in the browser rather than in the address, so bookmarking one shows a blank page, and so does refreshing the tab. Print or save before you reload. Print / Save PDF in the corner is the only way to keep a copy.

Everything else

ScreenWhat you do there
πŸ€ ActivitiesCreate a sport or club, assign a coach, set the season and whether it needs a tryout, and manage the roster.
πŸ“¦ MaterialsThe staff supply queue β€” pending, in progress, completed, declined.
🏒 FacilitiesRooms, and the booking queue. A room is either auto-approved or needs you.
🧭 Staff DutiesThe rota. You get a Set up tab that teachers do not β€” add a duty, add positions, fill the cells. Whoever is on duty sees it at the top of their home screen that day.
πŸ’° RTC ManagementBalances, the transaction log, categories, privileges and cosmetics; you open on Balances. Teachers only get the Bank and IRL Store tabs, and open on the IRL Store.
πŸ‘₯ Manage GroupsThe cohorts, from Student Records. Riven can also move a pupil between them β€” "move Ari from Homeschool Younger Tuesday to Homeschool Older Tuesday" β€” taking them off one register and onto the other in one step. That is admin-only.
πŸ“„ DocumentsWrite and publish school documents, with visibility set to everyone, staff only, or admin only.
πŸ“§ Email LogWhat went out, and what failed to.
πŸ“’ Send AnnouncementSchool-wide. Teachers can only announce to their own classes.

Handle with care

The short list of things that either cannot be undone or do not warn you properly. Worth reading once before you need it.

ActionWhy it's on this list
Approving a parent link request It asks first and names both people, but it cannot be undone from that screen. Read the ⚠️ marker.
βž• Link Child from a parent's row Clicking a pupil in the list links them straight away β€” there is no confirm step.
Deleting anyone, or a class Two steps β€” the list of what goes, then type DELETE β€” and then everything attached goes. Deactivate, Mark as Past or Close Class instead, nearly always.
Turning off a drill Ends it for every member of staff at once. Look at the unaccounted number it shows you first.
Merging profiles Cannot be undone. Read the date-of-birth and record-count warnings.
Waitlist / Mark Under Review Act immediately with no confirmation at all.
Regenerating a Games PIN The old one stops working straight away. Reissuing a parent code is the gentler one β€” existing links survive.
And one that is not dangerous, just confusing. A teacher who types an admin address into the bar gets a blank screen or an error rather than a polite refusal. Nothing has broken and nothing has leaked β€” the screen simply cannot fetch anything. If a teacher reports it, that is the answer.

Quick reference

I need to…Go to
Process a new familyπŸ“‹ Enrollment β†’ View β†’ Approve (Active)
Give a pupil a sign-inπŸ“ Students β†’ Open β†’ πŸ”‘ Account β†’ βœ… Activate account
Give a parent a sign-inπŸ‘₯ Staff & Parents β†’ βœ‰οΈ Open account
Connect a parent to a childπŸ‘ͺ Parent Link Requests, or read them their Parent Code
Add a teacherπŸ‘₯ Staff & Parents β†’ βœ‰οΈ Invite Teacher
Resend a set-password linkThe person's row β†’ βœ‰οΈ Reinvite / Resend invite
Tell a pupil their games PINπŸ“ Students β†’ the Games PIN column
Fix two records for one childπŸ“ Students β†’ πŸ‘₯ Find duplicates
Start a new termβš™οΈ Settings β†’ πŸ“… Manage Quarters β†’ ⭐ Set Current
Change a class's teacher🏫 Classes
Name a period "Period 5 (Lunch)"πŸ”” Bell Schedule β†’ Every day β†’ Rename
End a drillThe drill board β†’ Turn off
Fix "no time set" on a classπŸ”” Bell Schedule β€” add the missing period block
Stop someone signing in, reversiblyDeactivate, or Mark as Past for a pupil

Other guides: parents Β· students Β· teachers Β· all four