Skip to content

Open source software for managing university seminars integrated with omniauth. Users are allowed to register seminars and ask for speaker repayments.

Notifications You must be signed in to change notification settings

donapieppo/seminaria

Repository files navigation

seminaria

Open source software in ruby on rails for managing university seminars.

Authentication integrated with omniauth.

Internal users (professors, phd students etc.) can promote seminars and ask for speaker repayments.

The seminars shedule is public with many different views (possibile aggregation by location, arguments, organization...).

Requirements

  • Rails 5
  • Ruby 2.6+

Installation

Clone the repository and

    $ cd seminaria
    $ bundle
    $ cp doc/dm_unibo_common.yml config/dm_unibo_common.yaml
    $ cp doc/seminaria_example.rb config/initializers/seminaria.rb

Then edit config/dm_unibo_common.yaml and config/initializers/seminaria.rb to configure your installation.

In config/database.yml configure database and username and set the database password in your environment as SEMINARIA_DATABASE_PASSWORD.

Then

$ rake db:schema:load

to load che db schema (default with mysql but you can change db settings in config/database.yml file)

Docker for first try

docker-compose build
docker-compose run web bundle exec bin/docker_setup
docker-compose up

the configuration in docker comes from

In production of course you have to configure a correct omniauth provider.

When connected to http://127.0.0.1:3000/ you are logged as [email protected] on the first organization (Math).

For developers

Authorizations

The table is permissions (class Permission < ApplicationRecord)

+-----------------+------------------+------+-----+---------+----------------+
| Field           | Type             | Null | Key | Default | Extra          |
+-----------------+------------------+------+-----+---------+----------------+
| id              | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| user_id         | int(10) unsigned | NO   | MUL | NULL    |                |
| organization_id | int(10) unsigned | NO   | MUL | NULL    |                |
| authlevel       | int(2)           | YES  |     | NULL    |                |
+-----------------+------------------+------+-----+---------+----------------+

and the "interpretation of the permissions" is class Authorization.

Current user (current_user as usual for omniauth and devide) has an authorization attribute (see app/controller/application_controller.rb in before_action :retrive_authlevels).

At the moment there are 3 authorization levels.

  • TO_READ = 1
  • TO_MANAGE = 2
  • TO_CESIA = 3

About

Open source software for managing university seminars integrated with omniauth. Users are allowed to register seminars and ask for speaker repayments.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published