Skip to content
This repository was archived by the owner on Sep 18, 2018. It is now read-only.
Niki Liu edited this page Nov 6, 2013 · 5 revisions

This is a transfer request management application for the Math & Computer Science Department at the University of Richmond. This application was built as part of an independent study course under Professor Lewis Barnett. This wiki is available for students or professors who have the task of maintaining this application.

The live application is viewable at http://transferur.herokuapp.com/.

Purpose

The purpose of this application was to (partially) automate the process of students transferring math course units into the University of Richmond. Before, this process was managed via a simple email form located on the University of Richmond's website, and an administrator manually looked up each transfer request, manually verified every transfer request, and manually entered new transfer requests.

High-Level Overview

This application has two parts: the transfer form and the administrator interface.

The transfer form is what users will see upon visiting the application. This is where users will be able to submit a math course transfer request to the Mathematics Department at the University of Richmond. If the approval or disapproval of a submitted request can be determined without human intervention, an email will be automatically sent to the requester stating whether their request was approved or disapproved.

If the approval or disapproval of a submitted request cannot be determined without human intervention, a notification email will be sent to the administrator to review pending requests. Once a pending request is approved or disapproved, a notification email will be sent to the original requester stating whether their request was approved or disapproved.

The application uses these parameter checks to determine whether human intervention is required for a transfer request:

  1. Is the request for an online course? If so, automatically send disapproval email to requester.
  2. Is the request for a dual enrollment course? If so, human intervention is required.
  3. Is the request for an unlisted course? If so, human intervention is required.
  4. Is the request for an unlisted school? If so, human intervention is required.
  5. Is the request for an already existing request, but has not been reviewed within 5 years? If so, human intervention is required.
  6. Is the request for an already existing request that has been reviewed within 5 years? If so, automatically send approval or disapproval email to requester.

The administrator interface is what the department chair will use to manage schools, courses, previous transfer requests, and pending requests.

Environment Stack

  • Ruby 2.0.0-p247
  • Rails 4.0.0

Setup

If you are on Mac OS X, install Homebrew before continuing. If you are not on Mac OS X, set up an appropriate Ruby version manager available for your platform and also install Git.

The following Terminal commands assumes you are running Mac OS X Mavericks and also assumes you have set up SSH keys with your GitHub account.

xcode--select --install                            # install command line tools via Xcode

brew update                                        # update Homebrew
brew upgrade                                       # upgrade software installed via Homebrew
brew install git                                   # install Git
brew install rbenv                                 # install rbenv
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile   # required to get shell to recognize rbenv
brew install ruby-build                            # required to install different rubies

rbenv install 2.0.0-p247                           # install Ruby 2.0.0-p247
rbenv global 2.0.0-p247                            # set Ruby 2.0.0-p247 as the system default
gem update --system                                # update RubyGems
gem install bundler                                # install Bundler

git clone git@github.com:nikiliu/transferur.git    # clone down the repo
cd transferur                                      # cd into the directory
bundle install                                     # install all dependencies
bundle exec rake db:migrate                        # migrate database
bundle exec rake test:prepare                      # prepare test database
bundle exec rake history:import                    # import all spreadsheet data into database
bundle exec rake history:admin                     # set up admin account
bundle exec rake test                              # verify all tests pass
rails s                                            # fire up the server

Pull Updates

git pull                                           # pull latest commits
bundle exec rake db:reset                          # reset the database
bundle exec rake test:prepare                      # prepare test database
bundle exec rake history:import                    # import all spreadsheet data into database
bundle exec rake history:admin                     # set up admin account
bundle exec rake test                              # verify all tests pass
rails s                                            # fire up the server

Clone this wiki locally