Skip to main content

What's new in CyberFaCES

Every feature and improvement we have shipped, newest first. Jump to a month, or filter by the part of the site you care about.

January 2025 – September 2026 · 93 updates

September 2026

A completion rule for every material, and uploads that no longer stop at 100 KB

Set what it takes to complete each material

Whoever builds a module now chooses, material by material, what counts as finishing it: opening it, keeping it open for a set number of seconds, or the learner marking it done.

Courses Open the course builder

Videos play without error pop-ups

A video whose progress could not be recorded raised an error dialog every two seconds while it played. It now plays quietly and records what it can.

Courses

Mark a material complete, and see how many are left

Materials you finish yourself now carry a Mark complete button, and a module shows how many of its materials you have done.

Courses Open your dashboard

Uploads accept the full size they advertise

The 100 MB limit was applied as 100 KB, so almost any real file was refused. Limits are now in MB: 100 for documents, 200 for audio and video, 10 for images.

Media

More file types accepted, and a reason when one is not

Uploads no longer have to match a fixed list, so archives and notebooks go through. Programs and scripts are refused, naming the file and why.

Media

A one-line description on every material

Materials now carry a short description shown beside the title in the list, so a row says what the thing is rather than just "week1.pdf".

Courses

Audio length and file size in materials lists

Uploaded audio now reports its length, files show their size, and a long recording reads "1 hour, 20 minutes" rather than being cut to "1 hour".

Courses

August 2026

A rebuilt dashboard, quiz results you can rely on, and a way to test out of a pre-requisite

A dashboard that shows where you left off

Your learning home now opens with where you stand — not started, under way, finished — followed by the modules you have opened but not finished, so you can pick straight back up.

Courses Open your dashboard

Jump to any part of a course from the sidebar

The sidebar now shows the whole course — every module, section and item — so material elsewhere in it is one click away, instead of going up and back down.

Courses

A way back out of course material

Material, quiz and score pages now open with a Back button at the top of the sidebar, returning you to the module or course you came from.

Courses

Full titles in the breadcrumb trail

Names in the trail at the top of the page were cut off at 30 characters, sometimes mid-word. They now appear in full.

Courses

Open a community's public page from its dashboard

The community name at the top of the manager dashboard is now a link to its public page, so you can see what visitors see.

Communities Browse communities

See how your learners are getting on

One row per learner across everything you instruct: how far they have got, their quiz attempts, and when they were last active. Searchable, filterable, and sortable.

Analytics View student progress

Quiz performance for instructors

Attempts, attempts per learner, pass rate, and average score across your quizzes. Open any course or module to see the same figures per learner, with their best result.

Analytics Open analytics

How engaged your learners are

Analytics now also shows who has been active in the last thirty days, how many of your units the average learner takes, and how long people take to finish.

Analytics

Your quiz results, on your own dashboard

Sit a quiz as a learner and your dashboard now shows how many attempts you have made and your best score. Previously your results only appeared beside the quiz itself.

Courses

Completed courses count properly

Finishing a module you also teach was recorded against your instructor role, not your enrolment, so it never reached your totals. Existing records are corrected.

Courses

Test out of a pre-requisite module

A module can nominate one of its quizzes as a placement quiz. Passing it meets that module's pre-requisites, so someone who knows the material can go straight in.

Courses

Limit how many times a quiz can be taken

Instructors can cap the number of attempts, or leave it unlimited. Learners see how many tries remain, and the best attempt counts, so retaking never loses a pass.

Courses

Your quiz attempts, kept on the record

A panel beside every quiz shows what it holds, what you need to pass, and each attempt with its score and date. Past results stand even if the quiz is edited later.

Courses

Answer review shows the right answer

The question-by-question review now marks the correct choice alongside the one you picked, so a wrong answer explains itself instead of only being marked wrong.

Courses

Choose when a quiz opens, and shuffle its questions

A quiz can be held back until the module's other materials are done, or left open as a pre-test. A new Shuffled option serves the questions in a random order.

Courses

Terms of service, agreed and on the record

Signing up now asks you to agree to the terms of service, and your agreement is kept together with the version you accepted. When the terms change, a notice appears the next time you visit so you can read and acknowledge them.

Accounts & access

Callouts that stay where the author wrote them

Challenges, key points, instructor notes and the rest now appear in the body of the material at the point they were written, and nest inside one another to any depth. Footnotes, definition lists and highlighted code fences render as well, and a file's metadata header no longer shows up as text at the top of the page.

