Skip to content

Feature: Course Cover Image Support #9467

@PlataformasInformaticas

Description

Feature: Course Cover Image Support

Currently, courses in Planet do not have a visual element that represents them, which makes it harder for users to quickly identify and differentiate courses.

This feature introduces a new field called cover for courses, allowing the association of a representative image.


Goal

Add a new cover field to courses in Planet to:

  • Improve visual identification of courses.
  • Provide a consistent and user-friendly course presentation.
  • Enable better integration with client applications such as myPlanet.

Cover Image Specifications

The cover image must comply with the following requirements:

  • Aspect ratio: 1:1 (square)
  • Minimum resolution: 512 × 512 px
  • Maximum resolution: 1024 × 1024 px
  • Format: JPG / JPEG
  • Purpose: Visual representation of the course

Current Limitation

  • Courses currently have no associated image or visual identifier.
  • Course listings rely only on text, which affects usability and discoverability.
  • There is no standardized way to attach or validate course images.

Proposed Solution

  1. Add a new optional field cover to the course model.
  2. Allow uploading or assigning a cover image when creating or editing a course.
  3. Validate the uploaded image against the defined specifications:
    • Aspect ratio
    • Resolution limits
    • File format
  4. Store and expose the cover field via the API for client consumption.

Benefits

  • Enhances user experience and course discoverability.
  • Provides a consistent visual standard across all courses.
  • Prepares the backend for improved UI presentation in client apps.
  • Aligns course data with modern content platforms.

Technical Considerations

  • Define storage strategy for cover images (local, CDN, or object storage).
  • Consider fallback behavior when a course has no cover image.
  • Ensure backward compatibility for existing courses.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions