Sun Chenyang's Portfolio and Documentation
website·Indexed 29 days ago
https://sunchenyang.cnA personal site featuring a portfolio of projects including a unified visualization platform (PIS), a rural road inspection management platform, an OA management system, and an archive lifecycle management system, alongside technical documentation on HTML resource preloading.
What's inside Sun Chenyang
- The Rural Road Inspection Comprehensive Information Management Platform integrates a low-cost 3D vision quality assessment system to collect multi-dimensional data during a single inspection, including basic road information, pavement data, Beidou navigation trajectories, roadside assets, and road defects.
Overview of the PIS Visualized Screen Development Platform
The PIS project is a unified development platform for integrating various visualized large-screen displays. It features compatibility with internal single sign-on (SSO) systems and supports both static data configuration and dynamic interface integration. The platform has been successfully deployed in projects such as the Public Aviation Travel Construction and Maintenance project, the Qingfu Cloud Platform, and the Huake Science and Technology Park Exhibition Hall.Overview of the Archives Management System project
The project is an archives management system designed for archives, group companies, and large-scale enterprises. It manages the full lifecycle and process of archives, assisting personnel in the efficient compilation, appraisal, and preservation of records. It facilitates data retrieval for internal and external users and ensures compliance with regulatory inspections.
Core functional modules include:
- Basic functions: Archive collection, transfer, organization, and filing.
- Extended functions: Appraisal, indexing, and borrowing.
- Value-added services: 'Four-property' (四性) detection, virtual warehouses, and integration with OA or financial systems.
- Mobile access: A companion Enterprise WeChat mini-program for mobile processing.
Technical Architecture of Rural Road Field Inspection Software
The Field Inspection Software is responsible for the centralized storage and real-time display of data from on-board cameras, GPS, and line-scan cameras, with functionality to export data packages for office use.
Technical stack:
- Framework: Vite + React + Electron
- Hardware Integration: Embedded Python scripts for reading camera, GPS, and line-scan camera data
- Data Management: SQLite for processing engineering data
- Mapping: Leafletjs for offline map viewing and downloading
Technical Architecture of Rural Road Office Annotation Software
The Office Annotation Software imports field inspection projects, provides pavement images for AI-based defect recognition, and supports manual annotation and modification. It also enables exporting defect data into various report formats.
Technical stack:
- Framework: Umi + Electron
- Backend Services: Embedded Python scripts for AI recognition and data export services
- Annotation Engine: Konvajs for implementing line and rectangle annotations
Prioritize resource loading using link rel="preload"
By default, resources enter the request queue based on their order in the HTML document. To prioritize a specific resource (e.g., making a script at the bottom of the page load before scripts at the top) without changing the final execution order, use<link rel="preload">. This allows the browser to start fetching the resource earlier than it would otherwise encounter it during parsing.<body> <!-- c.js will enter the request queue first, but will still execute after a.js and b.js --> <link rel="preload" as="script" href="c.js"> <script src="a.js"></script> <script src="b.js"></script> <script src="c.js"></script> </body>Distinguish between DOMContentLoaded and Load events
These two events indicate different stages of the page loading process:
DOMContentLoaded: Triggered when the HTML document has been completely loaded and parsed. At this stage, external resources like images and stylesheets may not have finished loading.Load: Triggered only after all page resources, including the HTML, stylesheets, images, and scripts, have fully loaded.
Control script execution with async and defer attributes
Standard external scripts block HTML parsing while they are being loaded and executed. To prevent the loading phase from blocking the parser, use the
asyncordeferattributes. Both allow the script to be downloaded in parallel with HTML parsing, but they differ in when the script executes:async: The script executes immediately after it finishes downloading, pausing the HTML parser at that moment.defer: The script executes only after the entire HTML document has been fully parsed (coinciding with theDOMContentLoadedevent).
<!-- Non-blocking load, executes as soon as downloaded --> <script src="script.js" async></script> <!-- Non-blocking load, executes after HTML parsing is complete --> <script src="script.js" defer></script>Technical stack for the PIS Visualized Screen Platform
The PIS platform is built using the following technical stack to handle data visualization and performance optimization:
- Framework: umi
- Charting Libraries: echarts, bizcharts
- Map Integration: Gaode (AMap) and Fourvi (四维图新)
- Performance Optimization: Implementation of lazy loading and dynamic loading to improve first-screen load speeds.
Use alt and title attributes for images
The
<img>tag usesaltandtitlefor different purposes:alt: Required attribute. Provides fallback text displayed if the image fails to load.title: Optional attribute. Provides a tooltip that appears when a user hovers the mouse over the image.
<img src="image.jpg" alt="Description for accessibility and failures" title="Hover tooltip text">Technical stack for the Archives Management System
The project utilizes the following technical stack for its implementation:
- Frontend: Built using the Umi framework and Ant Design component library for functional pages. Lottie is used for dynamic detection animations.
- Mobile: Developed using Taro for the Enterprise WeChat mini-program.
- Backend: Based on Java and Oracle database for data management.
- Document Processing: iTextPDF and JXLS are used to implement the export and import of archive templates.