Skip to content
RPI Ambulance's website—a work in progress
JavaScript HTML PHP CSS TSQL Dockerfile Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.docker Event email (#83) Sep 8, 2019
.travis
css
img
js
views
.add_event.php
.add_game.php
.add_member.php
.admin_config.example.php
.bowerrc
.contact_submit.php
.cpr_submit.php
.crews.php
.db_config.example.php
.defaults.php
.delete_event.php
.delete_game.php
.dockerignore
.drone.yml
.drop_event.php
.drop_event_other_member.php
.drop_game.php
.drop_game_other_member.php
.edit_event.php
.edit_member.php
.edit_self.php
.edit_self_pass.php
.email_submit.php
.env.sample
.expired_certs.php
.form_config.example.php
.fuel.php
.fuel_log_entries.php
.functions.php
.gcal.php
.get_event_info.php
.get_game_info.php
.get_if_admin.php
.get_session_info.php
.get_user_metadata.php
.gitattributes
.gitignore
.login.php
.logout.php
.mailer.php
.modify_schedule.php
.recaptchalib.php Moved public directory to root of repo, night crews working Dec 27, 2016
.signup_event.php
.signup_game.php
.stocking.php
.travis.yml
Dockerfile
README.md
bower.json
composer.json
composer.lock
docker-compose.override.yml
docker-compose.yml
error.php
events_calendar.php
front_events.php
games_calendar.php
index.html
jwt_helper.php
member_table.php
robots.txt
slack-link.php
slack-whoson.php

README.md

Note: This repo was previously forked from wtg/ambulance, but was removed from the fork network by GitHub Support. The former repository is no longer developed, leaving this repo as the most up-to-date version.

Build Status

Installation and Running the Site

This website is built in the MEAN stack (MongoDB, Express.js, Angular.js, and Node.js), and can be deployed using the following steps:

  1. Clone this git repository by running the following command in a Git-enabled terminal:

    • > git clone https://github.com/rpiambulance/website.git ambulance
  2. Navigate into the directory of the application:

    • > cd ambulance
  3. If NodeJS and Bower are both installed on your computer, skip this step.

    • Install NodeJS here.
    • Install Bower through Node Package Manager (npm) by running: npm install -g bower.
  4. Install all necessary dependencies by running the following commands:

    • > bower install
  5. Install mysql and then:

    • Run the sql located in the file .docker/mysql/schema.sql to create database (ambulanc_web) and necessary tables in the DB
    • [ADD INSTRUCTIONS FOR ADDING MEMBER, DEFAULT CREWS]
  6. Install PHP and a webserver (Apache, Nginx) to run it

Development

The site uses Docker to spin up three containers to ease in development which consists of:

  • MySQL container
  • PHP + Apache container
  • phpMyAdmin container

To use this, you will need to install docker and docker-compose. For Windows and MacOS, it's recommended to install the Docker Desktop which contains everything that you need. For a Linux distro, find your OS and follow the install directions for it on this page. You may need to additionally follow the instructions this page to install docker-compose.

Next, you will need to copy a handful of files into place:

cp .env.sample .env
cp .docker/.admin_config.php .
cp .docker/.db_config.php .
cp .docker/.form_config.php .

Once that is done, you just need to run the following command anytime you want to work on the site:

docker-compose up

This starts all three containers, links them together, and makes them accessible on your localhost. The containers have the following access points on the host machine:

This will setup the necessary .{admin,db,form}_config.php files in your site directory. Additionally, when you first start the MySQL container, it will create a user with the following credentials that you can use to login:

  • Username: test
  • Password: test

Production

Similar to the Development, Production can also be run through docker-compose. Setup steps are largely the same, however, you will want to do:

cp .env.sample .env
cp .admin_config.example.php .admin_config.php
cp .db_config.example.php .db_config.php
cp .form_config.example.php .form_config.php

and then edit the four files to have secure values. Once you are ready to run the site, you will run:

docker-compose -f docker-compose.yml up

Where the accessing the site, phpMyAdmin, and MySQL are through the same endpoints as above, using whatever username and password you set in the .env file to access them.

Deployment

The site is deployed live through the use of Travis-CI with all builds being available at https://travis-ci.org/rpiambulance/website. This allows keeping the live site in sync with the code in the repo automatically and without any human intervention, except to keep Travis-CI working, and to occasionally rotate the credentials listed below.

On any pushes to master, Travis-CI will kick off a deploy script which connects to the RPI VPN network, and then uses rsync to push files from the repo to the Union FTP server, where the site is hosted. To do this, it uses five secret variables that are set on Travis-CI under settings for the repo:

  • RPI_FTP_USERNAME
  • RPI_FTP_PASSWORD
  • RPI_VPN_USERNAME
  • RPI_VPN_PASSWORD
  • RPI_VPN_SECRET

The first two variables are used for accessing the Union FTP server. The next three variables deal with logging into RPI's VPN network. The username and password should be the RCS credentials of a current student (preferably the current webmaster's) while the value for the secret can be found at https://afsws.rpi.edu/AFS/dept/cct/public/vpnc/ after logging in. These are then used to configure the vpnc to connect to RPI network, following a similar setup as outlined on the DotCIO Linux VPN instructions.


Credits

This project was created for the RPI Ambulance organization by the Web Technologies Group.

Developers

Copyrights

  • Select photos are copyrighted by David Sparkman and are used with permission from the author.
  • Some photos are copyrighted by Michael Cuozzo and used with permission from the author.

For more information regarding copyrighted works herein contained, please contact dev@rpiambulance.com or officers@rpiambulance.com

You can’t perform that action at this time.