Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[July 2024] Learning use case enhancement pack #126

Merged
merged 31 commits into from
Aug 2, 2024
Merged

Conversation

Luburic
Copy link
Contributor

@Luburic Luburic commented Jul 24, 2024

Change goal

This update includes improvements and additions for Learning use cases.

New feature - assessment item review

  • Learners can now review all assessment items in one place after they have mastered a KC.

New feature - unit progress rating

  • Learners can now give feedback less intrusively, by being prompted every 3 unit items (KCs and tasks) instead of every KC or every hour to hour and a half (the feedback requesting algorithm is defined inside a new domain service). The feedback is more elaborate, while still requiring a few clicks to submit.

Changes to existing features

  • Assessment item selector now stays on single unpassed AI instead of rotating between older AIs.

New feature - learning task events

  • Learning task events do not change the learning UX. Instead, they augment it to generate events relevant for instructor monitoring and analysis.

Database changes

To support the new rating system the following changes are required to the database:

  • Adding the new table for unit progress tracking to the courses schema:
CREATE TABLE courses."UnitProgressRating"
(
    "Id" integer NOT NULL GENERATED BY DEFAULT AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
    "LearnerId" integer NOT NULL,
    "KnowledgeUnitId" integer NOT NULL,
    "Created" timestamp with time zone NOT NULL,
    "CompletedKcIds" integer[] NOT NULL,
    "CompletedTaskIds" integer[] NOT NULL,
    "Feedback" jsonb NOT NULL,
    "IsLearnerInitiated" boolean NOT NULL,
    CONSTRAINT "PK_UnitProgressRating" PRIMARY KEY ("Id"),
    CONSTRAINT "FK_UnitProgressRating_KnowledgeUnits_KnowledgeUnitId" FOREIGN KEY ("KnowledgeUnitId")
        REFERENCES courses."KnowledgeUnits" ("Id") MATCH SIMPLE
        ON UPDATE NO ACTION
        ON DELETE CASCADE
)

TABLESPACE pg_default;

CREATE INDEX "IX_UnitProgressRating_KnowledgeUnitId"
    ON courses."UnitProgressRating" USING btree
    ("KnowledgeUnitId" ASC NULLS LAST)
    TABLESPACE pg_default;
  • Adding a new table for learning task events to the learningTasks schema:
CREATE TABLE "learningTasks"."Events"
(
    "Id" integer NOT NULL GENERATED BY DEFAULT AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
    "AggregateType" text COLLATE pg_catalog."default" NOT NULL,
    "AggregateId" integer NOT NULL,
    "TimeStamp" timestamp with time zone NOT NULL,
    "DomainEvent" jsonb NOT NULL,
    CONSTRAINT "PK_Events" PRIMARY KEY ("Id")
)

TABLESPACE pg_default;

CREATE INDEX "IX_Events_TimeStamp"
    ON "learningTasks"."Events" USING btree
    ("TimeStamp" ASC NULLS LAST)
    TABLESPACE pg_default;
  • Deleting the old KnowledgeComponentRating table from the knowledgeComponents schema.

@Luburic Luburic changed the title Development [July 2024] Learning use case enhancement pack Jul 30, 2024
Copy link

sonarcloud bot commented Aug 2, 2024

@lukaDoric lukaDoric self-requested a review August 2, 2024 06:46
@lukaDoric lukaDoric merged commit 55bdec8 into master Aug 2, 2024
3 checks passed
@Luburic
Copy link
Contributor Author

Luburic commented Aug 2, 2024

🎉 This issue has been resolved in version 2.20.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants