SEMINAR ENGINE ============== I have developed the Seminar Engine for handling the ELAG 2001 participant registrations for the seminar itself, for the Workshops, Social events and catering. Some provisions were developed to ease handling of Workshop Papers and Progress Reports including subsequent generation of simple slide shows out of received Powerpoint presentations. The whole engine consists of a combination of static html pages, cgi scripts invoked by an action in html page, awk scripts generating many dynamic html pages and shell scripts running either periodically (cron activated) or invoked manually. The awk scripts are invoked either by a cgi script or by a shell script, which itself is triggered either manually or by a check_new_part[icipant] or check_new_report shell scripts. The check_new* scripts are in turn triggered periodically by a cron table. Participant Registration ======================== The FormMail program stores the form data to a file. This file is tested (by the check_new_part shell script periodically triggered by cron daemon), if there was a change, new participant list by names and by country was generated automatically (gen_all.sh called by check_new_part calls in turn gen_part.sh Sort by family name, First name, Country, generate particip.html gen_ctry.sh Sort by Country, family name, First name, generate countries.html gen_WS_part.sh - workshop participant lists Sort by workshop number, ws choice, family name, First name generate ws'x'.html gen_log.sh - logistics (catering, social events - for organisers only)) Generate logistics.html Progress reports ================ Progress report template is generated by the awk script (gen_rep.awk) that is invoked by clicking the white icon on the participants by country html page (countries.html), data that can be taken over for the template are taken from the participants file (particip.csv). The gen_rep.awk changes the report status in the CountryInst.csv. The CountryInst.csv is checked by the check_new_report shell script, if it detects the file changed, it invokes gen_tempnames.sh, gen_reports.sh and gen_ctry.sh (because the color of report icons changed) shell scripts gen_tempnames.sh generate new Progress Reports names so that they can be later replaced by gen_rep.awk (invoked by clicking the white PR icon = call to cgi script nph-ELAG2001.rep.gen) gen_reports.sh generate Progress Reports List (reports.html) www/cgi-bin directory ======================== FormMail25en.pl modified Matt Wright's FormMail http://www.worldwidemart.com/scripts/formmail.shtml. Data from the form are not sent by email but rather appended to a semicolon delimited file (like .csv Excel format) particip.csv, also date, time, IP and verbal address and browser is logged to particip.log nph-ELAG2001.part.show invokes show_part.awk: generate participant data window invoked by clicking participant name in most html pages nph-ELAG2001.rep.gen invokes gen_rep.awk: generate template for this participant's mother institution ~ directory =========== .netrc ftp script sending pie.csv data to a Windows machine for further processing in Excel, the pie charts are than manually ftp-ed to GifJpg directory to be shown via javascript invoked by clicking the first column headings on countries.html page Commented elag2001 directory listing ==================================== check_new_part* shell scripts testing arrival of new participant or check_new_report* new progress report reminder* shell script generating reminders sent to ELAG-L shell scripts ------------- backup.sh* runs daily (by cron) Create backup copy of vital files Generate pie charts & ftp them to jupiter (Novell server) for further Excel & PaintShop processing description of other shell scripts see above gen_PRauth.sh* gen_WS_part.sh* gen_all.sh* gen_ctry.sh* gen_log.sh* gen_part.sh* gen_reports.sh* gen_tempnames.sh* awk scripts ----------- gen_PRauth2.awk gen_WS_part.awk gen_inst.awk participants by country / institution gen_log.awk logistics info page gen_part.awk participants by name gen_pie.awk pie charts gen_rep.awk report template gen_reports.awk report list gen_sortkey.awk for sorting names gen_tempnames.awk dummy templates genphoto.awk auxilliary, generate body of Gallery.html show_part.awk generate a participants "business card" Semicolon delimited parameter files ----------------------------------- CountryInst.csv authors.csv paper and workshop background papers particip.csv main participants file particip.hdr description of particip.csv fields pie.csv raw pie chart data generated by workshops.csv list of workshops, from it the workshops.html is generated workshops.hdr description of workshops.csv fields Static and generated html pages ------------------------------- ELAG-info.html basic information about ELAG ELAG2001.html main page Gallery.html Prague.html about Prague RepFoot.html used by Report Template generating awk RepHead.html contact.html for sponsors countries.html generated: participants by country excursion.html guidelines.html how to register, etc. hotels.html information.html main page of local information invitation.html logistics.html generated: meals, vegetarians, social events particip.html generated: participants by name presentations.html sponsor presentations program.html rates.html bank rates of June 4, 2001 register.html registration form report_form.html how to generate report template reports.html generated list of reports reservation.html list of hotel reservation services schedule.html social.html events spons_info.html for sponsors sponsors.html list of taxi.html about Prague taxis workshops.html generated ws list ws1.html generated ws1 page ws2.html ... particip.log log of registration form submitters Directory GifJpg ---------------- 2001.gif ELAG 2001 logo Word.gif Word icon ctry-pie.gif manually converted from Excel generated pie-chart czechia.gif map from Lonely Planet czechia2.gif map elag01.gif ELAG violet logo europe.gif map from Lonely Planet fax.gif fax icon for participant's "business card" first.gif slideshow button flag-cz2.gif Czech flag home.gif slideshow button html.gif Netscape icon inst-pie.gif manually converted from Excel generated pie-chart last.gif slideshow button mailbox.gif mailobox icon for participant's "business card" new.gif next.gif slideshow button pdf.gif Acrobat Reader icon phone.gif phone icon for participant's "business card" ppt.gif PowerPoint icon prev.gif slideshow button prg_elag.gif map of venue prg_hot.gif map of hotels prg_hot1.gif ditto with marked hotel 1 prg_hot2.gif etc. ... rep_green.gif } rep_white.gif } report icons rep_yellow.gif } venue.jpg detailed map of venue world.gif map from Lonely Planet x.gif 1x1 pixel for dimensioning tables, etc. Directory Holna --------------- was used just for post seminar excursion Directory Papers ---------------- contains another directory for each paper named by the author name and: PapFoot.html paper footer used by ppt2html.awk PapHead.html paper header used by ppt2html.awk Welcome.html ppt2html.awk script generating slide show from Powerpoint slides ppt2html.sh* invocation of the above (invoked manually) Directory Photos ---------------- photogallery Directory Reports ----------------- contains an html file for each delivered report named by country and abbreviated institution name, contains also needed graphics, etc, e.g. ArmeniaFundamental_Scientific_Li.html BelgiumRoyal_Library_of_Belgium.html CroatiaNational_and_University_L.html ... Directory Templates ------------------- contains a dummy template with correct chmod attributes and generated templates for each institution that clicked the white icon, e.g. dummy ArmeniaFundamental_Scientific_Li.html BelgiumEUROCONTROL.html BelgiumRoyal_Library_of_Belgium.html CroatiaNational_and_University_L.html ... Directory Workshop ------------------ contains workshop introductory papers in html and/or Word format, e.g. ws2.doc ws2.html ws3.doc ws4.doc and also Directory Workshop/Reports -------------------------- contains a directory for each workshop report, and RepFoot.html report footer used by awk RepHead.html report header used by awk ppt2html.awk script generating slide show from Powerpoint slides ppt2html.sh* invocation of the above (invoked manually)