Letstudy Course Formats

Course formats ::: format_letstudy
Maintained by Letstudy Group
A modern course format with 10 visual layouts: Cards, Tabs, List, Timeline, Learning Path, Kanban, Metro Tiles, Map Journey, 3D Bookshelf, and Polaroid Wall. Features customisable colours, section icons, progress tracking, and entrance animations.
Latest release:
44 sites
234 downloads
5 fans
Current versions available: 1

LetStudy Course Formats transforms how courses look and feel in Moodle by offering 10 unique visual layouts for presenting course sections.

Layouts:

  • Cards / Grid – Clickable flip cards with optional background images
  • Tabs – Horizontal tab navigation for inline section switching
  • Modern List – Clean vertical list with progress bars
  • Timeline – Vertical timeline with alternating content
  • Learning Path – Zigzag milestone path showing student progress
  • Kanban Board – Sections auto-sorted by completion status
  • Metro Tiles – Dynamic grid with bold colours and hover effects
  • Map Journey – Board-game winding road with stops and a finish trophy
  • 3D Bookshelf – Books on a wooden shelf with 3D hover effects
  • Polaroid Wall – Pinned photos with subtle rotations

Features:

  • Per-course brand and secondary colours (with colour picker)
  • Per-section FontAwesome icons (with visual icon picker)
  • Per-section background images (upload or URL)
  • Circular or linear progress tracking per section
  • Real-time progress updates without page reload
  • 4 entrance animation styles (Fade, Slide, Zoom, Bounce)
  • Respects prefers-reduced-motion accessibility setting
  • Full reactive course editor (drag-and-drop) support
  • Works with any Moodle theme
  • English and Greek translations included

Developed by LetStudy Group – https://letstudy.gr

Potential privacy issues

This plugin does not store or transmit any personal user data. It implements the Moodle Privacy API null provider.

Screenshots

Screenshot #0
Screenshot #1
Screenshot #2
Screenshot #3
Screenshot #4
Screenshot #5
Screenshot #6
Screenshot #7
Screenshot #8
Screenshot #9

Contributors

Letstudy Group (Lead maintainer)
Please login to view contributors details and/or to contact them

Comments

Show comments
  • Plugins bot
    Sun, 22 Feb 2026, 6:30 AM
    Approval issue created: CONTRIB-10340
  • Danilo Costa Machado
    Wed, 25 Mar 2026, 1:20 AM
    I identified an issue when using this course format plugin on Moodle version 5.0.1. During course editing, a failure occurs in the page editing functionalities (dropdown), resulting in JavaScript errors.

    After analyzing the problem, I found that it is related to the component.init call in the templates/local/content module. In Moodle 5.0.1, the third parameter (sectionreturn) may not be defined, causing an empty value to be passed to the function. This leads to execution errors and breaks the course editing interface.

    It is important to note that this behavior does not occur in more recent Moodle versions (tested from 5.0.6+), where this parameter is already properly handled.

    Original code:
    {{#isediting}}
    {{#js}}
    require(['core_courseformat/local/content'], function(component) {
    component.init('#page', {}, {{sectionreturn}}, {{#pagesectionid}}{{.}}{{/pagesectionid}}{{^pagesectionid}}null{{/pagesectionid}});
    });
    {{/js}}
    {{/isediting}}


    Applied fix:
    I implemented a check to ensure that if sectionreturn is not defined, null is explicitly passed, preventing the JavaScript from breaking:
    {{#isediting}}
    {{#js}}
    require(['core_courseformat/local/content'], function(component) {
    component.init(
    '#page',
    {},
    {{#sectionreturn}}{{.}}{{/sectionreturn}}{{^sectionreturn}}null,{{/sectionreturn}}
    {{#pagesectionid}}{{.}}{{/pagesectionid}}{{^pagesectionid}}null{{/pagesectionid}});
    });
    {{/js}}
    {{/isediting}}


    With this adjustment, the issue was resolved in the affected environment, restoring normal course editing functionality.

    I suggest considering adding this validation to the plugin to ensure compatibility with older Moodle versions, especially 5.0.1.
Please login to post comments