Coder Social home page Coder Social logo

yukaii / ics-scheduler Goto Github PK

View Code? Open in Web Editor NEW
12.0 3.0 5.0 15.81 MB

:date: 課表行事曆製作工具

Home Page: https://yukaii.tw/ics-scheduler/

License: MIT License

JavaScript 44.13% CSS 3.61% HTML 38.62% Shell 13.64%
ics schedule calendar course ntust rfc-5545 brunch jquery gh-pages travis-ci

ics-scheduler's Introduction

課程行事曆製作工具

Build Status

preview

一個把學校課表轉成 ics 格式(iCalendar, RFC 5545) 的工具 ❤️。支援各平臺行事曆軟體。

技術方面,本專案前端採用 Bootstrap v4 alpha 以及 jQuery 3。雖然已經 2016,不過做架構簡單的東西,這樣就夠了。

However, it's not the future 😂

支援學校列表

  • 臺灣科技大學

更多請自行貢獻或是拍打餵食專案作者 😅

Development

請確定已安裝 Node.js

本專案採用 brunch 作為建置工具,總之設定檔比 webpack 少寫很多 😆

npm install
npm install brunch -g
brunch watch --server

Build for production

brunch build --production

Troubleshooting

ENFILE: file table overflow

Reference to this issue: karma-runner/karma#1979, run

sudo launchctl limit maxfiles 16384 16384 && ulimit -n 16384

Deployment

本專案使用 Travis CI 做 Continous Deployment,自動部屬到 GitHub Pages 上。更多內容請參考本專案 Wiki

https://github.com/Yukaii/ics-scheduler/wiki/Deployment

Contribution

參照本專案 Wiki 的 Contribution Guide

Credits

本專案改寫自 Neson 四年前的專案 NTUST-ics-Class-Schedule。為了用 GitHub Pages 免費部屬,由 PHP 改為客端 JavaScript 重寫。去掉資料庫,取而代之是純粹的 JSON 檔案儲存。

更多實作細節可參考本專案 wiki Architecture 部分。

License

MIT

ics-scheduler's People

Contributors

yukaii avatar zetavg avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

ics-scheduler's Issues

Incremental crawler build(more scalable architecture)

data 裡面的資料夾不需要在每次 production 都更新,可以看建立時間,兩三天再跑就可以了。

但也要提供一個強制跑的方法,比如設定另一條 crawl 的 branch 也是打上去。

Error Handling

handle course code not found and show error messages (while still building ics)

Progressive Web App

既然沒有後臺、沒有 Server Side 資料庫了,那做成完全 Client side 的 App 也不為過吧 😆

貼上的課就用 local storage 暫存代碼,反正也就是個界面顯示時間軸罷了(嗆哦)

Sharable Links

通通放在 url param 就對啦,比如

htts://host/?course_code[ntust][]=CC1234567&course_code[ntust][]=CC1234553

Page on load 在 parse 出來預先填進 textarea,實作起來倒是不難。不過完全 static web hosting 限制就多了,分享頁面在 Open Graph 就別想客製化

Safari invalid date

雖然 Chrome 市佔最高,還是一堆人用 iPhone der

用 moment.js 勢在必行啦 😓

找空教室

「找空堂」的相反功能,有地方能吃便當還是不錯的 😅

Auto run Crawler on Travis

  • checkout 到一個獨立(orphan)的 branch,抓下來的資料檔放那裡,處裡方式類似 gh-pages
  • 另一個 build script,專門讓 travis 跑爬蟲建資料在 orphan branch
  • 寫入 raw 的 JSON 要壓成 gzip

Roadmap

Online checklist

  • Contribution Guide
    • Crawler specification
    • PR template
    • LICENSE
  • Architecture Guide
    • About Travis CI deployment
    • Data Struture
  • Multi Platform Guide #9
    • iOS Guide
    • Google Calendar Guide
    • macOS Calendar App Guide

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.