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.
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.
CoursesUser guides at /guides
Written guides for learners, instructors, and community leaders, plus a getting-started walkthrough and an FAQ.
Docs & guides Read the guidesReplace 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.
CoursesFixes 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.
CommunitiesApply 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 & accessModule-aware course sidebar
The course sidebar now knows which module you are in, numbers the modules, and links straight to each asset.
CoursesFind your way back from any viewer
Every asset viewer carries a back button and a breadcrumb that keep the surrounding course context.
CoursesClearer community cards
Community cards show member badges and a direct view link.
CommunitiesFixes 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.
CommunitiesAnalytics tab for community managers
A filter bar, a membership growth chart, and a course engagement table, computed for the community you manage.
AnalyticsA better markdown reader
Course material now renders with a table of contents, colour-coded headers, and discussion, callout, and spoiler blocks. Asset links and download URLs are rewritten to match the context you are reading in.
CoursesRedesigned community pages
A reworked banner and logo treatment, courses grouped into carousels by type, and page content that reflects whether you are a member.
CommunitiesSpaces at community creation
Create a space while creating the community, and pick the owning community when you create or edit a unit.
CommunitiesSmart Search, laid out for reading
Reworked result cards and page layout, plus a plain description of how AI is used in the results.
SearchWarnings 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.
CoursesSign 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 & accessDashboard analytics default to 30 days
The dashboard opens on a 30-day window, with steadier course selection behind it.
AnalyticsFixes 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.
MediaMedia viewers for course assets
Audio and image assets play and display inside the course rather than in a separate tab.
MediaFull community management
Create, edit, and remove communities, their members, and their spaces from one set of management screens.
CommunitiesStable course links
Course URLs carry the course ID, which keeps links working when titles change.
CoursesCourse participation guide
A written guide to taking part in a course, alongside a refreshed Courses module README.
Docs & guidesFebruary 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.
SearchThe Communities module
Group spaces with their own membership and courses, wired into Smart Search from the start.
CommunitiesMarkdown in course descriptions and materials
Write course descriptions and material in markdown and have it rendered rather than shown raw.
CoursesCarpentries-style callouts
The markdown viewer recognises and styles Carpentries callout blocks, so lessons written for that format render as intended.
CoursesSurveys 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.
CoursesLong names on certificates
Certificates lay out correctly for learners with long names.
CoursesJanuary 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.
AnalyticsMember activity tracking
Member activity is tracked and surfaced in the dashboard metrics display.
AnalyticsPathway navigation across modules
Moving through a learning pathway is consistent from module to module, with clearer wording throughout.
CoursesFixes 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.
AnalyticsWorkshops, distinct from modules
Filter for workshops specifically, and tell the two apart at a glance with Module and Workshop badges.
CoursesFilters on the instructor view
The instructor view gained filtering options and a clearer layout.
CoursesContributors on the course page
Courses credit their contributors and show when they were created, loaded efficiently enough not to slow the page down.
CoursesCourse permissions for the Staff role
Staff can manage courses, edit their own, and delete, without needing full administrator access.
Accounts & accessFixes 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.
ForumsNumbered replies
Replies show which post they answer, in the thread and in the notification you receive.
ForumsResource profiles on assets
Pick and validate a resource profile when adding or editing an asset, with labels and hints explaining the choice.
AdministrationSortable admin grids
Sorting works more consistently across admin grids, and the users list shows registration dates.
AdministrationServer-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 & accessFixes 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 & accessPer-action course permissions
Course actions are governed by an explicit permissions configuration, and menu items carry sensible defaults.
Accounts & accessJuly – 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 & accessWorkshops
A course can be marked as a workshop, which separates short workshop offerings from full learning modules.
CoursesMore than one instructor per achievement
An achievement can credit several instructors instead of just one.
CoursesDashboard figures you can trust
Recent user activity, activity trends, and top performers report correct numbers, with each unique user counted once.
AnalyticsFirst and last name at registration
The registration form asks for first and last name separately and no longer accepts blank entries.
Accounts & accessFixes 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.
CoursesInstructors 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.
CoursesFixes 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.
CoursesRedesigned dashboard
The dashboard was rebuilt around the questions people actually open it to answer.
AnalyticsUnique users, charted and filterable
A unique-users graph with its own filter, so a spike can be narrowed down instead of guessed at.
AnalyticsAnalytics for instructors
Instructors get a detailed view of the activity on their own courses.
AnalyticsTidier admin toolbars and modals
The view-items modal was reworked, and admin toolbar actions and their events behave consistently.
AdministrationApril 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.
CoursesA page for every badge you earn
Each earned badge gets its own page, which you can share outside the platform.
CoursesBadges 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.
CoursesBrowse 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 & accessReply to a forum post
Discussions became conversations: posts can be replied to directly.
ForumsForm 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.
CoursesRoom for longer descriptions
Course and unit descriptions accept substantially more text.
CoursesClearer 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 & accessFixes 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.
AnalyticsAchievements know their course
An achievement records the course it belongs to, which is what makes course-level achievements possible.
CoursesFixes 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.
ForumsCharts and tables in the admin dashboard
The first visualizations and data tables arrived in the admin dashboard.
AnalyticsFixes 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.
SearchA more readable forum
The forum page was reworked to make threads easier to follow.
ForumsThis 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.