Courses
Fixes and smaller improvements (17)
  • Quiz scores counted only the questions a learner answered, so skipping questions inflated the result. Scores now count every question served.
  • Reloading a quiz page drew a fresh set of questions and reshuffled the answers. The set is now fixed when an attempt starts.
  • Pre-requisites were hidden from the course sidebar but not enforced, so a quiz could be opened directly by its address. They are now checked on the server for every kind of material.
  • A pass mark set higher than the number of questions left in a quiz made it impossible to pass.
  • Two questions sharing the same title left the Submit button permanently disabled.
  • Unpublished materials were missing from the course builder, which left them impossible to edit or publish. They now appear with a Draft badge.
  • A module used in more than one course could show a different course outline from one visit to the next, and drew the whole outline for anyone who could reach a single module in it. The quiz and score pages also let a course you had joined unlock material in a course you had not.
  • Choosing a badge picture on an achievement editor previewed it over the certificate background, and the save quietly kept the old icon. Icons uploaded with a full web address only loaded on the machine they were uploaded from.
  • The edit pencil on your own achievement returned a permission error instead of opening the editor, and the edit and delete controls on an achievement card sat outside the card, with no confirmation before deleting.
  • The badges and certificates on your dashboard are paged now, rather than loading every one you have earned at once.
  • Quiz attempt history and the reviews on a course page grew without limit, and every review card linked back to the same review.
  • A page could pick up another page's state from the cache, which showed the same navigation item as the current one across the whole site.
  • The menu item form accepted an empty submission and published an item nobody had filled in.
  • Saving an admin form with a blank field returned a server error instead of the validation messages, several create screens would not open at all, and a user could be saved with a blank username or an address that was silently discarded.
  • Admin toolbars briefly showed buttons that could not be used, kept a few with nothing behind them, and did not reveal row actions when a row was ticked on a card listing. Trashed pages were also not marked as trashed in the page list.
  • Raw language keys appeared in place of messages after saving, on the password reset pages, on module settings pages, and as the subject line of forum notification emails.
  • The Settings button in the admin toolbar now opens the module's configuration page instead of a dialog that never appeared.

July 2026

Copy a course in one click, and a guide for every role

Duplicate an entire course

Copy a course and its structure instead of rebuilding it from scratch. A Duplicate action sits on the course admin list, on course cards, and on the course detail page.

Courses

User guides at /guides

Written guides for learners, instructors, and community leaders, plus a getting-started walkthrough and an FAQ.

Docs & guides Read the guides

Replace an asset file in place

Swap the file behind a course asset without deleting the asset and recreating it, so links, ordering, and learner progress survive the update.

Courses
Fixes and smaller improvements (3)
  • Scheduled email command and Jupyter hub URL configuration corrected.
  • Webserver ports are configurable through environment variables instead of being fixed at 80 and 443.
  • Stale Halcyon branding replaced, and the theme toggle label reworded for clarity.

May 2026

Discussion forums inside communities, and a way to apply

Community discussion forums

Each community can hold its own discussions, with moderation tools for the people who manage it.

Communities

Apply to instruct or to start a community

A signed-in user can request instructor access or propose a new community. Administrators review the request, and approval grants the matching platform permission.

Accounts & access

Module-aware course sidebar

The course sidebar now knows which module you are in, numbers the modules, and links straight to each asset.

Courses

Find your way back from any viewer

Every asset viewer carries a back button and a breadcrumb that keep the surrounding course context.

Courses

Clearer community cards

Community cards show member badges and a direct view link.

Communities
Fixes and smaller improvements (5)
  • Mail server failures and outages are handled gracefully at every point the site sends email.
  • PDF, image, and audio files are served from relative URLs, which removes a cross-origin mismatch.
  • Admin breadcrumbs no longer show stale content or raw translation keys.
  • Admin housekeeping across forum filters, badge colours, the course listing, "remember me", and notifications.
  • Achievements render correctly when an instructor ID or name is missing.

April 2026

Announcements, community analytics, and a much richer reader

Community announcements with events and maps

Post an announcement to a community, give it a start and end date, and drop a pin with the Leaflet map picker. Visibility settings decide whether non-members can see it.

Communities

Analytics tab for community managers

A filter bar, a membership growth chart, and a course engagement table, computed for the community you manage.

Analytics

