Assignment
What is an assignment?
On DojoCode, an assignment is a piece of work your instructor hands out to you (and potentially your classmates) — either a single challenge or an entire learning path. Assignments live alongside the rest of the platform, so the way you solve them is identical to how you'd solve any challenge or path on your own. The difference is that an assignment carries a due date, sometimes a cutoff date, and an autograding rule that decides whether your submission counts as passed.
Assignments arrive in your inbox on the /my-assignments page. Each one tells you:
- The source — a learning path or a challenge.
- A deadline — when work is expected to be finished.
- An optional cutoff — a hard lock past which submissions won't be accepted.
- An optional autograding threshold — the minimum score that counts as passing.
- The instructor who handed it out.
Receiving an assignment
You'll receive an assignment when your instructor publishes it to you, either directly or through one of your groups. The first time you see it you'll get:
- A notification in the bell, with a link to the assignment.
- An email announcing the new assignment + deadline.
The assignment shows up in My Assignments with a Not started status and a Start button on the card. Clicking the card opens the assignment view, which embeds the underlying content (the LP or challenge) and tracks your progress automatically.
TIP
If you join a group that already has open assignments, you'll be auto-assigned to those too — no instructor action needed.
Working on an assignment
Once you click Start, the assignment status flips to In progress and a startedAt timestamp is recorded. From there, working on the assignment is the same as solving any challenge or learning path on the platform — open the editor, run tests, submit. Progress in the assignment is computed from your CompletedChallenge records, so every submission counts automatically.
For learning-path assignments, your progress is measured as (lessons + required challenges) completed / total. For challenge assignments it's a single binary — either you've completed the challenge or you haven't.
INFO
Each assignment requires fresh work. If you've already solved the source challenge before the assignment was issued, that earlier solve doesn't count toward the assignment — you need to submit again.
Statuses
Your progress on an assignment moves through four statuses:
- Not started — the assignment has been issued but you haven't begun.
- In progress — you've clicked Start (or submitted at least one challenge inside an LP-type assignment).
- Completed — every required unit is done. Your score, time spent, and pass/fail outcome are locked in.
- Overdue — the deadline passed without completion. The assignment is locked from new submissions until your instructor grants an extension.
The status pill on each card uses the same color vocabulary across the app: slate for Not started, blue for In progress, emerald for Completed, red for Overdue.
Deadlines, cutoffs, and extensions
Assignments come with a due date. Once that date passes, your row flips to Overdue automatically (a sweep runs hourly). The assignment is then locked — you can still review your work but you can't submit new attempts.
If your instructor sets a cutoff date in addition to the due date, that cutoff acts as the absolute final lock — even if your row hasn't been flipped to overdue yet (cron lag), submissions past the cutoff won't credit the assignment.
When you're stuck or need more time, your instructor can grant a deadline extension. The extension can be:
- Global — moves the deadline forward for everyone on the assignment.
- Per-student — pushes only your own deadline, optionally with a reason attached ("medical leave", "ran into a blocker", etc.).
When an extension is granted, your row is automatically unlocked back to In progress (or Not started) and you'll receive a notification + email with the new deadline. Your assignment card displays an Extended badge so you can see the override at a glance.
TIP
You can ask for an extension by reaching out to your instructor directly. The platform doesn't expose a self-service "request extension" button — extensions are at the instructor's discretion.
Reminders
DojoCode runs a daily reminder sweep at 08:00 server time. Any assignment that's due within the next 24 hours and isn't yet completed pings you via:
- A bell notification ("Reminder: "X" is due soon").
- A due-soon email with your current progress + a link back to the assignment.
You can dismiss either one — the next reminder won't fire until the next sweep.
Completing an assignment
Once your row hits Completed, the assignment view switches to a completion screen with:
- A trophy badge + the assignment title.
- Your score (when autograding is enabled) and pass/fail badge.
- Time spent on the work.
- For LP-type assignments, the same rich completion summary the standalone
/learning-paths/:id/completedpage renders — total XP earned, lessons completed, challenges finished, skills improved, per-challenge breakdown. - A "How the cohort is doing" panel: how the rest of the class did on the same assignment (anonymized), where your score lands relative to the average, and your score percentile + speed percentile ranks.
- D3 charts showing the score histogram, time histogram, and cumulative completion timeline — your bucket / your completion date marked with a "YOU" highlight.
Your instructor is notified the moment you complete an assignment, and any earned XP / skill points apply to your overall DojoCode profile.
Filtering and searching
The My Assignments page lets you narrow the list by:
- Status — Not started, In progress, Completed, Overdue.
- Source type — Learning path or Challenge.
- Group — when you belong to multiple groups, filter to one specific group's assignments.
- Search — substring match on the assignment title.
All filter selections sync to the URL, so the back button + reload preserve the view, and you can share a filtered link with a classmate.
What happens if my instructor archives an assignment?
If your instructor archives an assignment while you're working on it, the assignment disappears from your list. If you're already on the assignment page when it's archived, you'll see a banner explaining that the assignment was archived and that new submissions won't credit. Your existing progress data is preserved, just not visible to you anymore.
WARNING
Once an assignment is deleted by your instructor (different from archived), all your progress data, notifications, and submissions related to that assignment are removed. The CompletedChallenge records you accumulated still live on your profile — you just lose the assignment-context view of them.