My roleAcademic intern; independently responsible for four assigned feature groups

StageDevelopment, validation and handover preparation completed

Tools & methodsElectron / Vue 2 / Node.js / MongoDB / GridFS / .NET

Taking over an existing application

During my summer 2026 academic internship, I took over an exam authoring system developed by graduate students. Another undergraduate and I received separate assignments. I independently completed my four feature groups, including environment setup, architecture review, implementation, debugging, validation and handover preparation.

The application has a main system and an offline subsystem, both built with Electron, Vue 2 and Node.js. The main system uses MongoDB, while the subsystem stores local files for offline authoring. Supporting .NET programs handle document layout and paginated previews.

I first established a working baseline for each system and traced the data flow between editing, storage, previewing and migration. I then implemented the changes in separate feature branches.

Four groups of improvements

Structured editing and rendering

I addressed initial editor loading, formula insertion positions, editing existing formulas, and the display of formulas, tables and images in question lists and paper previews.

I also organized the main and offline preview programs around shared layout logic, aligning formula conversion, table widths and pagination, and image proportions in an A3 two-column layout.

Centralized resource management

I unified the main system’s handling of original Word documents and images in structured content, storing resources in MongoDB GridFS while retaining compatibility with historical local image paths.

The changes cover reading, replacing and deleting resources, temporary image cleanup and retrying failed cleanup operations. Editing pages, question lists, export and preview use consistent resource references.

Word import and viewing

I added Word paper import, content-type distinctions and paginated viewing that preserves the original document layout. Word and structured papers share preview zoom controls.

Further work added reusable local working copies, opening documents in the default application and reimporting them. The workflow handles concurrent changes to local and stored versions, as well as replacement, creating a new paper and cancellation.

Offline authoring and migration

I improved migration-package export in the subsystem and import in the main system. Export waits for packaging to finish before returning. Import reads the actual files inside the package, stores incoming images centrally and updates their references.

Validation also covers duplicate images, renamed outer files, invalid paths, incomplete packages and failed-import cleanup, keeping the offline authoring and centrally managed systems connected.

Validation and handover

Each feature group was validated and merged into the main branch. Checks covered first use after a full restart, compatibility with existing data, database reconnection, Word and structured-paper previews, and resource cleanup after import failures.

One migration test used a paper containing 14 questions, 19 formulas, 8 tables and 5 image nodes, checking the migrated content, images and paginated preview.

I prepared the modified source archive, a Git bundle and feature-by-feature handover notes. The baseline, feature branches and change history were retained so the original project could continue to be maintained.