+HotelGate product.
[www.jankratochvil.net.git] / product / hotelgate / Case.pm
1 # $Id$
2 # Deployment cases of 'My::Project::hotelgate'
3 # Copyright (C) 2005 Jan Kratochvil <project-www.jankratochvil.net@jankratochvil.net>
4
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; exactly version 2 of June 1991 is required
8
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 # GNU General Public License for more details.
13
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17
18
19 package product::hotelgate::Case;
20 require 5.6.0;  # at least 'use warnings;' but we need some 5.6.0+ modules anyway
21 our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; };
22 our $CVS_ID=q$Id$;
23 use strict;
24 use warnings;
25
26 use My::Web;
27
28
29 sub handler
30 {
31 Wrequire 'product::hotelgate::Lib';
32 my $W=product::hotelgate::Lib->init(
33                 "title"=>"HotelGate: Deployment Scenarios",
34                 );
35
36 print <<"HERE";
37 <h1>HotelGate: Deployment Scenarios</h1>
38 HERE
39
40
41 my @items=(
42
43         { "id"=>"full","title"=>"Ticket access from hotel restaurant with free access from hotel rooms","body"=><<"HERE", },
44 <p>Hotel provides Internet access for its rooms over ethernet cable. Charge is
45 enlisted on the final hotel receipt - the receptionist can permit/forbid free
46 Internet for each specific room of the hotel. Hotel also provides its
47 restaurant with public hosts access, Internet provided over WiFi in this
48 restaurant requires valid id/password from tickets being sold and printed by
49 the staff. The tickets are usually pre-printed in a stock there.</p>
50
51 <ul>
52         <li>Rooms Internet access control and tickets printing is provided by regular
53         PC with a web browser.</li>
54
55         <li>WiFi access is provided by additional common access point in bridging
56         mode.</li>
57
58         <li>Segments (each room, restaurant) separation is provided by VLAN
59         functionality of switches with a single HotelGate ethernet
60         interconnection.</li>
61 </ul>
62 HERE
63
64         { "id"=>"cafe","title"=>"Coffee shop with ticketed Internet access","body"=><<"HERE", },
65 <p>Coffee shop provides Internet over WiFi. Access requires valid id/password
66 from tickets being sold and printed by the staff. The tickets are usually
67 pre-printed in a stock there.</p>
68
69 <ul>
70         <li>Tickets printing is provided by regular PC with a web browser.</li>
71
72         <li>WiFi access is provided by additional common access point in bridging
73         mode.</li>
74
75         <li>No additional switches needed.</li>
76 </ul>
77 HERE
78
79         { "id"=>"rooms","title"=>"Simple free hotel rooms Internet access without any extra charges","body"=><<"HERE", },
80 <p>Hotel provides Internet access for its rooms over ethernet cable. Charge is
81 covered by general hotel accomodation fees for all hosts.</p>
82
83 <ul>
84         <li>Rooms Internet access control and tickets printing is provided by regular
85         PC with a web browser.</li>
86
87         <li>Only the very basic switches needed as there is no VLAN functionality
88         required.</li>
89
90         <li>No control PC or staff training needed.</li>
91 </ul>
92 HERE
93
94         );
95
96
97 print <<"HERE";
98 <ul>
99 HERE
100 for (@items) {
101         print <<"HERE";
102         <li>@{[ a_href '#'.$_->{"id"},$_->{"title"} ]}</li>
103 HERE
104         }
105 print <<"HERE";
106 </ul>
107 HERE
108
109 for (@items) {
110         print <<"HERE";
111 <h2 id="@{[ $_->{"id"} ]}">@{[ $_->{"title"} ]}</h2>
112 HERE
113         print leftimg $_->{"body"},$_->{"id"}.".svg",$_->{"title"};
114         }
115
116
117 exit;
118 }
119 1;