/shu-scheduling-helper

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

Primary LanguageVueGNU General Public License v3.0GPL-3.0

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

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