A better markdown reader

Course material now renders with a table of contents, colour-coded headers, and discussion, callout, and spoiler blocks. Links are rewritten to match your context.

Courses

Redesigned community pages

A reworked banner and logo treatment, courses grouped into carousels by type, and page content that reflects whether you are a member.

Communities

Spaces at community creation

Create a space while creating the community, and pick the owning community when you create or edit a unit.

Communities

Smart Search, laid out for reading

Reworked result cards and page layout, plus a plain description of how AI is used in the results.

Search

Warnings for units you have not started

The course menu warns before you jump into a unit you have not started, and its dropdowns behave more predictably.

Courses

Sign in and land back where you were

Login links carry an encoded return URL, so signing in returns you to the page you came from.

Accounts & access

Dashboard analytics default to 30 days

The dashboard opens on a 30-day window, with steadier course selection behind it.

Analytics
Fixes and smaller improvements (2)
  • A login redirect loop in production resolved.
  • Community banner height and topic tag filtering corrected across course and publishing views.

March 2026

Read PDFs and play media without leaving the course

Built-in PDF viewer

Course PDFs open in place with page navigation and zoom, instead of downloading.

Media

Media viewers for course assets

Audio and image assets play and display inside the course rather than in a separate tab.

Media

Full community management

Create, edit, and remove communities, their members, and their spaces from one set of management screens.

Communities

Stable course links

Course URLs carry the course ID, which keeps links working when titles change.

Courses

Course participation guide

A written guide to taking part in a course, alongside a refreshed Courses module README.

Docs & guides

February 2026

Smart Search and Communities arrive

Smart Search

A search experience backed by an external search API that returns courses and modules as result cards linking straight to the right place.

Search

The Communities module

Group spaces with their own membership and courses, wired into Smart Search from the start.

Communities

Markdown in course descriptions and materials

Write course descriptions and material in markdown and have it rendered rather than shown raw.

Courses

Carpentries-style callouts

The markdown viewer recognises and styles Carpentries callout blocks, so lessons written for that format render as intended.

Courses

Surveys and assessments out of the browse list

Pre- and post-survey and assessment units are filtered out of browse and landing pages, and units carry a display_on_browse setting to control this directly.

Courses

Long names on certificates

Certificates lay out correctly for learners with long names.

Courses

January 2026

Faster, more interactive dashboard metrics

Cached user metrics

Unique-user figures are cached, which makes the dashboard quicker and lets its charts respond to interaction.

Analytics

Member activity tracking

Member activity is tracked and surfaced in the dashboard metrics display.

Analytics

Pathway navigation across modules

Moving through a learning pathway is consistent from module to module, with clearer wording throughout.

Courses
Fixes and smaller improvements (1)
  • The user activity trends section is easier to read on narrow screens.

December 2025

Workshops, exportable reports, and staff permissions

Export the dashboard

Take dashboard data out as CSV, Excel, or PDF.

Analytics

Workshops, distinct from modules

Filter for workshops specifically, and tell the two apart at a glance with Module and Workshop badges.

Courses

Filters on the instructor view

The instructor view gained filtering options and a clearer layout.

Courses

Contributors on the course page

Courses credit their contributors and show when they were created, loaded efficiently enough not to slow the page down.

Courses

Course permissions for the Staff role

Staff can manage courses, edit their own, and delete, without needing full administrator access.

Accounts & access
Fixes and smaller improvements (2)
  • DataTables assets load correctly in the admin dashboard, and admin tables are tidier to use.
  • The is_course column migration is safe to re-run.

November 2025

Forum likes and a sturdier admin grid

Like a forum post

Like and unlike posts from the discussion UI, backed by an API endpoint.

Forums

Numbered replies

Replies show which post they answer, in the thread and in the notification you receive.

Forums

Resource profiles on assets

Pick and validate a resource profile when adding or editing an asset, with labels and hints explaining the choice.

Administration

Sortable admin grids

Sorting works more consistently across admin grids, and the users list shows registration dates.

Administration

Server-side checks on the admin dashboard

The admin dashboard authorises on the server rather than relying on a hidden menu, and the admin menu structure was reorganised.

Accounts & access
Fixes and smaller improvements (1)
  • Editing a discussion post uses a normal form submission, and the markdown editor refreshes correctly when the edit form opens.

October 2025

Registration protected by CAPTCHA

CAPTCHA on registration

