Git Product home page Git Product logo

electronclassschedule's Introduction

电子课程表

view

软件介绍

  • 本软件具有显示当天课表,当前星期,天数倒计时,下课/上课倒计时等功能。
  • 支持动态调整课表,支持多周(最多四周)课表轮换,窗口置顶且可点击穿透。
  • 使用Html + CSS + JavaScript三件套制作,使用Node.js+Electron完善系统级功能并打包。
  • 软件由一位高三牲制作,含有大量屎山代码,望大家海涵。
  • 在电子白板在学校普及的今天,欢迎大家下载体验与分享,但也请不要用于商业用途。
  • 喜欢本项目的话,点击右上角的Star或发视频宣传一波支持一下作者吧😘
  • 【点我加群】电子课程表QQ交流二群: 914887202
  • 【点我加群】电子课程表TG交流群

食用说明

以下为在Windows系统下的使用方法,其他操作系统请各位大佬自行拉取仓库打包

  • 右侧Releases中下载Latest版本解压,classSchedule.exe 为程序主文件
  • 打开 resources/app/js/scheduleConfig.js 配置课表,里面有详细的注释
  • 设置菜单可以通过点击左侧的星期框中的中文角标或系统托盘打开。
  • 菜单中 课上计时 选项可控制倒计时部分在上课时间是否显示
  • 菜单中 上课隐藏 选项可控制课表本体、星期以及倒计时部分在上课时间是否显示
  • 若将 课上计时上课隐藏 同时开启(推荐默认开启)可实现课上仅显示倒计时小窗口

或者..尝试终极解决方案:邮箱联系 [email protected] ,如果我有空我可以为你的安装提供帮助,当然你也可以来和我交流问题😊

修改说明

  • 注意: 阅读以下内容需要一定的编程知识储备。如果您想修改软件源码自行打包(Windows),请阅读此部分内容。若您仅想使用本软件,请跳过此部分内容。
  • 声明: 强烈不推荐直接在打包后的软件中修改源码,这将导致更新新版本与提交 PR 等操作无法顺利进行。
  1. 安装 Node.js v20 或以上版本。
  2. 安装 Visual Studio v2019 或以上版本。
  3. 安装 Python v3.8 或以上版本。
  4. 使用 Git 克隆本仓库代码:在终端中执行 git clone https://github.com/EnderWolf006/ElectronClassSchedule.git
  5. 在本项目根目录中打开终端并执行 pip install setuptools
  6. 在本项目根目录中打开终端并执行 npm install
  7. 若需兼容 Windows7/8 系统,需额外执行 npm install [email protected]
  8. 在本项目根目录中打开终端并执行 node_modules/.bin/electron-rebuild
  9. 在本项目根目录中打开终端并执行 npm run build
  • 执行上述环境及命令后,将在根目录生成一个 out 文件夹,其中包含您本地打包好的软件文件。
  • 然后您可以修改软件代码,使用 npm start 调试,使用 npm run build 打包。
  • 如果您认为您修改开发的软件内容可能对其他人有相似需求,您可以通过 Git 向主分支 main 提交 PR(Pull Request)。通过合并后,您的代码将并入主分支,为更多的人提供便利。

开源协议

本软件遵循 GPLv3 开源协议,以下为该协议内容解读摘要:

  • 可自由复制 你可以将软件复制到你的电脑,你客户的电脑,或者任何地方。复制份数没有任何限制
  • 可自由分发 在你的网站提供下载,拷贝到U盘送人,或者将源代码打印出来从窗户扔出去(环保起见,请别这样做)。
  • 可以用来盈利 你可以在分发软件的时候收费,但你必须在收费前向你的客户提供该软件的 GNU GPL 许可协议,以便让他们知道,他们可以从别的渠道免费得到这份软件,以及你收费的理由。
  • 可自由修改 如果你想添加或删除某个功能,没问题,如果你想在别的项目中使用部分代码,也没问题,唯一的要求是,使用了这段代码的项目也必须使用 GPL 协议。
  • 如果有人和接收者签了合同性质的东西,并提供责任承诺,则授权人和作者不受此责任连带。

electronclassschedule's People

Contributors

enderwolf006 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

electronclassschedule's Issues

功能请求Asking!

能否加入类似config文件去修改电子课表的包括但不限于课程安排、课时调整等功能呢?Thanks!

添加可视化编辑课程功能

