LinuxLingo is a command-line application for learning Linux commands through an interactive shell simulator and a built-in quiz system. It features an in-memory Virtual File System (VFS), a shell parser supporting piping, redirection, and conditional operators, and an exam module with MCQ, fill-in-the-blank, and practical questions. It is written in Java and has about 10 kLoC.
Given below are my contributions to the project.
Code contributed: RepoSense link
LinuxLingo), CLI layer (Ui, MainParser), full VFS engine (VirtualFileSystem, FileNode, Directory, RegularFile, Permission, VfsException), shell framework (CommandRegistry, CommandResult, Command interface), exam framework (Question base class, Checkpoint, ExamResult), and storage utilities (Storage, StorageException). This constituted 19 fully-implemented infrastructure files that all team members depended on.EchoCommand, MkdirCommand, PwdCommand, TouchCommand) as coding pattern examples for the team.|| (OR) and < (input redirect) token support in ShellParser, alias/history/glob fields in ShellSession, JLine integration via ShellCompleter and ShellLineReader, and “Did you mean?” command suggestions.Checkpoint types (NOT_EXISTS, CONTENT_EQUALS, PERM), SetupItem inner class and applySetup() in PracQuestion, and enhanced QuestionParser for new checkpoint/setup formats.DiffCommand and TeeCommand; enhanced multiple existing commands (EchoCommand -e, GrepCommand -l, HeadCommand -N syntax, multi-file support for WcCommand/TailCommand, etc.).GrepCommand stdin filtering and -v flag, VfsSerializer empty-file deserialization, QuestionParser escaped-pipe handling, ShellParser single-quote and backslash escaping, ChmodCommand symbolic mode regex, CatCommand -n with piped input, and DateCommand format specifier conversion.ShellSessionTest, CdCommandTest, LsCommandTest, BuiltinCommandTest), storage/exam modules (VfsSerializerTest, QuestionParserTest, QuestionBankTest, ExamResultTest), VFS infrastructure (DirectoryTest, PermissionTest, RegularFileTest), and 29 end-to-end integration tests. Also authored v2.0 infrastructure tests and placeholder tests for team members to enable after implementation.