# Code Scanning Platform **Repository Path**: rvsmart-porting/code-scanning-platform ## Basic Information - **Project Name**: Code Scanning Platform - **Description**: Code Scanning Platform for RISC-V Porting Tool - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2023-04-24 - **Last Updated**: 2024-01-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 在线代码扫描平台 for RISC-V Porting Tool [点击前往“点亮计划”项目详情页](https://summer-ospp.ac.cn/org/prodetail/) ## 项目介绍 本项目旨在设计并实现一个在线代码扫描服务平台,用于解决程序分析工具依赖版本多样、 安装配置复杂等问题,目标是为开发者提供一个开箱即用的平台,并能保护自研代码检查规则的知识产权。 该平台本身不限制项目的编程语言,所能扫描的编程语言类型取决于后端集成的所有扫描工具, 例如 Java、C++、Python 等。 该平台的主要功能点包括但不限于: * 用户自行上传项目代码,或指定开源仓库由平台后端抓取代码 * 用户可根据需要创建并配置代码扫描任务 * 扫描任务可以直接套用现有的规则集,也可以根据用户需求自定义需要的具体规则 * 用户提交扫描任务后,平台将会根据扫描任务的具体配置,调度运行相应的代码扫描工具, 对代码进行静态或动态分析,并收集合并扫描报告数据 * 用户可以通过平台上提供的扫描任务管理功能,随时查询扫描任务的进度和状态 * 扫描任务完成后,用户可以通过平台提供的下载功能,将平台整合后的报告数据下载到本地进行查看和分析 参与该项目的开发者需要关注以下问题: 1. 采用合理的技术架构,包括但不限于前后端分离、微服务架构、容器化部署等; 2. 注重平台的可扩展性,为未来支持更多扫描工具、规则和规则集打好基础; 3. 扫描任务需支持多机调度,每个扫描任务间通过容器化等方式隔离运行,并对扫描过程占用的系统资源进行监控,合理分配任务至多个结点; 4. 设计合理的用户权限控制系统,使特定规则仅对特定用户组可用; 5. 扫描过程中记录必要的资源占用和输出日志等信息,并提供后台管理界面,便于问题追踪和定位; 6. 注意保障多用户、多任务情况下的系统稳定性和安全性; 7. 提供API访问接口,以便未来和其它类型客户端(如 VSCode 插件)结合。 ## 产出要求 1. 在线代码扫描服务平台前后端及控制脚本(如果有)等的源代码; 2. 在线代码扫描服务平台详细设计文档、部署和使用说明。 ## 技术要求 1. 平台前端建议使用 Vue 等框架,模块化设计,模块按照用户权限进行访问控制; 2. 平台后端建议使用 Java Spring 或 Python Flask 等相对成熟的框架; 3. 在实现扫描任务调度时,假定代码扫描工具基于 Docker 容器化部署方式运行; 4. 为扫描工具、规则和规则集提供相应的后台管理界面,以支持未来扩展。