Education Outside the Classroom Helper is a Rails app for helping teachers organize class trips, without lots of paperwork. It is currently unfinished.
The eotc-helper app is currently in development.
The eotc-helper app will allow authorized users (teachers and above) to create trips. This will involve a form for trip specification, as well as a notification system to automatically notify the EOTC coordinator, the Board of Trustees, and lower-level associated accounts (students in associated groups or classes).
The app will be built around a user model, with accounts of differing privilege levels.
- Students can subscribe to notifications and comment on trips
- Teachers can create trips
- BoT members and the EOTC coordinator can remove, edit, and approve trips
All accounts have the privileges of lesser accounts. Accounts can only be escalated to higher permission levels by the System Administrator. Anyone can register a student account.
There is a public chatroom for discussion on Gitter.
This repository uses Commitizen. To make a commit, you will need to follow the format.
First, install Commitizen:
npm install --global commitizen
Then, each time you commit, use
git commit and follow the command line instructions. This system ensures simple, machine-readable commits, and also Developer Certificate of Origin signing. These formats are mandatory for PR acceptance.
This app runs on Ruby 2.3 with Rails 5.2.0. Other dependency information is available in the Gemfile. Dependency installation is included in the setup and update phases. This application also requires a PostgreSQL database.
To setup the environment, run:
export RAILS_ENV=development bin/setup
Update from an Earlier Version
When updating from an earlier version of eotc-helper, run
export RAILS_ENV=development bin/update
To run the Rails server, run
rails server. Should this fail, run
This repository is set up to use Travis CI for continuous integration. However, local testing is encouraged.
To test your code locally, run
rake test, and to lint it, run
rubocop -a -c .rubocop/yml.
To create the production database, use:
Or, if updating from an earlier version:
You must also set the rails environment variable:
Running a production server is currently impossible.
This repository makes use of the following tools:
- Travis CI for continuous integration
- Coveralls for code coverage
- Codacy and codebeat for code review
- Inch CI for documentation review
- Synk for security
- Dependabot for dependency management
- ZenHub for project management
In addition, the project uses the following command line utilities:
- Rubocop for style checks
as well as various other utilities, specified in the Gemfile.
Thanks to all the wonderful resources we are using!