Git Product home page Git Product logo

flatorte's Introduction

Flatorte

A WebCal server for courses at the Offenburg University

Installation

Requirements:

  • Crystal 1.2.0 (or later)
  • Shards
  • TheCitadelofRicks 1.3.0 (or later)

Use the following to build Flatorte:

shards build --release --no-debug

The executable will be located in the bin directory of this repository.

If you want to use TLS to encrypt connections, you can use Let's Encrypt with certbot. Use something along the lines of the following to obtain your certificate:

certbot certonly -a standalone -d cool.domain.ai

Usage

Flatorte can be started without any arguments. Traffic won't be encrypted in this case.

To specify the private key and the certificate chain, use the according parameters:

flatorte -k privkey.pem -c fullchain.pem

If you want to load some courses initially to get the first response faster, use the --init option:

flatorte --init INFM1,INFM2

For more information, see

flatorte --help

Development

  • Follow the official coding style and run crystal tool format before comitting.
  • The server needs to keep sending responses fast. This is one of the main reasons for this service to exist.
  • Be nice ;)

Contributing

  1. Fork it (https://github.com/hannesbraun/flatorte/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

Special thanks go out to Jannik aka Seil0 for providing TheCitadelofRicks.

License

Flatorte is licensed under the GNU General Public License 3.

flatorte's People

Contributors

hannesbraun avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

flatorte's Issues

Keep timetable history

The current implementation discards all the timetables as soon as the corresponding week is over. It may be desirable to keep them (either indefinitely or until the end of the semester). Keeping the timetables indefinitely would also lead to larger response messages. I'm not sure yet how critical this is.

Set timezone to Europe/Berlin

Currently, we're using UTC for DTSTART and DTEND. This results in problems regarding summer and winter time. We should change that. This also requires the use of VTIMEZONE.

Use weekNumberYear to determine week

Right now, a date/week is calculated by assuming week_index=0 to be current week. It may not be assured that is is always the case (especially on Sundays). This may lead to the courses being offset by one week while the assumption isn't true.

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.