New Open Source Project – Room Booking System

I’m pleased to announce a new open source project for a room booking system – it’s basically a backend to the excellent fullcalendar.js jQuery plugin, using cfWheels as the back end.

Features include:

  • All (well most) configuration done via database settings
  • Uses the DBMigrate plugin for cfWheels for easy future updates
  • Uses the FullCalendar.js month/day/week views
  • Allows for multiple locations, which can be filtered from the main view
  • Each location can be colour coded, and have room layout options
  • Allows you to bulk create events, so easy to add placeholders for repeating series
  • Completely configurable via web interface, all you need to do is setup a datasource called ‘roombooking’
  • Has a theme switcher so you can use/try any theme on http://bootswatch.com/
  • Can send confirmation emails on a new booking

You can download the code from gitHub – https://github.com/neokoenig/RoomBooking or try a demo at http://roombooking.oxalto.co.uk. Some screenshots below. Full documentation at http://roombooking.readme.io/

 

Feel free to contribute or log a bug at https://github.com/neokoenig/RoomBooking – hopefully it’ll be useful for someone!

  • Ken B

    This looks awesome. Just downloaded and will be giving it a whirl. If all goes well I’d like to use for my church. They’ve been looking for just such a tool. I’ll be sure to give you credit with a link to your blog. Nice work.

    • Cool, there’s still a few bugs, so do check the github issue queue

  • Ken B

    This looks awesome. Just downloaded and will be giving it a whirl. If all goes well I’d like to use for my church. They’ve been looking for just such a tool. I’ll be sure to give you credit with a link to your blog. Nice work.

    • Cool, there’s still a few bugs, so do check the github issue queue

  • Greg Rice

    Thanks for making this, and making it available, Tom!
    I’m trying to use CSV data of movie showtimes, for about 2000 theaters, updated weekly.

    in my application:

    – I’m thinking that Theater data remains constant, like Room or Resource to be booked.
    – I need placeholders for weekly changing showtimes, multiple showings per day/night
    – I’m thinking that each screen of a multi-screen theater (multiplex cinema) could be a room, like each of your tabs in Room Booking System (but I wouldn’t have them all visible, but rather associated with each US state = approx. 50 tabs or drop-down menu item – using IP sensing geolocation script to present site visitor with his/her local info – but with drop-down option to switch State info displayed – for the many cities at borders of adjacent states)

    Does this make sense? Is there any existing script or application that could do this better? (free and using CSV or text files – i’m trying to have data pre-sorted for users, so no need for user access to database, no need for server based database, keeping it simple for 1 week’s worth of data, simple for site admin – me – to handle; maybe just save weekly data in CSV tables, ready for offline office use in database)

    thanks,
    Greg
    DeafAccessFilms.com

    • Hmm, sounds like you need to display a lot of data for the month view: I would probably build some sort of selection page as you mentioned, and then populate the ‘calendar’ page on a per cinema basis. Either way you’d need some sort of script to bulk import csv into the database at the beginning of the week (which would certainly be do-able), but this application clearly seperates locations from events, so you’d need to insert into two tables (so you’d need some sort of script to read and parse your CSV). Alternatively you could possibly serve the CSV as json directly, but that might mean parsing on each request which would be bad.

      So in short, you probably could do it using this system & a few tweaks, namely with importing, sorting and parsing data & the initial selection screen, but it would require a bit of serverside knowledge. You say no server based database, but I don’t think that’s wickedly practical – I’d be looking more at getting the CSVs into mySQL in an easy fashion. http://www.bennadel.com/blog/2041-UPDATE-Parsing-CSV-Data-Files-In-ColdFusion-With-csvToArray-.htm might be helpful.

      • Greg Rice

        Thanks Tom, for your quick and thoughtful response. It helps my sense of sanity to hear from a real programmer that my proposal is doable. 🙂 I’ll check out the site you noted. Happy Holidays to you and a prosperous New Year!!

  • Greg Rice

    Thanks for making this, and making it available, Tom!
    I’m trying to use CSV data of movie showtimes, for about 2000 theaters, updated weekly.

    in my application:

    – I’m thinking that Theater data remains constant, like Room or Resource to be booked.
    – I need placeholders for weekly changing showtimes, multiple showings per day/night
    – I’m thinking that each screen of a multi-screen theater (multiplex cinema) could be a room, like each of your tabs in Room Booking System (but I wouldn’t have them all visible, but rather associated with each US state = approx. 50 tabs or drop-down menu item – using IP sensing geolocation script to present site visitor with his/her local info – but with drop-down option to switch State info displayed – for the many cities at borders of adjacent states)

    Does this make sense? Is there any existing script or application that could do this better? (free and using CSV or text files – i’m trying to have data pre-sorted for users, so no need for user access to database, no need for server based database, keeping it simple for 1 week’s worth of data, simple for site admin – me – to handle; maybe just save weekly data in CSV tables, ready for offline office use in database)

    thanks,
    Greg
    DeafAccessFilms.com

    • Hmm, sounds like you need to display a lot of data for the month view: I would probably build some sort of selection page as you mentioned, and then populate the ‘calendar’ page on a per cinema basis. Either way you’d need some sort of script to bulk import csv into the database at the beginning of the week (which would certainly be do-able), but this application clearly seperates locations from events, so you’d need to insert into two tables (so you’d need some sort of script to read and parse your CSV). Alternatively you could possibly serve the CSV as json directly, but that might mean parsing on each request which would be bad.

      So in short, you probably could do it using this system & a few tweaks, namely with importing, sorting and parsing data & the initial selection screen, but it would require a bit of serverside knowledge. You say no server based database, but I don’t think that’s wickedly practical – I’d be looking more at getting the CSVs into mySQL in an easy fashion. http://www.bennadel.com/blog/2041-UPDATE-Parsing-CSV-Data-Files-In-ColdFusion-With-csvToArray-.htm might be helpful.

      • Greg Rice

        Thanks Tom, for your quick and thoughtful response. It helps my sense of sanity to hear from a real programmer that my proposal is doable. 🙂 I’ll check out the site you noted. Happy Holidays to you and a prosperous New Year!!

  • Cristian

    Any chance that you can provide a more in depth tutorial on how to install this? I am running a apache server on CentOS 6 and I managed to install railo, created the datasource using mysql as backend but every time I try to access the rbms web page I get either a loop or that it cannot find rewrite.cfm.

    Any thanks would be greatly appreciated … Many thanks,
    Cristian.

    • Hi Christian, see https://github.com/neokoenig/RoomBooking/issues/13
      Basically is me trying to be too clever and failing 🙂

      • Cristian

        I don’t think you are failing is just me not knowing anything about Railo/CfWheels/etc … 🙂
        I am afraid I don’t know how to uncomment the onapplicationstart …?!?

        Newbie questions: I unzipped the archive directly into the railo ROOT folder (location for default installation /opt/railo/tomcat/webapps/ROOT). Is this correct?
        What should I do about this error?
        “Railo 4.1.2.005 Error (expression)
        Message
        key [WHEELS] doesn’t exist (existing keys:applicationname)
        Stacktrace
        The Error Occurred in
        /opt/railo/tomcat/webapps/ROOT/wheels/global/internal.cfm: line 379
        377: {
        378: $header(statusCode=”404″, statusText=”Not Found”);
        379: $includeAndOutput(template=”#application.wheels.eventPath#/onmissingtemplate.cfm”);
        380: $abort();
        381: }
        called from /opt/railo/tomcat/webapps/ROOT/wheels/events/onapplicationstart.cfm: line 6
        4:
        5: // abort if called from incorrect file
        6: $abortInvalidRequest();
        7:
        8: // setup the wheels storage struct for the current request”

        Many Thanks,
        Cristian.

        • ” I unzipped the archive directly into the railo ROOT folder (location for default installation /opt/railo/tomcat/webapps/ROOT). Is this correct?”

          – Yep.

          Note, in addition to setting up the actual mySQL database, you need to add the datasource to the Railo web administrator (/railo-context/admin/server.cfm) too.

          – Now open up events/onapplicationstart.cfm, and comment out the code, (or cut and paste the contents of this file somewhere else for the moment) and then go to /rewrite.cfm?controller=wheels&action=wheels&view=plugins&name=dbmigrate

          Once you’ve run the DB Migrate script, readd the code in events/onapplicationstart.cfm.

          Finally, reload the application by going to
          /?reload=design&password=roombooking

          If you get a key [WHEELS] doesn’t exist error, that’s due to the wheels framework itself not being loaded correctly.

          I’ll try and sort this for a future release, it’s on the list!

          • Cristian

            Many thanks for your help Tom … I finally managed to get it to work but I had some issues and maybe someone else can find the information helpful.

            After, I commented out the code from events/onapplicationstart.cfm and went to /rewrite.cfm?controller=wheels&action=wheels&view=plugins&name=dbmigrate and ran the DB Migrate, the migration process wasn’t complete and I endup with DB version 008, trying to go to the next step /?reload=design&password=roombooking was taking me back to the DB Migrate menu … so I tried to migrate manually the DB to the last 5 steps, which worked so I the reload thingy again and endup with another error Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to … which let me to think that this might be related to the MySQL setup so I added in the /etc/my.cnf the following line binlog_format=ROW to the [mysqld] section and restarted the mysql server. i went to /?reload=design&password=roombooking and receid a strange message but once I went to inx.cfm the app showed up and it’s working now …

            I do have 2 more questions (cant’ help myself 🙂 ):

            1. How do I generate the api key so I can access the rss feed and test the iCal function. Will this generate a ics file?!?

            2. How can I get read off this annoying message that shows up at the bottom of the page:
            Warnings:
            The dbmigrate plugin may be incompatible with this version of Wheels, please look for a compatible version of the plugin
            The FlashWrapper plugin may be incompatible with this version of Wheels, please look for a compatible version of the plugin
            Application:
            EAD619704C9D33DAF2E74476A9164724 [Run Tests]
            Framework:
            Wheels 1.2.0-rc1
            [Run Tests]
            CFML Engine:
            Railo4 4.1.2.005
            Default Data Source:
            roombooking
            Active Environment:
            Design
            URL Rewriting:
            on
            URL Obfuscation:
            Off
            Plugins:
            dbmigrate [Run Tests]
            FlashWrapper
            Route:
            myaccount
            Controller:
            Users
            Action:
            myaccount
            Additional Params:
            None
            Caching Stats:
            culls: 0, hits: 0, misses: 1
            Execution Time:
            69ms (view ~48ms, action ~48ms, beforefilters ~14ms, requeststart ~2ms)”

            Thanks again,
            Cristian.

          • Well done – there’s clearly some mySQL tomfoolery in there I’ve not come across! To generate the API token, login as an admin and go to the user menu – then under the edit dropdown do ‘Generate API Key’ for the user in question (which may of course, be the actual admin account). then go to Events > Data Feeds from the main menu. The ics stuff is highly experimental (never done it before) but seems to work for me in outlook 2010 + mac calendar. You should be able to add it as a calendar subscription.

            The message at the bottom means you’re running wheels in design mode. Simply switch the environment by doing ?reload=production&password=YOURRELOADPASSWORD

            This will cache everything and make it faster, and send the error emails etc.

          • Cristian

            I thought I looked everywhere but I don’t know how I missed that Generate Api KEy button … :slap: … I also tested it with outlook 2010 and is working great.
            Random thought, does the protocol you are using to generate the ics file support to write stuff from Outlook for example back to the calendar?

            Many thanks for your help and patience.
            Cristian.

          • Afraid not, it’s a one way thing.

          • Cristian

            Aa okay … Did some testing and looks like something is fishy with the outlook 2007. I opened a issue on github.

            Thanks again,
            Cristian.

  • Cristian

    Any chance that you can provide a more in depth tutorial on how to install this? I am running a apache server on CentOS 6 and I managed to install railo, created the datasource using mysql as backend but every time I try to access the rbms web page I get either a loop or that it cannot find rewrite.cfm.

    Any thanks would be greatly appreciated … Many thanks,
    Cristian.

    • Hi Christian, see https://github.com/neokoenig/RoomBooking/issues/13
      Basically is me trying to be too clever and failing 🙂

      • Cristian

        I don’t think you are failing is just me not knowing anything about Railo/CfWheels/etc … 🙂
        I am afraid I don’t know how to uncomment the onapplicationstart …?!?

        Newbie questions: I unzipped the archive directly into the railo ROOT folder (location for default installation /opt/railo/tomcat/webapps/ROOT). Is this correct?
        What should I do about this error?
        “Railo 4.1.2.005 Error (expression)
        Message
        key [WHEELS] doesn’t exist (existing keys:applicationname)
        Stacktrace
        The Error Occurred in
        /opt/railo/tomcat/webapps/ROOT/wheels/global/internal.cfm: line 379
        377: {
        378: $header(statusCode=”404″, statusText=”Not Found”);
        379: $includeAndOutput(template=”#application.wheels.eventPath#/onmissingtemplate.cfm”);
        380: $abort();
        381: }
        called from /opt/railo/tomcat/webapps/ROOT/wheels/events/onapplicationstart.cfm: line 6
        4:
        5: // abort if called from incorrect file
        6: $abortInvalidRequest();
        7:
        8: // setup the wheels storage struct for the current request”

        Many Thanks,
        Cristian.

        • ” I unzipped the archive directly into the railo ROOT folder (location for default installation /opt/railo/tomcat/webapps/ROOT). Is this correct?”

          – Yep.

          Note, in addition to setting up the actual mySQL database, you need to add the datasource to the Railo web administrator (/railo-context/admin/server.cfm) too.

          – Now open up events/onapplicationstart.cfm, and comment out the code, (or cut and paste the contents of this file somewhere else for the moment) and then go to /rewrite.cfm?controller=wheels&action=wheels&view=plugins&name=dbmigrate

          Once you’ve run the DB Migrate script, readd the code in events/onapplicationstart.cfm.

          Finally, reload the application by going to
          /?reload=design&password=roombooking

          If you get a key [WHEELS] doesn’t exist error, that’s due to the wheels framework itself not being loaded correctly.

          I’ll try and sort this for a future release, it’s on the list!

          • Cristian

            Many thanks for your help Tom … I finally managed to get it to work but I had some issues and maybe someone else can find the information helpful.

            After, I commented out the code from events/onapplicationstart.cfm and went to /rewrite.cfm?controller=wheels&action=wheels&view=plugins&name=dbmigrate and ran the DB Migrate, the migration process wasn’t complete and I endup with DB version 008, trying to go to the next step /?reload=design&password=roombooking was taking me back to the DB Migrate menu … so I tried to migrate manually the DB to the last 5 steps, which worked so I the reload thingy again and endup with another error Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to … which let me to think that this might be related to the MySQL setup so I added in the /etc/my.cnf the following line binlog_format=ROW to the [mysqld] section and restarted the mysql server. i went to /?reload=design&password=roombooking and receid a strange message but once I went to inx.cfm the app showed up and it’s working now …

            I do have 2 more questions (cant’ help myself 🙂 ):

            1. How do I generate the api key so I can access the rss feed and test the iCal function. Will this generate a ics file?!?

            2. How can I get read off this annoying message that shows up at the bottom of the page:
            Warnings:
            The dbmigrate plugin may be incompatible with this version of Wheels, please look for a compatible version of the plugin
            The FlashWrapper plugin may be incompatible with this version of Wheels, please look for a compatible version of the plugin
            Application:
            EAD619704C9D33DAF2E74476A9164724 [Run Tests]
            Framework:
            Wheels 1.2.0-rc1
            [Run Tests]
            CFML Engine:
            Railo4 4.1.2.005
            Default Data Source:
            roombooking
            Active Environment:
            Design
            URL Rewriting:
            on
            URL Obfuscation:
            Off
            Plugins:
            dbmigrate [Run Tests]
            FlashWrapper
            Route:
            myaccount
            Controller:
            Users
            Action:
            myaccount
            Additional Params:
            None
            Caching Stats:
            culls: 0, hits: 0, misses: 1
            Execution Time:
            69ms (view ~48ms, action ~48ms, beforefilters ~14ms, requeststart ~2ms)”

            Thanks again,
            Cristian.

          • Well done – there’s clearly some mySQL tomfoolery in there I’ve not come across! To generate the API token, login as an admin and go to the user menu – then under the edit dropdown do ‘Generate API Key’ for the user in question (which may of course, be the actual admin account). then go to Events > Data Feeds from the main menu. The ics stuff is highly experimental (never done it before) but seems to work for me in outlook 2010 + mac calendar. You should be able to add it as a calendar subscription.

            The message at the bottom means you’re running wheels in design mode. Simply switch the environment by doing ?reload=production&password=YOURRELOADPASSWORD

            This will cache everything and make it faster, and send the error emails etc.

          • Cristian

            I thought I looked everywhere but I don’t know how I missed that Generate Api KEy button … :slap: … I also tested it with outlook 2010 and is working great.
            Random thought, does the protocol you are using to generate the ics file support to write stuff from Outlook for example back to the calendar?

            Many thanks for your help and patience.
            Cristian.

          • Afraid not, it’s a one way thing.

          • Cristian

            Aa okay … Did some testing and looks like something is fishy with the outlook 2007. I opened a issue on github.

            Thanks again,
            Cristian.

  • JackSmale

    Is there any way to stop a second booking if a previous room booking has already been made?

    • Not really. Future versions will have event moderation (so you can create events, but an admin has to confirm them) which might be useful in that context. It’s sort of designed to highlight potential clashes rather than prevent them.

      • JackSmale

        Hi Tom, thanks for such a prompt response. I think there could be real scope to use this within an academic context (I work for a Students Union for example). Room bookings is one of the areas which takes up a lot of time administering and if the process could be simplified I’m sure a lot of other institutions would jump on that bandwagon!

  • JackSmale

    Is there any way to stop a second booking if a previous room booking has already been made?

    • Not really. Future versions will have event moderation (so you can create events, but an admin has to confirm them) which might be useful in that context. It’s sort of designed to highlight potential clashes rather than prevent them.

      • JackSmale

        Hi Tom, thanks for such a prompt response. I think there could be real scope to use this within an academic context (I work for a Students Union for example). Room bookings is one of the areas which takes up a lot of time administering and if the process could be simplified I’m sure a lot of other institutions would jump on that bandwagon!

  • Alex

    Hi Tom,

    Is there anyway this can be set up on a synology server?

    Regards, Alex

    • hmm, potentially. Synology offers Tomcat7 as a package, so you could repackage railo so it runs out of a tomcat container (like what you can do with amazon elastic beanstalk), and setup mySQL on the synology box.

      Basically, a synology box is just another linux box really, so it’s just a matter of getting java/tomcat running so you could then run Railo on it. http://www.getrailo.org offers a .war where you can rip out the WEB-INF folder: so once you’ve got that, download the main .git repo, add the WEB-INF to the root of the git repo, and chuck the whole thing in Tomcat ROOT.

      No idea if that will *actually* work!!!

      Worst case scenario there’s some railo linux installers around too, so you could SSH into the box and go from there.

  • Alex

    Hi Tom,

    Is there anyway this can be set up on a synology server?

    Regards, Alex

    • hmm, potentially. Synology offers Tomcat7 as a package, so you could repackage railo so it runs out of a tomcat container (like what you can do with amazon elastic beanstalk), and setup mySQL on the synology box.

      Basically, a synology box is just another linux box really, so it’s just a matter of getting java/tomcat running so you could then run Railo on it. http://www.getrailo.org offers a .war where you can rip out the WEB-INF folder: so once you’ve got that, download the main .git repo, add the WEB-INF to the root of the git repo, and chuck the whole thing in Tomcat ROOT.

      No idea if that will *actually* work!!!

      Worst case scenario there’s some railo linux installers around too, so you could SSH into the box and go from there.

  • JAllgood

    Think im gonna start to try use this in my school if that’s ok? Just got a few questions though…
    -Is there a way to set it up to speak to active directory?
    -Can it require an admins approval of bookings before there automatically approved?
    Thanks
    James A

    • Re: AD – see this comment thread: http://www.oxalto.co.uk/2014/11/v1-1-roombooking-system-released/#comment-1774670846

      Admin approval isn’t baked in yet, but it is ‘on the to-do list’…

      • JAllgood

        Ah ok cool thanks! Do you know how long its going to be by any chance? Just so I know how much time / notice to give teachers

        • No idea afraid, more of a “when I get round to it” thing at the moment, but hopefully in a few weeks

          • JAllgood

            That’s cool no worry’s, would it be possible for me to change the system to work on periods for example period 1 would last for an hour etc and have like 8 periods in a day?

          • Hmm, it’s not really built round that premise; it’s definitely *not* a lesson timetabling system (which carry massive complications in themselves). The “Day” view – http://roombooking.oxalto.co.uk/bookings/day is probably the closest in terms of viewing output; with that one I think you can fiddle with the settings to change it from 15 minute increments to something else, but really, the whole thing is built around the idea that these aren’t booking predefined slots.

            Could it be made to work? Sure, yes. You could hypothetically swap out the dateTime pickers in the booking add/edit form with your own solution – as long as you pass a valid datetime stamp back to the database it shouldn’t complain. So you could sort of do it that way. You’d want to manually configure each slot to be ‘8 – 9am’ etc and translate that into a start/end date. Perfectly doable via jQuery or some such..

  • JAllgood

    Think im gonna start to try use this in my school if that’s ok? Just got a few questions though…
    -Is there a way to set it up to speak to active directory?
    -Can it require an admins approval of bookings before there automatically approved?
    Thanks
    James A

    • Re: AD – see this comment thread: http://www.oxalto.co.uk/2014/11/v1-1-roombooking-system-released/#comment-1774670846

      Admin approval isn’t baked in yet, but it is ‘on the to-do list’…

      • JAllgood

        Ah ok cool thanks! Do you know how long its going to be by any chance? Just so I know how much time / notice to give teachers

        • No idea afraid, more of a “when I get round to it” thing at the moment, but hopefully in a few weeks

          • JAllgood

            That’s cool no worry’s, would it be possible for me to change the system to work on periods for example period 1 would last for an hour etc and have like 8 periods in a day?

          • Hmm, it’s not really built round that premise; it’s definitely *not* a lesson timetabling system (which carry massive complications in themselves). The “Day” view – http://roombooking.oxalto.co.uk/bookings/day is probably the closest in terms of viewing output; with that one I think you can fiddle with the settings to change it from 15 minute increments to something else, but really, the whole thing is built around the idea that these aren’t booking predefined slots.

            Could it be made to work? Sure, yes. You could hypothetically swap out the dateTime pickers in the booking add/edit form with your own solution – as long as you pass a valid datetime stamp back to the database it shouldn’t complain. So you could sort of do it that way. You’d want to manually configure each slot to be ‘8 – 9am’ etc and translate that into a start/end date. Perfectly doable via jQuery or some such..

  • Kennedy

    Thanks for making this. Looks cool.

    I am trying to install but I keep getting this error

    Page /events/global/auth.cfm [D:railo-express-4.2.1.008-jre-win64webappsROOTeventsglobalauth.cfm] not found

    he Error Occurred in
    D:railo-express-4.2.1.008-jre-win64webappsROOTRoomBooking-mastereventsfunctions.cfm: line 3

    1:
    2:
    3: include “/events/global/auth.cfm”;
    4: include “/events/global/cookies.cfm”;
    5: include “/events/global/utils.cfm”;

    called from D:railo-express-4.2.1.008-jre-win64webappsROOTRoomBooking-masterwheelsglobalappfunctions.cfm: line 5
    called from D:railo-express-4.2.1.008-jre-win64webappsROOTRoomBooking-masterwheelsfunctions.cfm: line 7
    called from D:railo-express-4.2.1.008-jre-win64webappsROOTRoomBooking-masterApplication.cfc: line 2
    called from D:railo-express-4.2.1.008-jre-win64webappsROOTRoomBooking-masterApplication.cfc: line 1

    I can’t seem to get around it. Please advice

  • Kennedy

    Thanks for making this. Looks cool.

    I am trying to install but I keep getting this error

    Page /events/global/auth.cfm [D:railo-express-4.2.1.008-jre-win64webappsROOTeventsglobalauth.cfm] not found

    he Error Occurred in
    D:railo-express-4.2.1.008-jre-win64webappsROOTRoomBooking-mastereventsfunctions.cfm: line 3

    1:
    2:
    3: include “/events/global/auth.cfm”;
    4: include “/events/global/cookies.cfm”;
    5: include “/events/global/utils.cfm”;

    called from D:railo-express-4.2.1.008-jre-win64webappsROOTRoomBooking-masterwheelsglobalappfunctions.cfm: line 5
    called from D:railo-express-4.2.1.008-jre-win64webappsROOTRoomBooking-masterwheelsfunctions.cfm: line 7
    called from D:railo-express-4.2.1.008-jre-win64webappsROOTRoomBooking-masterApplication.cfc: line 2
    called from D:railo-express-4.2.1.008-jre-win64webappsROOTRoomBooking-masterApplication.cfc: line 1

    I can’t seem to get around it. Please advice

  • Kennedy

    woow! that was fast

    this is what I get when I run http://localhost:8888/RoomBooking-master/install/

    The Error Occurred in
    D:railo-express-4.2.1.008-jre-win64webappsROOTRoomBooking-masterinstallfunctions.cfm: line 14

    12:
    13:
    14:
    15:
    16:

    called from D:railo-express-4.2.1.008-jre-win64webappsROOTRoomBooking-masterinstallindex.cfm: line 36

    • Ah – you’re not running the app from the webroot; I haven’t tested this running in a subfolder: move everything to the root and it should solve the path issues

  • Kennedy

    woow! that was fast

    this is what I get when I run http://localhost:8888/RoomBooking-master/install/

    The Error Occurred in
    D:railo-express-4.2.1.008-jre-win64webappsROOTRoomBooking-masterinstallfunctions.cfm: line 14

    12:
    13:
    14:
    15:
    16:

    called from D:railo-express-4.2.1.008-jre-win64webappsROOTRoomBooking-masterinstallindex.cfm: line 36

    • Ah – you’re not running the app from the webroot; I haven’t tested this running in a subfolder: move everything to the root and it should solve the path issues

  • Kennedy

    still getting the same error even after removing the first forward slash

    • yep, see my other comment – it’s to do with the webroot

  • Kennedy

    still getting the same error even after removing the first forward slash

    • yep, see my other comment – it’s to do with the webroot

  • Kennedy

    Oooh My apologies sir…It worked! Thank you

  • Kennedy

    Oooh My apologies sir…It worked! Thank you

  • samuel

    Hi Tom,
    This application is cool but when Im trying to install, I got eror message like below:

    Could not find the included template /events/global/auth.cfm.
    The error occurred in G:/AYOKLIK.COM/ColdFusion_exp_11_WWEJ_win64/ColdFusion/cfusion/wwwroot/RoomBooking-master/events/functions.cfm: line 3
    Called from G:/AYOKLIK.COM/ColdFusion_exp_11_WWEJ_win64/ColdFusion/cfusion/wwwroot/RoomBooking-master/wheels/global/appfunctions.cfm: line 10
    Called from G:/AYOKLIK.COM/ColdFusion_exp_11_WWEJ_win64/ColdFusion/cfusion/wwwroot/RoomBooking-master/wheels/functions.cfm: line 20
    Called from G:/AYOKLIK.COM/ColdFusion_exp_11_WWEJ_win64/ColdFusion/cfusion/wwwroot/RoomBooking-master/Application.cfc: line 2

    1 :
    2 :
    3 : include “/events/global/auth.cfm”;
    4 : include “/events/global/cookies.cfm”;
    5 : include “/events/global/utils.cfm”;

    Could you please help me.
    Thanks in advance 🙂

    • It’s not designed to run in a folder: move all the contents of RoomBooking-master up a level

      • samuel

        I still got error

        Could not find the included template /events/global/auth.cfm.
        The error occurred in G:/ColdFusion_exp_11_WWEJ_win64/ColdFusion/cfusion/wwwroot/RoomBooking-master/events/functions.cfm: line 3
        Called from G:/ColdFusion_exp_11_WWEJ_win64/ColdFusion/cfusion/wwwroot/RoomBooking-master/wheels/global/appfunctions.cfm: line 10
        Called from G:/ColdFusion_exp_11_WWEJ_win64/ColdFusion/cfusion/wwwroot/RoomBooking-master/wheels/functions.cfm: line 20
        Called from G:/ColdFusion_exp_11_WWEJ_win64/ColdFusion/cfusion/wwwroot/RoomBooking-master/Application.cfc: line 2

        1 :
        2 :
        3 : include “/events/global/auth.cfm”;
        4 : include “/events/global/cookies.cfm”;
        5 : include “/events/global/utils.cfm”;

        Please advice..

        • You need to read my previous post. You’ve unzipped the master branch into wwwroot so the contents are in “RoomBooking-master”. You need to move Everything up a level so that Application.cfc is in wwwroot

          • samuel

            When i try run http://127.0.0.1:8500/install/
            i got some messages like this:
            Check DSN roombooking
            Failed
            A simple query failed: please check roombooking exists and that you’ve run roombooking.sql against it.

            Check for Primary Admin User
            Failed

            Please Advice..

          • I think the error message is pretty clear. Have you created a mysQL database, run the install.sql script on it, then created a ColdFusion Datasource called roombooking ?

          • samuel

            I have run the install.sql script manually before but i dont have Creating a ColdFusion Datasource yet.

          • You can do that in the /CFIDE/administrator/ – you’ll also want to look into URL rewriting of some description, as the app needs that. Not sure if the built in CF development server supports that, although it’s tomcat, so it’s probably do-able.

  • samuel

    Hi Tom,
    This application is cool but when Im trying to install, I got eror message like below:

    Could not find the included template /events/global/auth.cfm.
    The error occurred in G:/AYOKLIK.COM/ColdFusion_exp_11_WWEJ_win64/ColdFusion/cfusion/wwwroot/RoomBooking-master/events/functions.cfm: line 3
    Called from G:/AYOKLIK.COM/ColdFusion_exp_11_WWEJ_win64/ColdFusion/cfusion/wwwroot/RoomBooking-master/wheels/global/appfunctions.cfm: line 10
    Called from G:/AYOKLIK.COM/ColdFusion_exp_11_WWEJ_win64/ColdFusion/cfusion/wwwroot/RoomBooking-master/wheels/functions.cfm: line 20
    Called from G:/AYOKLIK.COM/ColdFusion_exp_11_WWEJ_win64/ColdFusion/cfusion/wwwroot/RoomBooking-master/Application.cfc: line 2

    1 :
    2 :
    3 : include “/events/global/auth.cfm”;
    4 : include “/events/global/cookies.cfm”;
    5 : include “/events/global/utils.cfm”;

    Could you please help me.
    Thanks in advance 🙂

    • It’s not designed to run in a folder: move all the contents of RoomBooking-master up a level

      • samuel

        I still got error

        Could not find the included template /events/global/auth.cfm.
        The error occurred in G:/ColdFusion_exp_11_WWEJ_win64/ColdFusion/cfusion/wwwroot/RoomBooking-master/events/functions.cfm: line 3
        Called from G:/ColdFusion_exp_11_WWEJ_win64/ColdFusion/cfusion/wwwroot/RoomBooking-master/wheels/global/appfunctions.cfm: line 10
        Called from G:/ColdFusion_exp_11_WWEJ_win64/ColdFusion/cfusion/wwwroot/RoomBooking-master/wheels/functions.cfm: line 20
        Called from G:/ColdFusion_exp_11_WWEJ_win64/ColdFusion/cfusion/wwwroot/RoomBooking-master/Application.cfc: line 2

        1 :
        2 :
        3 : include “/events/global/auth.cfm”;
        4 : include “/events/global/cookies.cfm”;
        5 : include “/events/global/utils.cfm”;

        Please advice..

        • You need to read my previous post. You’ve unzipped the master branch into wwwroot so the contents are in “RoomBooking-master”. You need to move Everything up a level so that Application.cfc is in wwwroot

          • samuel

            When i try run http://127.0.0.1:8500/install/
            i got some messages like this:
            Check DSN roombooking
            Failed
            A simple query failed: please check roombooking exists and that you’ve run roombooking.sql against it.

            Check for Primary Admin User
            Failed

            Please Advice..

          • I think the error message is pretty clear. Have you created a mysQL database, run the install.sql script on it, then created a ColdFusion Datasource called roombooking ?

          • samuel

            I have run the install.sql script manually before but i dont have Creating a ColdFusion Datasource yet.

          • You can do that in the /CFIDE/administrator/ – you’ll also want to look into URL rewriting of some description, as the app needs that. Not sure if the built in CF development server supports that, although it’s tomcat, so it’s probably do-able.

  • Ben Burnley

    Hi Tom, was just wondering how you change the theme? I have tried replacing the rbs.css files with bootswatch theme css files. This changes some of the elements on the app, but appears to break the calenders layout entirely. Any help would be greatly appreciated!

    • Don’t edit rbs.css directly. Use grunt to recomplile the LESS files via: `grunt css`
      Look in `/stylesheet/less/` ; I’d recommend making a custom.less file, and then referencing it in `/stylesheets/less/core/rbs.less`

      • Ben Burnley

        Hi Tom, thanks for getting back to me so quickly! Just for clarification, I have two .less files from bootswatch (bootswatch.less and variables.less). Do I chuck them in the stylesheets/less/core directory and then reference them in the rbs.less file? After that I assume I would recompile the less files and copy the new css files over? Thanks in advance!

        • Add your variables.less & bootswatch.less files into /stylesheets/less/site/ and then change line 8 in /stylesheets/less/site/core/rbs.less FROM @import “@{lib}/@{bs}/variables.less”; TO @import “@{site}/variables.less”, and add @import “@{site}/bootswatch.less” after “Import our main site LESS files” in the same file, then recompile, that should do it.

          • Ben Burnley

            Thanks for all your help so far Tom. One last question (hopefully), I’m having trouble compiling the less files using the ‘grunt css’ command in the ROOT, stylesheets directories etc, I am receiving an error stating that the mixins.less file wasn’t found. Any idea what could be causing this?

          • Have you done bower install? have you got a bower_components directory? if in doubt do npm install -g bower
            Then bower install

  • Matt

    Great app Tom! I am having a problem though that I thought you might be able to help me with. I am running the app on Linux and everything is working fine except for when I try to book a room, I get the error page (Error! Sorry, that caused an unexpected error) – this is an Error 500 when inspecting. Can you think of any reason this may be happening? I’ve also noticed that some of the npm packages won’t install – I’m getting errors after running ‘npm install’ such as

    > [email protected] postinstall /opt/lucee/tomcat/webapps/ROOT/node_modules/imagemin/node_modules/gifsicle
    > node index.js

    path.js:7
    throw new TypeError(‘Path must be a string. Received ‘ + inspect(path));
    ^

    TypeError: Path must be a string. Received { url: ‘https://raw.github.com/imagemin/gifsicle-bin/v0.1.7/vendor/linux/x64/gifsicle’,

    etc. Not sure if that is related to the problem?

    If you get a sec I’d really appreciate your help! Or if you could point me in the direction of the apps error logs that would be great too!

    • Ignore the imagemin error, that’s just a slightly old module for reducing image sizes in PNGs etc; you can probably remove it from the gruntFile.

      Are you running Lucee or ACF on linux? If you’re running in production mode and have entered an email address in /config/production/settings.cfm it will try and email you the error. Of course, that requires having setup an appropriate SMTP server (even if that’s just localhost) in your lucee or ACF admin

      If you’ve not setup an SMTP server yet, it’s easier to diagnose in design mode: go to ?reload=design&password=YOURPASSWORD to reload into design mode and then the error will be displayed onscreen.

      If you’ve not setup an SMTP server, and you only get an error on creation of a booking, it’s almost definitely that, as the mail tag will error out without one.

      Either way, a 500 error should give you… something? If lucee, look in /var/www/roombooking/html/WEB-INF/lucee/logs (or whatever your webroot is) and look for exception.log – alternatively there’s /opt/lucee/tomcat/logs which has Catalina.out which you can tail

      If ACF (from memory) you may have to look in /opt/coldfusion11/cfusion/logs ?

      • Matt

        I’m using lucee. When I look in the exception.log file I can see this as one of the latest errors:

        “ERROR”,”Thread-420″,”11/21/2016″,”15:41:22″,””,”;The key [WHEELS] does not exist, only the following keys are available: [applicationname].;lucee.runtime.exp.ExpressionException: The key [WHEELS] does not exist, only the following keys are available: [applicationname].

        Does this mean I am missing some wheels files?

        • Matt

          Also, the error is specifically when you click on ‘the book a room’ button or anywhere on the calendar to book a room. This worked on Windows, but on Linux the pop-up never appears.

          • Er yeah, that’s really odd… it’s implying the framework hasn’t loaded into the application scope (which means the entire app shouldn’t work).

            Also, the book a room function doesn’t load in a modal (only when clicking on an existing booking).

            It’s weird as I’m running lucee on the demo site with no issues…

          • Matt

            Sorry to keep bugging you, but was just wondering if you could maybe post just the basic steps to getting the app up and running on Linux? (preferably not as root, but I can ask the admin to run any required commands). Been trying to get this running for the last few days but still having trouble with many errors. Thanks for all your help so far!

          • It’s a little difficult without knowing your setup TBH. Have you got a working lucee installation with apache on the front? Exactly which version of lucee? Exactly what error messages?

          • Matt

            Lucee 5.1.0.34 is up and running with nginx (I’ve tried with apache but had the same problems). I’ve installed everything else according to your instructions (on the readme io page). Could you let me know what version of Linux you are running your demo on?

          • This may be a 5.1 issue – I don’t think cfwheels has been tested on the latest 5.1; it definitely works on the 4.5 branch which is what we’re currently recommending. I’m on Centos 7 + apache + lucee 4.5.x + mySQL 5.5;

          • Matt

            Okay, this is what I have tried: I have installed CentOS 7 as root, along with apache, tomcat, lucee 4.5, mySQL 5.7 – mariaDB (I think) and nodejs (plus npm install). After completing the setup I am still facing the same problems. I also cannot see any error messages when adding the ‘?reload=design&password=mypass’ string to the end of my url, it just stays on the default error page. Not sure if I’m doing this wrong or if there is no error info? I will try again with mySQL 5.5 and update you on my progress.

          • FYI, you don’t need nodejs – that’s only for local development when you want to update the CSS and JS – you don’t need it in production.

            I’m running mySQL 5.6: it’s not tested on 5.7.

            If you’re seeing the default error page, then if you’ve got smtp setup, you should get an email. If will also be in the logs – we need to know what those messages are!

            PS, I taken it you’ve run the installer at /install/..?

          • Matt

            Haha yes don’t worry, I have run the installer and get all green. I will look into adding the SMTP settings and get back to you.