Goals/Objectives/TO-DO
- Work with multiple hotspot/captive portal managers (Chillispot,CoovaChilli,WifiDog,DD-WRT.)
- It will be used by any of the major Open Source hotspot or captive portal managers. I am currently focused on Chillispot/CoovaChilli for the initial development, but would like to find others who would work on WifiDog (I've started, would like someone to complete) or any of the others out there.
- Branding - Can access different page templates depending on how it was called (Directory/cgi name) for a full branded solution
- It can support the ability for "branding". This allows a single installation to support hundreds of different looks. If you decided to target all the coffee shops in your area, you could have logo branded looks for each site. There are currently 2 types of branding; Subdirectory and Alias. For subdirectory, it will be called as "/cgi-bin/COMPANY/tucuam.cgi" and pull information specific to that company from that directory. For alias, it will be called as "/cgi-bin/TUCUAM/COMPANY.cgi" and then will brand it as that company.
- Information can be stored in plain text, DB, or MySQL files
- Instead of forcing the installation to load specific DBM or database, they can mix/match how they want to store data. It also can be different per branded site.
- Templates - Instead of hardcoded pages, they have on-the-fly information insertion or replacement
- Instead of the pages being a strict format, a template is created for each site. Data is placed into it using %DATAITEM% substitutions. This allows for simple single pages to wild multi frame pages
- Wi-Fi AllianceWireless Internet Service Provider roaming (WISPr) integration
- WISPr will be kept in mind at all times and coded for to give the greatest flexibility to the Wi-Fi devices that can be coded to.
- Sanitizes all data input
- All data is checked and cleaned, from variable names to input. The option of accepting changed data after normalization, or telling the user he has attempted to hack in is supported.
- CAPTCHA availability to reduce hacking
- CAPTCHA is an additional option to make sure that a human is reading and submitting the information. This will reduce the possibility of someone hacking an id/pass or pin code.
- Ability to lock a users login to the MAC or NAS id
- If desired, you can determine that a user is only able to access from a specific NAS id or by their MAC address.
- Default secret, secret per NAS id or combination
- Instead of just having a global "secret", you can have a secret per NAS id. You can also set that if it is not found, or doesn't match, that you can then fallback to the default secret.
- Localization of off-site pages/graphics for walled-garden usage
- Instead of adding sites to the walled-garden for access, and then worrying if they then reference an non-walled site, you can set up a localized version of the content you want to display. This is most useful for things like RSS of weather conditions, etc.
- Flexible banner rotation/tracking
- Be able to show banners prior to users logging on and sell ad space
- Time/Access purchase module to interface with PayPal,Neteller,Firepay,900 #, Pin Code, Scratch off Cards
- The more payment options, the more likely people will be able to complete a transaction.
- Data carryover
- Be able to keep the data between user clicks, even on banners, localized feeds, payment, etc.
How To Help
Joing the SF Mailing List, its that easy!
Releases
Releases are on a "As I feel I hit a milestone" basis. Once more people start to get involved or even WANT the program, I could move towards planned/scheduled releases
Development
Currently I am using DD-WRT with Chillispot. That goes to the Seabreeze Connections server running The UAM Center V 0.00001a.beta authenticating against Free Radius with a MySQL back end.
I learned a very weird style of Perl program formatting, so I run it through Perl Tidy with the command line "perltidy -i=8 -t -pt=2 -bt=2 -sbt=2 -ci=4 -noll -sfs -nasc -ce".
The code isn't as efficient and clean as I like right now, sometimes I use global variables, sometimes I pass them to the routines. I'm open to criticism about handling things better
Perl Modules Used
Please visit the project page for details.
|