下面是GPT生成的逻辑
`

<title>Schedule Config Editor</title> <style> /* CSS 样式可以在此编辑 */ body { font-family: Arial, sans-serif; } label { display: block; margin-bottom: 5px; } input[type="text"] { width: 100%; padding: 5px; margin-bottom: 10px; box-sizing: border-box; } textarea { width: 100%; height: 100px; padding: 5px; margin-bottom: 10px; box-sizing: border-box; } #output { width: 100%; height: 200px; padding: 10px; box-sizing: border-box; border: 1px solid #ccc; overflow-y: auto; } </style>

Schedule Config Editor

Countdown Target:
    <label for="subject_name">Subject Name:</label>
    <textarea id="subject_name" name="subject_name"></textarea>
    
    <label for="timetable">Timetable:</label>
    <textarea id="timetable" name="timetable"></textarea>
    
    <label for="daily_class">Daily Class:</label>
    <textarea id="daily_class" name="daily_class"></textarea>
    
    <label for="css_style">CSS Style:</label>
    <textarea id="css_style" name="css_style"></textarea>
    
    <button type="button" onclick="saveConfig()">Save Config</button>
</form>

<div id="output"></div>

<script>
    // JavaScript 代码可以在此编辑
    var scheduleConfig = JSON.parse(JSON.stringify(_scheduleConfig));

    // Function to save the edited config
    function saveConfig() {
        var form = document.getElementById('configForm');
        var formData = new FormData(form);
        var config = {};

        for (var pair of formData.entries()) {
            config[pair[0]] = pair[1];
        }

        // Convert textarea values to objects if applicable
        ['subject_name', 'timetable', 'daily_class', 'css_style'].forEach(key => {
            if (config[key]) {
                try {
                    config[key] = JSON.parse(config[key]);
                } catch (error) {
                    console.error("Error parsing JSON for " + key + ": " + error);
                }
            }
        });

        // Update output
        var outputDiv = document.getElementById('output');
        outputDiv.textContent = JSON.stringify(config, null, 2);
    }
</script>
`

希望增加修临时更换课表的设置

如题,已经在b站上留下过评论了,如果有空的话还是希望能完善一下下这个功能,比如可以指定某一天更换为休息天/其他日的课表,也希望作者要以学业为主哈,不要耽误了高考呐。
【给后面看到这个issue的人】作者在b站上的回复是“暂时还没有这个功能,不过可以通过‘计时矫正’这个功能调快或调慢几天,86400秒为一天”

增加任务栏里的课表程序展开按钮功能

增加任务栏里的课表程序展开按钮功能——显示本周(下周,因为单周双周周测内容不同)所有课程
保留课程表点击即透明功能。
如图
屏幕截图 2024-04-19 191730
多加一个“本周课程”按钮,打开时独立一个窗口显示本周课程
谢谢大佬

功能请求

能添加一个更改scheduleconfig.js的可视化UI吗,有时候课表变动过大不是很好改,改完之后容易出现bug

功能请求

设置特别情况(ppt)下隐藏上课倒计时or可移动倒计时

功能请求

希望可以在特定时间(例如早,晚自习)将课表置顶,其他时间隐藏

功能新增

希望可以增加上课提醒
就是如果选择了上课隐藏而没有选择课上计时,可以在到达上课时间或者上课前一分钟在课表位置单独高亮显示本节课的上课科目,之前(现在)正在用的这个较为简单的课表软件就有这个功能
https://github.com/DuguSand/class_form
441917122417082

适配

请问能否适配32位系统?感谢!

[功能建议] 支持修改课表尺寸/根据屏幕分辨率灵活调整大小

课表大小似乎是直接以像素为单位的,在我家用机1920x1080的屏幕上效果还行,但是学校电脑屏幕是1600x900会导致课表看起来有点大:
image
屏幕截图 2024-04-02 215011

建议添加根据屏幕分辨率自动调整课表大小的功能,比如可以设定课表长度最长占整个屏幕的百分之多少,实在不济的话加一个手动调整大小也是可以的

添加新功能

  1. 加天气预报(虽然没啥用)
  2. 优化倒数日精度(2.856天这样的)
  3. 在某科关闭上课计时

[Bug] 最后一节课结束后课表部分课程显示异常

1.系统环境:
系统:Windows10 21H2 内部版本 19044.4170
(希沃魔改Windows10系统)
使用最新版2024/4/04电子课表测试
2.问题描述/复现:
当最后一节课结束后,在课表最后会展示最后设置的一个显示内容(如“放学78:30”),但是课表的最后一节课仍然会绿色高亮闪烁,而不是变成灰色展示
3.附件
eg

功能改进

When the four-week cycle is opened, whether the previous list can only be displayed according to the list of reads instead to the list of the previous two weeks.

规范issue格式和规则

issue实在是太乱了,全是功能请求一类的名称,不能快速展示真实问题
请求规范反馈格式

样式改进

1.在经过多天的统计后发现:老师的PPT一般在左右两边都会空出一定的位置,可以将课表改为一竖列,而上课倒计时在屏幕正上方中间为更合适的(适用于短小的科目全称)
2.GUI内能提供修改颜色和字体的途径
3.在配置文件(不是课表配置文件)内多写一写注释,比如:在main.js中win.webContents.send指向的HTML或js的定义在哪里等

