LinuxLingo is an educational CLI application that teaches Linux commands through interactive practice and exam-style assessments. It combines a virtual shell simulator with a comprehensive quiz system, allowing students to safely practice Linux commands in an isolated file system environment and test their knowledge through multiple question types.
I was the primary developer of the Exam module, designing and implementing the end-to-end exam experience. The module enables structured exams with three question types (MCQ, fill-in-the-blanks, and practical shell exercises), instant feedback, and scoring. My implementation spans question data models and parsing pipelines, session management and interactive workflows, to comprehensive grading, feedback, and results reporting—emphasizing robustness, maintainability, and seamless CLI user experience.
Code: RepoSense Dashboard
Enhancements:
ExamSession, ExamCommandParser, and state transitions across three question types (MCQ, FITB, PRAC) with context-aware control commands (quit, abort, exit) enabling flexible exam interruption.ExamSession.runExam() with QuestionInteraction for centralized answer collection. Applied VFS factory pattern for test isolation in practical questions, defensive programming (null checks, state validation), and supports partial completion when users abort mid-exam.Question.checkAnswer() with type-specific logic — McqQuestion (case-insensitive A-D matching), FitbQuestion (exact string matching), PracQuestion (VFS verification). Calculates score, percentage, letter grade, and displays structured feedback (✓/✗ + explanation).Checkpoint supporting 5 verification types (DIR, FILE, NOT_EXISTS, CONTENT_EQUALS, PERM) and SetupItem for VFS pre-configuration (MKDIR, FILE, PERM). Factory pattern creates fresh VFS per question for test isolation.Documentation:
ExamClassDiagram.puml, PracQuestionClassDiagram.puml), 4 sequence diagrams (ExamSessionSequence.puml, ExamControlCommandsSequence.puml, PracQuestionSequence.puml, McqFitbAnswerInteractionSequence.puml), and 2 activity diagrams (PracQuestionSetupActivity.puml, McqFitbLineParsingActivity.puml).Team Contributions:
Contributions Beyond the Team