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.
For information about how to contribute, see our Contribution guidelines and Code of Conduct.
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-cz -s
instead of 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
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 bin/rails server
.
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:
bin/setup
Or, if updating from an earlier version:
bin/update
You must also set the rails environment variable:
export RAILS_ENV=production
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!