We all know how well the infamous reg chula performs. The worst thing is it has been not good for more than 30 years and no one seems to be able to deal with the problem.
One of the biggest difference between university and (Thai) secondary school is the students have to arrange their own class schedule. Arranging schedules can cause (at least to me) quite amount of pain in the process since we have to use the reg chula.
With Chulalongkorn university being one of the top leading universities in Thailand. We can't stand CU not having a high-end efficient tool helping students to do simple tasks such as arranging class schedule.
- visually visualize class schedule as time table (similar to how reg chula renders the hideous crimson class table for us).
- able to edit and re-render the table smoothly.
- able to hide/show courses.
- able to show conflicting classes (as having conflicts in schedule tends to be illegal soon).
- able to change across sections (to show how the schedule would look like with different sections on the same subjects; for subjects with different schedules on different sections).
- automatically arrange schedule based on input courses (this will probably be done by using state-space search).
- produce registration summary so we can fill that hideous form on reg chula.
- should be able to save/export to somewhere such as google sheets.
- we are not sure how to implement this feature yet the details/schedules of subjects should be directly fetched from reg chula. this require unneccessarily hard work just to get small data (that should be publicly accessible) from the reg itself because reg chula doesn't provide APIs or even a page that we can easily request and scrape from its HTML.
Schedule {
courses: List<Schedule>
}
Course {
id: Number,
name: String!,
color: String,
* finalExam: ExamTimeRange,
* midExam: ExamTimeRange,
sections: List<Section>,
}
Section {
number: Number!,
teacher: String,
show: Boolean,
remark: String,
tdf: Boolean,
timeRanges: List<TimeRange>,
}
TimeRange {
day: String,
start: String,
end: String,
}
after cloning the repository.
# install dependencies
npm install
# serve with hot reload at localhost:8080
npm run dev
# build for production with minification
npm run build
# build for production and view the bundle analyzer report
npm run build --report
# run unit tests
npm run unit
# run e2e tests
npm run e2e
# run all tests
npm test
For a detailed explanation on how things work, check out the guide and docs for vue-loader.