forked from internet2/InCommonTAP-Examples
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
SIS app.
James Babb
committed
Apr 19, 2019
1 parent
b82cea2
commit b762dba
Showing
131 changed files
with
7,662 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,26 @@ | ||
#to-do | ||
FROM ruby:2.5.5 | ||
|
||
MAINTAINER "TIER API & EntReg Working Group <tier-api@internet2.edu>" | ||
|
||
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs netcat | ||
|
||
RUN mkdir /myapp | ||
|
||
WORKDIR /myapp | ||
|
||
ADD Gemfile /myapp/Gemfile | ||
ADD Gemfile.lock /myapp/Gemfile.lock | ||
|
||
RUN bundle install | ||
|
||
ADD . /myapp | ||
|
||
# Indicate the container needs bootstrapping | ||
RUN touch /FIRSTRUN | ||
|
||
# Copy in the container start and bootstrap script | ||
COPY run-rails.sh /usr/local/bin | ||
|
||
EXPOSE 3000 | ||
|
||
CMD ["/bin/bash", "/usr/local/bin/run-rails.sh"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
source 'https://rubygems.org' | ||
|
||
|
||
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' | ||
gem 'rails', '~> 5.0.0', '>= 5.0.0.1' | ||
# Use mysql as the database for Active Record | ||
gem 'mysql2', '>= 0.3.18', '< 0.5' | ||
# Use Puma as the app server | ||
gem 'puma', '~> 3.0' | ||
# Use SCSS for stylesheets | ||
gem 'sass-rails', '~> 5.0' | ||
# Use Uglifier as compressor for JavaScript assets | ||
gem 'uglifier', '>= 1.3.0' | ||
# Use CoffeeScript for .coffee assets and views | ||
gem 'coffee-rails', '~> 4.2' | ||
# See https://github.com/rails/execjs#readme for more supported runtimes | ||
# gem 'therubyracer', platforms: :ruby | ||
|
||
# Use jquery as the JavaScript library | ||
gem 'jquery-rails' | ||
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks | ||
gem 'turbolinks', '~> 5' | ||
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder | ||
gem 'jbuilder', '~> 2.5' | ||
# Use Redis adapter to run Action Cable in production | ||
# gem 'redis', '~> 3.0' | ||
# Use ActiveModel has_secure_password | ||
# gem 'bcrypt', '~> 3.1.7' | ||
|
||
# Use Capistrano for deployment | ||
# gem 'capistrano-rails', group: :development | ||
|
||
# t1j - add Net::LDAP | ||
gem 'net-ldap' | ||
|
||
|
||
group :development, :test do | ||
# Call 'byebug' anywhere in the code to stop execution and get a debugger console | ||
gem 'byebug', platform: :mri | ||
end | ||
|
||
group :development do | ||
# Access an IRB console on exception pages or by using <%= console %> anywhere in the code. | ||
gem 'web-console' | ||
gem 'listen', '~> 3.0.5' | ||
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring | ||
gem 'spring' | ||
gem 'spring-watcher-listen', '~> 2.0.0' | ||
end | ||
|
||
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem | ||
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,181 @@ | ||
GEM | ||
remote: https://rubygems.org/ | ||
specs: | ||
actioncable (5.0.7.2) | ||
actionpack (= 5.0.7.2) | ||
nio4r (>= 1.2, < 3.0) | ||
websocket-driver (~> 0.6.1) | ||
actionmailer (5.0.7.2) | ||
actionpack (= 5.0.7.2) | ||
actionview (= 5.0.7.2) | ||
activejob (= 5.0.7.2) | ||
mail (~> 2.5, >= 2.5.4) | ||
rails-dom-testing (~> 2.0) | ||
actionpack (5.0.7.2) | ||
actionview (= 5.0.7.2) | ||
activesupport (= 5.0.7.2) | ||
rack (~> 2.0) | ||
rack-test (~> 0.6.3) | ||
rails-dom-testing (~> 2.0) | ||
rails-html-sanitizer (~> 1.0, >= 1.0.2) | ||
actionview (5.0.7.2) | ||
activesupport (= 5.0.7.2) | ||
builder (~> 3.1) | ||
erubis (~> 2.7.0) | ||
rails-dom-testing (~> 2.0) | ||
rails-html-sanitizer (~> 1.0, >= 1.0.3) | ||
activejob (5.0.7.2) | ||
activesupport (= 5.0.7.2) | ||
globalid (>= 0.3.6) | ||
activemodel (5.0.7.2) | ||
activesupport (= 5.0.7.2) | ||
activerecord (5.0.7.2) | ||
activemodel (= 5.0.7.2) | ||
activesupport (= 5.0.7.2) | ||
arel (~> 7.0) | ||
activesupport (5.0.7.2) | ||
concurrent-ruby (~> 1.0, >= 1.0.2) | ||
i18n (>= 0.7, < 2) | ||
minitest (~> 5.1) | ||
tzinfo (~> 1.1) | ||
arel (7.1.4) | ||
bindex (0.7.0) | ||
builder (3.2.3) | ||
byebug (11.0.1) | ||
coffee-rails (4.2.2) | ||
coffee-script (>= 2.2.0) | ||
railties (>= 4.0.0) | ||
coffee-script (2.4.1) | ||
coffee-script-source | ||
execjs | ||
coffee-script-source (1.12.2) | ||
concurrent-ruby (1.1.5) | ||
crass (1.0.4) | ||
erubis (2.7.0) | ||
execjs (2.7.0) | ||
ffi (1.10.0) | ||
globalid (0.4.2) | ||
activesupport (>= 4.2.0) | ||
i18n (1.6.0) | ||
concurrent-ruby (~> 1.0) | ||
jbuilder (2.8.0) | ||
activesupport (>= 4.2.0) | ||
multi_json (>= 1.2) | ||
jquery-rails (4.3.3) | ||
rails-dom-testing (>= 1, < 3) | ||
railties (>= 4.2.0) | ||
thor (>= 0.14, < 2.0) | ||
listen (3.0.8) | ||
rb-fsevent (~> 0.9, >= 0.9.4) | ||
rb-inotify (~> 0.9, >= 0.9.7) | ||
loofah (2.2.3) | ||
crass (~> 1.0.2) | ||
nokogiri (>= 1.5.9) | ||
mail (2.7.1) | ||
mini_mime (>= 0.1.1) | ||
method_source (0.9.2) | ||
mini_mime (1.0.1) | ||
mini_portile2 (2.4.0) | ||
minitest (5.11.3) | ||
multi_json (1.13.1) | ||
mysql2 (0.4.10) | ||
net-ldap (0.16.1) | ||
nio4r (2.3.1) | ||
nokogiri (1.10.2) | ||
mini_portile2 (~> 2.4.0) | ||
puma (3.12.1) | ||
rack (2.0.7) | ||
rack-test (0.6.3) | ||
rack (>= 1.0) | ||
rails (5.0.7.2) | ||
actioncable (= 5.0.7.2) | ||
actionmailer (= 5.0.7.2) | ||
actionpack (= 5.0.7.2) | ||
actionview (= 5.0.7.2) | ||
activejob (= 5.0.7.2) | ||
activemodel (= 5.0.7.2) | ||
activerecord (= 5.0.7.2) | ||
activesupport (= 5.0.7.2) | ||
bundler (>= 1.3.0) | ||
railties (= 5.0.7.2) | ||
sprockets-rails (>= 2.0.0) | ||
rails-dom-testing (2.0.3) | ||
activesupport (>= 4.2.0) | ||
nokogiri (>= 1.6) | ||
rails-html-sanitizer (1.0.4) | ||
loofah (~> 2.2, >= 2.2.2) | ||
railties (5.0.7.2) | ||
actionpack (= 5.0.7.2) | ||
activesupport (= 5.0.7.2) | ||
method_source | ||
rake (>= 0.8.7) | ||
thor (>= 0.18.1, < 2.0) | ||
rake (12.3.2) | ||
rb-fsevent (0.10.3) | ||
rb-inotify (0.10.0) | ||
ffi (~> 1.0) | ||
sass (3.7.4) | ||
sass-listen (~> 4.0.0) | ||
sass-listen (4.0.0) | ||
rb-fsevent (~> 0.9, >= 0.9.4) | ||
rb-inotify (~> 0.9, >= 0.9.7) | ||
sass-rails (5.0.7) | ||
railties (>= 4.0.0, < 6) | ||
sass (~> 3.1) | ||
sprockets (>= 2.8, < 4.0) | ||
sprockets-rails (>= 2.0, < 4.0) | ||
tilt (>= 1.1, < 3) | ||
spring (2.0.2) | ||
activesupport (>= 4.2) | ||
spring-watcher-listen (2.0.1) | ||
listen (>= 2.7, < 4.0) | ||
spring (>= 1.2, < 3.0) | ||
sprockets (3.7.2) | ||
concurrent-ruby (~> 1.0) | ||
rack (> 1, < 3) | ||
sprockets-rails (3.2.1) | ||
actionpack (>= 4.0) | ||
activesupport (>= 4.0) | ||
sprockets (>= 3.0.0) | ||
thor (0.20.3) | ||
thread_safe (0.3.6) | ||
tilt (2.0.9) | ||
turbolinks (5.2.0) | ||
turbolinks-source (~> 5.2) | ||
turbolinks-source (5.2.0) | ||
tzinfo (1.2.5) | ||
thread_safe (~> 0.1) | ||
uglifier (4.1.20) | ||
execjs (>= 0.3.0, < 3) | ||
web-console (3.7.0) | ||
actionview (>= 5.0) | ||
activemodel (>= 5.0) | ||
bindex (>= 0.4.0) | ||
railties (>= 5.0) | ||
websocket-driver (0.6.5) | ||
websocket-extensions (>= 0.1.0) | ||
websocket-extensions (0.1.3) | ||
|
||
PLATFORMS | ||
ruby | ||
|
||
DEPENDENCIES | ||
byebug | ||
coffee-rails (~> 4.2) | ||
jbuilder (~> 2.5) | ||
jquery-rails | ||
listen (~> 3.0.5) | ||
mysql2 (>= 0.3.18, < 0.5) | ||
net-ldap | ||
puma (~> 3.0) | ||
rails (~> 5.0.0, >= 5.0.0.1) | ||
sass-rails (~> 5.0) | ||
spring | ||
spring-watcher-listen (~> 2.0.0) | ||
turbolinks (~> 5) | ||
tzinfo-data | ||
uglifier (>= 1.3.0) | ||
web-console | ||
|
||
BUNDLED WITH | ||
1.17.3 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
### TIER University Student Information System | ||
|
||
This is a sample database-driven application that provides a simplified example | ||
of a Student Information System (SIS). This application is used as a source of | ||
student data in order to demonstrate how TIER components can interact with an | ||
existing campus SIS. | ||
|
||
## Data Structures | ||
|
||
There are three tables built as a part of the application. `Users` is a list of | ||
people within the SIS. `Courses` contains a list of courses, and `courses_users` | ||
is a join table that lists user / course enrollments. | ||
|
||
Useful view of course enrollments: `select b.uid, c.course_name from | ||
courses_users a inner join users b on a.user_id = b.id inner join courses c on | ||
a.course_id = c.id` | ||
|
||
|
||
## Build Instructions | ||
|
||
To build the containers, run `docker-compose build`` | ||
|
||
To run the demo application, run `docker-compose up` | ||
|
||
Once the app is up and running, create and seed data by running the following | ||
scripts: | ||
|
||
1. `./db_create.sh` | ||
2. `./db_migrate.sh` | ||
3. `./db_seed.sh` | ||
|
||
To restart the containers after the initial startup and database setup, run | ||
`restart.sh` | ||
|
||
## Running the application | ||
|
||
The application will be available at http://localhost:3000. To add / modify | ||
users, go to http://localhost:3000/users. To add/modify courses, go to | ||
http://localhost:3000/courses. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
# Add your own tasks in files placed in lib/tasks ending in .rake, | ||
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. | ||
|
||
require_relative 'config/application' | ||
|
||
Rails.application.load_tasks |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
//= link_tree ../images | ||
//= link_directory ../javascripts .js | ||
//= link_directory ../stylesheets .css |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
// This is a manifest file that'll be compiled into application.js, which will include all the files | ||
// listed below. | ||
// | ||
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, | ||
// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path. | ||
// | ||
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the | ||
// compiled file. JavaScript code in this file should be added after the last require_* statement. | ||
// | ||
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details | ||
// about supported directives. | ||
// | ||
//= require jquery | ||
//= require jquery_ujs | ||
//= require turbolinks | ||
//= require_tree . |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
// Action Cable provides the framework to deal with WebSockets in Rails. | ||
// You can generate new channels where WebSocket features live using the rails generate channel command. | ||
// | ||
//= require action_cable | ||
//= require_self | ||
//= require_tree ./channels | ||
|
||
(function() { | ||
this.App || (this.App = {}); | ||
|
||
App.cable = ActionCable.createConsumer(); | ||
|
||
}).call(this); |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# Place all the behaviors and hooks related to the matching controller here. | ||
# All this logic will automatically be available in application.js. | ||
# You can use CoffeeScript in this file: http://coffeescript.org/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# Place all the behaviors and hooks related to the matching controller here. | ||
# All this logic will automatically be available in application.js. | ||
# You can use CoffeeScript in this file: http://coffeescript.org/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
/* | ||
* This is a manifest file that'll be compiled into application.css, which will include all the files | ||
* listed below. | ||
* | ||
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, | ||
* or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path. | ||
* | ||
* You're free to add application-wide styles to this file and they'll appear at the bottom of the | ||
* compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS | ||
* files in this directory. Styles in this file should be added after the last require_* statement. | ||
* It is generally better to create a new file per style scope. | ||
*/ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
// Place all the styles related to the courses controller here. | ||
// They will automatically be included in application.css. | ||
// You can use Sass (SCSS) here: http://sass-lang.com/ |
Oops, something went wrong.