Giter Site home page Giter Site logo

shuosc / shu-scheduling-helper Goto Github PK

View Code? Open in Web Editor NEW
73.0 12.0 6.0 1.2 MB

A web-based timetabler helping SHUers filter and preselect courses easily. SHU排课助手. 上海大学排课助手.

Home Page: https://xk.shuosc.com

License: GNU General Public License v3.0

JavaScript 40.67% HTML 6.06% Vue 53.28%
vue ant-design-vue axios localforage pako vuex vue-cli vuejs desktop mobile

shu-scheduling-helper's Introduction

English | 简体中文

SHU排课助手 Logo

https://xk.shuosc.com/


Introduction

A web-based timetabler helping SHUers filter and preselect courses easily.

This is a continuation of SHU-scheduling-helper (a Chrome extension). Considering that the update method of the extension cannot adapt to the new online courses selecting system of Shanghai University in a timely way, we decided to make this project online.

The shu-scheduling-helper project has a frontend part and a backend part. For safety reasons, the backend part is private, but its APIs are open.

Features

  • Courses looking up and filtering
  • Reserved courses list
  • Colorful timetable with editable random seed
  • Quick inputting
  • Exporting text, backup and restoring
  • Automatic conflicts solving
Frameworks & Main Libraries
Frontend vue
ant-design-vue (UI)
axios (HTTP client)
localforage (Data persistence)
pako (Compression)
vuex (State management)
...
Backend flask
...

Development

API doc (中文)

Frontend quick start

$ git clone https://github.com/shuosc/shu-scheduling-helper.git
$ cd shu-scheduling-helper
$ yarn # install
$ yarn serve # serve at localhost:8080

Build for production

$ yarn build

Directory structure

.
├── babel.config.js
├── public
│   └── ......
├── src
│   ├── apiConfig.js
│   ├── assets
│   │   └── ......
│   ├── mixins   # Mixins for common components
│   │   └── ......
│   ├── pages
│   │   ├── index   # Desktop version
│   │   │   ├── App.vue
│   │   │   ├── components
│   │   │   │   └── ......
│   │   │   └── main.js
│   │   ├── m   # Mobile version
│   │   │   ├── App.vue
│   │   │   ├── components
│   │   │   │   └── ......
│   │   │   └── main.js
│   │   ├── quick-inputting
│   │   │   ├── App.vue
│   │   │   └── main.js
│   │   └── redirect
│   │       └── main.js
│   ├── plugins
│   │   └── ant-design-vue.js
│   ├── workers   # Workers
│   │   └── ......
│   ├── storage.js   # Data persistence (compression)
│   ├── store.js   # Core part processing data
│   └── utils.js   # Some reusable logics
└── vue.config.js

Credits

As a former user of cosformula/CourseSchedulingHelper, I would like to thank the author @cosformula for the excellent website and the great inspiration for this project.

Contributing

Open an issue, feedback or send me PRs when you find any problems or want to request new features.

Please leave us a star if you like. 🌟 Thank you!

Author

@ZKLlab

License

GPL-3.0-or-later © SHUOSC

shu-scheduling-helper's People

Contributors

chinggg avatar dependabot[bot] avatar endsoft233 avatar hidacow avatar panghaibin avatar zkllab 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

Watchers

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

shu-scheduling-helper's Issues

允许重课、完善时间冲突机制

有一些课如二1-2、四1-2单,一1-2、四1-2双,两门课实际上未重课,但是显示时间冲突,能否完善一下。
对于重修的课,有时候会重课,能否完善一下,比如在解决冲突的时候,增加允许重课这一功能。

Improve ClassCard style 改进课程表卡片样式

这个feature请求与你遇到的问题有关吗?请描述这个问题

目前课程表中同一门课程的卡片样式是相同的,但其实一门课在不同时间段内容可能不同,比如 单双周 和 实验/上机,现在希望在样式上做一些小的调整以直观呈现这些属性

描述你期望的解决方案

  • 对于单双周的课时,可以添加一条对角线,并在保持原色调的同时改变颜色深浅,单周则上深下浅,双周则下深上浅
  • 对于有实验/上机的课时,可以添加能引起联想的 emoji 或 icon,如 🔬

描述你期望的其他解决方案

有更好的解决方案欢迎提出

附加内容

完成这项任务后你将会掌握:

  • HTML/CSS/JS 基础
  • Vue 基本概念

欢迎参与贡献!

Show actual weeks 显示实际上课周

这个feature请求与你遇到的问题有关吗?请描述这个问题

部分课程比如「形势与政策」和「新生研讨课」并不是每周都上课,希望能够支持在卡片上显示实际上课的周数

描述你期望的解决方案

修改 getPeriods() 中的正则表达式以获取周数,并展示在卡片中

附加内容

完成这项任务后你将会掌握:

  • 正则表达式基础
  • HTML/JS/CSS 基础
  • Vue 基本概念

欢迎参与贡献!

[Feature Request] 同时显示多学期的课

试着尝试用了一下工具,把2022-2023学年春季学期的数据抓下来了。
因为是教务老师的账号,可以提前看到数据。
最后再赞美一下排课助手!
(把json文件打包了一下,变成了zip传上来了)
20223.zip

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.