webCal


ABSTRACT
webCal is a program for creating and mantaining online calenders for courses. We expect that it will be helpful in planning courses and for keeping students aware of course progress and materials. It was written initially as a course project in SI486A, Spring 2005, by Midshipmen Addison, Cole, Estevan, Hamilton, Syre, Warren, Warner and Wilson. Further development is taken care of by me (Dr. Brown) now that they've all graduated. If you want the source to muck with, you're welcome to it, just ask me. Check out the example outputs in the table below to see what kinds of stuff it produces.

INSTALLATION
Download webCal v1.23, unpack it, type make. The executable is called "webCal".

THIS VERSION
webCal is a tool for any interested USNA CS Department faculty member. The current version is 1.21. Any bug reports or suggestions for improved interface are appreciated. I (Dr. Brown) am simply going to hack patches until I get enough feedback from people (including me!) on how the program should best work. Then it will be rewritten and done right! For instance, you'll notice that syntax errors in the input file are reported by seg faults or infinite loops ... I'm told some people prefer other reporting mechanisms.

USING WEBCAL
webCal is a Unix command-line tool. It takes lots of fun options, most of which are probably not useful. The way you'll almost certainly want to use it is:

     /home/wcbrown/bin/webCal -iso <input-file> <style-file> <output-file>
I've got a sample input and style files for you. If there are things you want to do that aren't covered there, just let me know.

exampleinputstylefileoutputcompiling command
Simplest reasonable example. source1.txt style1.css out1.html webCal -iso source1.txt style1.css out1.html
Adds lab to previous example source2.txt style1.css out2.html webCal -iso source2.txt style1.css out2.html
A blank Spring ACY06 template. source3.txt style1.css out3.html webCal -iso source3.txt style1.css out3.html

MISSING FEATURES
Here is a list of missing features or things that probably ought to change. If you make suggestions, I'll add them.

  1. A mechanism for comments in the input file!
    Done in a very limited way. Only as top-level blocks! (12/21/05)
    Done systematically with # in the usual way (\# to escape). Also, backslash-newline does line continuation. (4/23/07)
  2. The date format probably ought to be month-day-year rather that day-month-year.
  3. nice to have an option to have the months run together in some way. I don't like having a week split up across different month "pages". We discussed shading months differently and then labeling each box 1-Sep 2-Sep etc. -Luke
  4. let me schedule "topics" on weekends -- sometimes useful for providing other info, like the week number -Luke
    Done! (8/2/05)
  5. let me skip a date in a list w/o listing it as a holiday. (e.g. have a NoOp in a topic list) -Luke
    This is actually possible right now. If a topic begins with * (i.e. an asterisk) the topic will be unnumbered. The * actually shows up in the Calendar, though, which is probably not ideal. If anyone squeeks really loudly about it I'll change that.
  6. more advanced -- we talked about user-defined classes -- so that DueDates derives from NonBlockingHolidays and I can easily define a style for that. -Luke
  7. Ordering constraints across different topics lists. Suggested by Ric Crabbe.
  8. webCal could put id tags on each month, so the parent link could pop to the current month ... which would save students some scrolling.
    Done! (12/21/05)
  9. Multiple meetings on the same day, e.g. a MWFF meeting time.
    Done! See me for more info. (12/21/05)