The registration form is protected by reCAPTCHA, configured through its own config file.

Accounts & access

Per-action course permissions

Course actions are governed by an explicit permissions configuration, and menu items carry sensible defaults.

Accounts & access

July – August 2025

Sign in to JupyterHub once, and run a course as a workshop

One sign-in for JupyterHub

Open JupyterHub from a course and you are already signed in. A signed token carries your identity across, so there is no second login to remember.

Accounts & access

Workshops

A course can be marked as a workshop, which separates short workshop offerings from full learning modules.

Courses

More than one instructor per achievement

An achievement can credit several instructors instead of just one.

Courses

Dashboard figures you can trust

Recent user activity, activity trends, and top performers report correct numbers, with each unique user counted once.

Analytics

First and last name at registration

The registration form asks for first and last name separately and no longer accepts blank entries.

Accounts & access
Fixes and smaller improvements (4)
  • Achievements resolve correctly for a module taken as part of a course, and no longer break when a unit is missing.
  • Module images accept the file extensions they should, and a media helper bug was fixed.
  • The materials link on the publishing page, admin course creation, and the "Save later" and "Register updates" buttons all work as expected.
  • Course descriptions removed from the materials listing, and card header colours adjusted.

June 2025

Decide who issues an achievement

Set the issuer of an achievement

Choose which organisation or person is named as the issuer on an achievement, rather than accepting a fixed default.

Courses

Instructors required when building a unit

Naming the instructors is a required step of building a unit, enforced at every step of the build rather than only the first.

Courses
Fixes and smaller improvements (1)
  • The dashboard time series and heatmap render correctly.

May 2025

Certificates for finishing, and a rebuilt dashboard

Completion certificates

Finish a course and receive a certificate, carrying the NSF grant number that funded the work.

Courses

Redesigned dashboard

The dashboard was rebuilt around the questions people actually open it to answer.

Analytics

Unique users, charted and filterable

A unique-users graph with its own filter, so a spike can be narrowed down instead of guessed at.

Analytics

Analytics for instructors

Instructors get a detailed view of the activity on their own courses.

Analytics

Tidier admin toolbars and modals

The view-items modal was reworked, and admin toolbar actions and their events behave consistently.

Administration

April 2025

Badges and achievements you can earn and share

Achievements

Complete a module or a course and earn an achievement that records what you finished.

Courses

A page for every badge you earn

Each earned badge gets its own page, which you can share outside the platform.

Courses

Badges created as you build

A badge is created automatically while a unit is being built, drawing on badge and certificate templates, so it is not a separate job afterwards.

Courses

Browse a course before signing up

Course and module landing pages are readable without an account, so people can see what a course covers before registering.

Accounts & access

Reply to a forum post

Discussions became conversations: posts can be replied to directly.

Forums

Form input survives a mistake

What you typed into the course or module creation form is kept when the form comes back with an error, instead of being cleared.

Courses

Room for longer descriptions

Course and unit descriptions accept substantially more text.

Courses

Clearer sign-in guidance

Choosing ORCID at sign-in now says plainly that it is not supported, and the steps for resetting a CiLogon connection are written down.

Accounts & access
Fixes and smaller improvements (2)
  • Deleting an achievement and removing a topic both work.
  • An admin column join and a members query were corrected.

March 2025

Seeing engagement over time

User engagement over time

The admin dashboard charts engagement across time, so a trend is visible rather than inferred from a single snapshot.

Analytics

Achievements know their course

An achievement records the course it belongs to, which is what makes course-level achievements possible.

Courses
Fixes and smaller improvements (1)
  • The "my certificate" link goes where it should, and an unused Achievable menu was removed from the dashboard.

February 2025

Talk about the material, right where you are reading it

Discussions on modules

Each module carries its own discussion, so a question about the material can be asked in place instead of somewhere else entirely.

Forums

Charts and tables in the admin dashboard

The first visualizations and data tables arrived in the admin dashboard.

Analytics
Fixes and smaller improvements (1)
  • An achievement API route and a database username problem in the Docker setup were fixed.

January 2025

Search your materials, and a better forum

Search on the materials page

Find a specific item among a course's materials by searching instead of scrolling.

Search

A more readable forum

The forum page was reworked to make threads easier to follow.

Forums

This page covers changes you can see and use. Internal refactoring, dependency updates, and documentation-only changes are left out, and a quiet month is a month spent on those. Months with no user-facing changes are not listed.