更多功能

大佬 能不能加一个点击课表向下展开显示本周所有课程的功能啊很需要

功能请求

希望能够
增加显示本周为第X周的功能;
增加值日生功能(与课表类似,按顺序轮流);
将临时换课的课程在课表上高亮或使用其他颜色显示;
因大部分课件无法填满整个屏幕,左右两边有空白,可将课表信息等竖直放置在屏幕的左侧或右侧。

更新意见请求

问问作者能不能更新 1. 针对特定课程的上课不计时(只最小化显示课程名称)。 2.上课的全屏提醒。3.课程表两边的额外文字编辑空间(比如擦黑板之类的) 这些是我们老师和我用了这几天提的意见,望作者可以抽空更新下,谢谢�

建议——添加部分功能

1.新增上课下课课表动画,同时播放语音,提醒同学们上课以及老师下课
2.可以的话,添加“是否固定”选项,使课表可移动(主要是上课倒计时)
.3可以将使用人数少的功能独立推出新版本

功能请求

1.config里面支持输入开学日期,自动判断单双周
2.添加云更新,有新版本自动更新

[Suggestion] 开启GitHub Discussions功能

可以开启本项目的GitHub Discussions功能,方便大家对本项目进行高效讨论

GitHub Discussions官方简介:

GitHub Discussions 是一个围绕开源或内部项目为社区提供协作沟通的论坛。 与 GitHub Issues 不同,讨论用于需要透明和可访问的对话,但不需要在项目上进行跟踪,并且与代码无关。 讨论使公共论坛中能够进行流畅、公开的对话。
通过连接和提供更集中的区域来连接和查找信息,讨论为更多协作对话提供了空间。

GitHub Discussions 快速入门:https://docs.github.com/zh/discussions/quickstart

安化一中电位提出的新功能与意见

1.数学老师用希沃轻白板时上面容易影响触控
2.建议早自习可以隐藏课表或者把早自习单独列为一节课,有的时候会挡住课件
3.建议把日期改成幼圆字体的周一
4.建议添加值日生功能
5.课表修改没搞清楚,经常改了第二天一大堆报错课程

自习课种类

(我觉得)可以添加自习课的种类以应对不同不同科目的自习课(语文自习数学自习)
IMG_6813
供参考的示意图

希望新加功能

下面的要求有点多,作者做这么多也非常辛苦了,还是优先以自己的学业为主:
1.临时更改一整天的课程为另一天的课程,毕竟要考虑到放大假要换当天课表的情况,就比如接下来的清明。
2.添加值日生,我们明天两个值日生,固定顺序。
3.指定科目不显示上课计时。
4.如果可以的话,可以加点快捷键控制。
5.板书靠近时淡化课表的时间多一点,或者增加设置项。
6.可以在计时结束前2分钟,数字变红(预报铃),也行增加设置项。

[Bug]特定场景时计时模块时间更新停滞、被覆盖

1.系统环境/涉及软件:
系统:Windows10 21H2 内部版本 19044.4170
(希沃魔改Windows10系统)
软件:希沃白板5.2.4.6909
2.问题描述/复现:
I.当希沃白板扫码/账密登陆后,弹出的课件列表会导致电子课表的计时模块停滞,当移动课件列表窗口、点击课件列表选项和双击打开课件后,计时恢复到正确时间并继续计时
II.当使用希沃白板手机APP向电脑的希沃白板投屏图片时,整个电子课程表会被直接覆盖,退出投屏图片后,电子课程表恢复正常运行/展示
3.附件视频展示问题
(暂时只有问题1-I的复现展示视频)

eg.mp4

4.感谢作者制作并开源软件!不着急修BUG加功能,以学业为主哈,不要耽误了高考

Bug 关于倒计时卡住和未置顶

1.希沃白板开始授课的时候倒计时会卡住,需要点击屏幕才能恢复倒计时。
2.有时候开启了置顶但没有置顶,需要重新开启置顶才能恢复

每日自动叠加校正时间

考虑到大多数学校响铃的时间并不准确且每天都有偏差,为避免课表显示时间与学校响铃时间不匹配,建议作者您在矫正计时选项卡中新增如下功能:
每日自动叠加校正 允许用户输入一个时间秒数(精确到毫秒),ClassIsland 每日将在校正秒数的基础上加上或减去该秒数。该操作将在设置后的每个二十四点生效

增加功能

1.点击课表特定位置向下展开显示本周所有课程
2.课上小窗显示当前时间 科目 下节科目 如:15:30 语文 下节:数学 (不需要课上计时。老师说会分散注意力)
谢谢大佬

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.