# unknown > Sophisticated Node.js API server that provides automated scraping capabilities for APManager (Academic Platform Manager) student data. Built with Playwright for browser automation, featuring multi-tenant architecture, intelligent session management, and robust DOM change detection using MutationObserver patterns. - Author: Ian DC - Repository: iandcm15200/connectorapmanager - Version: 20260129012024 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-07 - Source: https://github.com/iandcm15200/connectorapmanager - Web: https://mule.run/skillshub/@@iandcm15200/connectorapmanager~unknown:20260129012024 --- # APManager Students Platform **Multi-tenant web scraping platform for APManager student data extraction with robust session management.** ## Description Sophisticated Node.js API server that provides automated scraping capabilities for APManager (Academic Platform Manager) student data. Built with Playwright for browser automation, featuring multi-tenant architecture, intelligent session management, and robust DOM change detection using MutationObserver patterns. ## Key Capabilities - **Multi-Tenant Architecture**: Isolated browser sessions per user with automatic session recovery - **Intelligent Scraping**: Robust MutationObserver-based table detection with hybrid fallback strategies - **Session Persistence**: Automatic session state storage and reuse across server restarts - **Microsoft OAuth**: Automated authentication flow with flexible redirect handling - **Data Extraction**: Student subjects (current period + academic history), enrollment status, and statistics - **Database Integration**: SQLite database with 6,000+ student records - **Performance Optimization**: Resource blocking, batch processing, and intelligent waiting strategies ## Technologies - **Backend**: Node.js, Express.js - **Browser Automation**: Playwright (Chromium) - **Database**: SQLite3 (better-sqlite3) - **Authentication**: Microsoft OAuth integration - **Patterns**: MutationObserver, Hybrid polling, Clean Code principles ## Use Cases 1. Automated student data extraction from APManager platform 2. Multi-user concurrent scraping with session isolation 3. Academic statistics and enrollment tracking 4. Student subject history analysis 5. Priority enrollment automation ## API Endpoints - `GET /api/buscar/:termino` - Search students in local database - `GET /api/buscar-apmanager/:termino` - Search APManager + save to DB - `GET /api/materias/:leadId` - Get student subjects (requires auth headers) - `POST /api/inscribir-prioritaria/:leadId` - Enroll student in priority subject ## Authentication Headers All endpoints require multi-tenant authentication: - `x-user-id`: Unique user identifier - `x-user-email`: APManager email - `x-user-password`: APManager password ## Architecture Highlights ### Robust MutationObserver Implementation - Real-time DOM change detection - Polling fallback (300ms intervals) - Stability checks (2 consecutive unchanged states) - Configurable timeouts (5-8 seconds per table) - Empty table handling (0 rows = valid state) ### Session Management - Per-user isolated BrowserContexts - Storage state persistence in `./sessions/` - Auto-recovery on session expiration - Cleanup of inactive sessions (30min timeout, 5min interval) - Resource blocking for performance (images, fonts, media) ### Clean Code Principles - No emojis in production code - Single Responsibility Principle - Descriptive English naming - DRY (Don't Repeat Yourself) - Comprehensive error handling ## Performance Features - Resource blocking (images, fonts, analytics) - Batch mutation processing - Optimized waiting strategies - Debounced observers - Attribute filters (only observe necessary changes) ## Deployment Ready - Multi-tenant cloud architecture - Horizontal scalability - Production error handling - Comprehensive logging - Memory leak prevention (proper cleanup) ## Repository https://github.com/iandcm15200/connectorapmanager