# lanshare **Repository Path**: guardianangel/lanshare ## Basic Information - **Project Name**: lanshare - **Description**: 让我们荡起双桨,小船儿翻在海面上~ - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-28 - **Last Updated**: 2025-11-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 课堂文件分享与互动平台 (V2.5) 这是一个专为计算机教室/局域网环境设计的轻量级Web应用,旨在解决教师向学生分发大文件(如软件安装包、项目文件)的难题,并提供一个实时的课堂互动环境。学生无需安装任何软件,仅通过浏览器即可完成文件下载、考勤签到和课堂交流。 ## ✨ 核心功能 - **🚀 高效文件分享**: - 支持GB级别的大文件分享。 - 学生通过浏览器即可查看文件列表并点击下载。 - **动态带宽分配**,确保多名学生同时下载时网络流畅,不会因个别下载任务而瘫痪。 - **💬 实时互动聊天**: - 内置基于WebSocket的实时聊天室,延迟低,互动性强。 - 教师消息以特殊样式高亮显示,便于发布公告。 - **聊天记录自动保存**,按不同课程生成独立的日志文件,方便回顾。 - 学生首次进入或刷新页面时,自动加载历史聊天记录。 - **✅ 自动化考勤**: - 系统启动时,教师通过图形化界面选择班级学生名单(支持 `.xlsx` 和 `.csv` 格式)。 - 学生使用**姓名+学号**登录时,系统自动在本次课程的签到表中将其标记为“已签到”。 - 每次开课自动生成独立的Excel签到表,方便存档和管理。 - **🔐 安全可靠的身份认证**: - **教师**使用固定的账号密码从专用入口 (`/teacher`) 登录,且系统只允许第一个IP地址作为教师登录,防止学生误入。 - **学生**从主入口 (`/student`) 登录,身份信息与提供的班级名单进行比对,确保真实性。 - **💡 极佳的易用性**: - **图形化启动配置**:无需修改代码,通过弹窗即可选择班级名单、设置课程名称。 - **零客户端**:学生端无需安装任何软件或浏览器插件。 - **二维码访问**:服务器启动后会在命令行生成二维码,方便学生用手机或平板快速访问。 ## 📁 项目结构 ``` LAN_File_Sharer/ ├── main.py # 核心主程序 ├── requirements.txt # 项目依赖库 ├── templates/ # 存放所有HTML页面模板 │ ├── main_ui.html │ ├── student_login.html │ ├── teacher_login.html │ └── status.html ├── rosters/ # 【请将您的班级名单放这里】 │ └── 软工2406班.xlsx (示例) ├── shared_files/ # 【请将要分享的文件放这里】 ├── attendance/ # (程序会自动在此生成签到表) └── chat_logs/ # (程序会自动在此生成聊天记录) ``` ## 🛠️ 使用指南 #### 步骤一:环境准备 1. **安装 Python**: 确保您的电脑上已安装 Python (建议版本 3.7 或更高)。 2. **安装依赖库**: 在项目根目录下打开命令行工具 (cmd/PowerShell/Terminal),运行以下命令安装所有必需的第三方库: ```bash pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple pip install -r requirements.txt ``` 3. **修改配置**: 打开 `.env` 文件,根据您的需求修改教师账号、密码等信息。 #### 步骤二:文件准备 1. **放置班级名单**: 将您的学生名单文件(`.xlsx` 或 `.csv` 格式)放入 `rosters` 文件夹。 - **重要**: 名单文件必须包含名为 `姓名` 和 `学号` 的两列。 2. **放置分享文件**: 将您上课需要分享给学生的所有文件(安装包、文档、项目压缩包等)放入 `shared_files` 文件夹。 #### 步骤三:启动服务 1. 在项目根目录下的命令行中,运行主程序: ```bash python main.py ``` 2. 程序启动后,会依次弹出**两个窗口**: - 第一个是**文件选择窗口**,请选择您在 `rosters` 文件夹中对应的班级名单。 - 第二个是**信息输入窗口**,请依次输入“班级名称”和“课程名称”。 3. 完成以上步骤后,服务正式启动。命令行窗口会显示服务器的IP地址和访问二维码。 #### 步骤四:课堂使用 1. **教师登录**: - 程序启动后,会自动用浏览器打开教师登录页面 `http://127.0.0.1:8000/teacher`。 - 使用默认账号 `teacher` 和密码 `admin123` 登录。 2. **学生访问**: - 将命令行中显示的局域网IP地址(例如 `http://192.168.1.108:8000`)告诉学生。 - 学生在自己的电脑浏览器中输入该地址,即可进入学生登录页面。 3. **结束服务**: - 课程结束后,在运行服务器的命令行窗口中按下 `Ctrl + C` 组合键即可安全地停止服务。 ## ⚙️ 功能配置 如果您需要修改一些默认设置,可以直接编辑 `main.py` 文件顶部的配置区域: - 修改教师登录账号和密码 (`TEACHER_USER`, `TEACHER_PASS`)。 - 调整服务器的总可用带宽 (`TOTAL_UPLOAD_MBPS`)。 - 调整历史聊天记录的加载数量等。 ## 💻 技术栈 - **后端**: Python, FastAPI - **实时通讯**: WebSockets - **数据处理**: Pandas - **前端**: HTML, CSS, JavaScript - **图形化配置**: Tkinter (Python内置)