{"id":17300877,"url":"https://github.com/chtjonas/roombooking","last_synced_at":"2025-04-14T12:31:37.080Z","repository":{"id":37430858,"uuid":"137951232","full_name":"CHTJonas/roombooking","owner":"CHTJonas","description":"The ADC Theatre's room booking system","archived":false,"fork":false,"pushed_at":"2023-10-16T07:14:53.000Z","size":8174,"stargazers_count":12,"open_issues_count":63,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-28T01:48:24.687Z","etag":null,"topics":["adc-theatre","cambridge-university","room-booking","ruby","ruby-on-rails"],"latest_commit_sha":null,"homepage":"https://roombooking.adctheatre.com","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CHTJonas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-06-19T22:14:36.000Z","updated_at":"2023-11-27T16:00:19.000Z","dependencies_parsed_at":"2024-10-15T11:30:53.161Z","dependency_job_id":"abb9f14a-69f1-4cce-9f4b-b2e059927192","html_url":"https://github.com/CHTJonas/roombooking","commit_stats":null,"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CHTJonas%2Froombooking","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CHTJonas%2Froombooking/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CHTJonas%2Froombooking/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CHTJonas%2Froombooking/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CHTJonas","download_url":"https://codeload.github.com/CHTJonas/roombooking/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248881470,"owners_count":21176858,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adc-theatre","cambridge-university","room-booking","ruby","ruby-on-rails"],"created_at":"2024-10-15T11:30:46.323Z","updated_at":"2025-04-14T12:31:36.995Z","avatar_url":"https://github.com/CHTJonas.png","language":"Ruby","readme":"\u003cimg width=\"280\" align=\"right\" src=\"https://raw.githubusercontent.com/CHTJonas/roombooking/master/public/logo-long-black.svg?sanitize=true\"\u003e\n\n# ADC Room Booking System\n\n[![Ruby Version](https://img.shields.io/badge/Ruby-v2.7.8-brightgreen.svg)](https://www.ruby-lang.org/en/)\n[![Rails Version](https://img.shields.io/badge/Rails-v6.1.7-brightgreen.svg)](http://rubyonrails.org/)\n[![Build Status](https://github.com/CHTJonas/roombooking/workflows/CI%20CD/badge.svg)](https://github.com/CHTJonas/roombooking/actions?query=workflow%3A%22CI+CD%22)\n[![Test Coverage](https://codecov.io/gh/CHTJonas/roombooking/branch/master/graph/badge.svg)](https://codecov.io/gh/CHTJonas/roombooking)\n\nThis repository hosts the code for the [ADC Theatre's](https://www.adctheatre.com) new Room Booking System.\nThe site runs as a [Ruby on Rails](https://rubyonrails.org/) application with background job processing handled by [Sidekiq](https://sidekiq.org/).\n[Postgres](https://www.postgresql.org/) is used as the backend database of choice and [Redis](https://redis.io/) to store in-memory data.\n\n## Installation\nThere are two officially supported methods of installation:\n\n1. Docker is the preferred choice for those running Windows, or for people who want to get hands on and coding as soon as possible.\n2. A native installation is more useful for developing advanced features, testing \u0026 instrumenting or for those that have trouble with the Docker process. It does, however, require you to be running a [UNIX-like](https://en.wikipedia.org/wiki/Unix-like) operating system.\n\nDuring the setup you'll be prompted for your Camdram API credentials which you can obtain by registering [here](https://www.camdram.net/api/apps/new).\n\n### Docker Install\n[Docker](https://www.docker.com/get-started) is a lightning-fast way to get a development environment setup with minimal fuss by running virtualised containers on your machine.\nThis cross-platform process should work on Windows, macOS and Linux, although there will be something of a performance degradation on macOS when compared to a native installation.\n\n1. `git clone https://github.com/CHTJonas/roombooking.git`\n2. `cd roombooking`\n3. `docker-compose build`\n4. `docker-compose run --rm web \"bin/setup\"`\n5. `docker-compose up`\n\nThis will spin up several Docker containers and the logs will appear in the foreground of your terminal window.\nPress Ctrl+C *once* to gracefully stop and bring down all containers.\nIf you need to rebuild the Docker container for any reason (eg. after installing new Gems) then type `docker-compose down --volumes --remove-orphans` at the terminal prompt and repeat from step 3 above.\nIf you're developing on top of Microsoft Windows then you need to ensure that you checkout and checkin source code with UNIX-style line endings (LF).\nThis can usually be achieved by running `git clone https://github.com/CHTJonas/roombooking.git --config core.autocrlf=input` and/or by working with a modern text editor or IDE that preserves line endings.\n\n### Native Install\nInstalling from source is relatively easy and should work on anything UNIX-like including the [Windows Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10).\nYou'll need both Postgres and Redis setup locally which, if you're running Debian or Ubuntu, can be achieved by typing `sudo apt install postgresql redis` at a terminal.\nNote that your user account will need `CREATE/DROP DATABASE` privileges for the initial setup but not thereafter.\n\n1. `git clone https://github.com/CHTJonas/roombooking.git`\n2. `cd roombooking`\n3. `bundle install -j4`\n4. `bin/setup`\n5. `rails server`\n\nThis will start the Rails application (web) server in the foreground of the current terminal.\nTo optionally start Sidekiq to process background jobs you can run `bundle exec sidekiq` in a separate terminal.\nPressing Ctrl+C will interrupt and shutdown either one of these.\n\n## Contributing\nAnyone may contribute to the project and bug reports or feature requests are warmly welcomed!\nPlease familiarise yourself with the [contributing guidelines](https://github.com/CHTJonas/roombooking/blob/master/CONTRIBUTING.md) before you get started.\nIf you decide you want to write some code yourself:\n\n1. Fork the repo (https://github.com/CHTJonas/roombooking/fork).\n2. Create a feature branch (`git checkout -b my-new-feature`).\n3. Commit your changes (`git commit -am 'Add some feature'`).\n4. Push to the branch (`git push -u origin my-new-feature`).\n5. Create a new Pull Request.\n\nWhen coding, please try to update any tests your code affects or, even better, add new tests where none currently exist!\nDon't worry if you're not too sure about this - if you open a Pull Request we can provide some assistance.\nTo run the full test suite, type the following into your terminal (or append to `docker-compose run --rm web`):\n\n1. `rails test`\n2. `rails test:system`\n\nPlease ensure your code adheres to the following basic style rules.\nYou should be able to do this automatically by installing an [EditorConfig compatible](https://editorconfig.org/#download) text editor/IDE, or a plugin.\n\n* Use UNIX-style (LF) line endings.\n* Terminate every file with a single blank line at the end.\n* Remove any whitespace characters preceding new lines.\n* Use the UTF-8 character set.\n* Indent code blocks using two spaces (please don't use tabs).\n\nManagement of the project is meritocratic; those who have a reasonable number of accepted contributions will be granted access to commit straight to the `master` branch of this repository.\n\n## Copyright\nCopyright (c) 2018–2022 Charlie Jonas and contributors.\nThe ADC Room Booking System software is released under Version 3 of the GNU General Public License.\nSee the LICENSE file for full details.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchtjonas%2Froombooking","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchtjonas%2Froombooking","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchtjonas%2Froombooking/lists"}