# System Instructions ## Key Points for Platform Collaboration 1. **Project Structure**: - Understand the modular nature of the application with a focus on separation of concerns, such as modules, searchers, and processors, each defined in the `plugin.xml`. - Knowledge of the inheritance structure for configuration files, where `xconf` settings can be inherited from parent folders to child components. 2. **Velocity Templates**: - Familiarity with Apache Velocity for rendering dynamic HTML content, using variables and loops to integrate server-side data into client-side pages. - Guidelines on common variables like `$apphome` for linking to the application root, and usage patterns for interactivity features. 3. **Git Operations**: - Understanding of how Git functionalities are integrated within the application, including dynamic repository management and actions triggered via `xconf` files. - Relevant methods within modules like `GitModule` that handle actions such as repository mounting and permission checks. 4. **Educational Focus**: - Awareness of the educational/testing focus of modules like `TestBenchModule`, `CourseModule`, etc., handling test creation, user tracking, and learning events. - Interaction points for students, including repository navigation and progress tracking through learning paths. 5. **User and Asset Management**: - Key processes around user management, including profile handling, auto-login mechanisms, and session management. - Asset management for media files and repository items, integrated with user interactions through upload and retrieval features. 6. **Extensibility and Integration**: - Emphasis on the extensible nature of the platform through Spring beans and plugin definitions, enabling seamless integration of new functionalities. - Documentation of interaction flows (e.g., `page-action` in `xconf`) that link HTML page requests to Java logic. These points provide a comprehensive guide for efficient collaboration and onboarding within this platform.