re:scheduled is a web application for managing translation shifts at chaos events. It facilitates the coordination of translation angels, session scheduling, and real-time collaboration during events.
### Features
-**Automatic schedule import** for re:publica, Pretalx/Hub
...
...
@@ -24,7 +26,7 @@
-**Import history** with error tracking for conference data
- ... and more 🎁
### Technologies:
### Technologies
-[Ruby on Rails](https://rubyonrails.org/) with [SQLite](https://sqlite.org/) DB
-[Tailwind CSS](https://tailwindcss.com/)
...
...
@@ -33,13 +35,15 @@
-[Devise](https://github.com/heartcombo/devise) for authentication
-[SolidQueue](https://github.com/rails/solid_queue) for background jobs
## Dev environment
## Getting Started
### Development Environment
The project comes with a devcontainer for VSCode and compatible editors. Simply open the project folder in Code (or using `devcontainer open <path>`) and after a few seconds, a suitable container should be ready.
Run `bin/dev` in the integrated terminal to start the dev webserver and the tailwind watch job (see `Procfile.dev` for details). Access your local re:scheduled at http://127.0.0.1:3000.
## Secrets
### Secrets Configuration
The application requires some secrets, as of writing these include:
...
...
@@ -51,21 +55,35 @@ The application requires some secrets, as of writing these include:
You can supply the secrets by running `rails credentials:edit` or pass them as environment variable in upper case (e.g. `FILEDROP_USER`).
## User and Role Management
### Helpful Rails Tasks
By running `bin/rails <command>` you can trigger some helpful actions, such as:
-`rails c[onsole]`: Start interactive ruby shell
-`rails db`: Start sqlite shell with the currently used DB
-`rails db:prepare`: Create and migrate the database
-`rails db:migrate`: Run pending DB migrations, automatically done by docker image on start
-`rails db:seed` (Re-)import DB seeds from `db/seeds.rb`
-`rails secret` generate a random secret, e.g. for `secret_key_base`
-`rails generate` Powerful tool to generate boilerplate, run it to see list of options
## Administration
### User and Role Management
The application uses a role-based access control system with the following main roles:
-`admin`: Full system access
-`events_admin`: Can manage conferences and related resources
-`shift_coordinator`: Can manage session assignments
### Managing Roles through the Admin UI
#### Managing Roles through the Admin UI
Roles can be managed through the admin interface:
1. Navigate to `/admin/roles` to view all available roles
2. Click on a role to edit its permissions
3. To assign roles to users, navigate to `/admin/users` and edit the user
### Managing Roles with Rake Tasks
#### Managing Roles with Rake Tasks
You can also use the following rake tasks to manage user roles from the command line: