Code Monkey home page Code Monkey logo

eff_fab-1's Introduction

Eff Fab

This is a rails app built to make it easy for organizations with many users keep track of what they themselves are doing and what things their coworkers are up to.

Copyright (C) 2014-2016 Electronic Frontier Foundation (EFF).

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.

Getting Started

Note: These instructions assume you have experience deploying conventional rails apps.

Install dependencies, or use mah vagrant box.

$  sudo apt-get install mysql-server libmysqlclient-dev imagemagic

If you want to run the unit tests you need to install PhantomJS directly from this link: http://phantomjs.org/download.html

Setup the app as with most rails apps

$  cp config/application.yml.example config/application.yml
$  bundle install
$  rake db:create
$  rake db:migrate
$  rake user:populate_users

Now you can boot up the server

$  rails s

You'll want to notice the configuration file located at config/application.yml, an admin will have been generated with the supplied credentials, and also the secret_key_base will need to be recalculated via rake secret and insertered for the app to work.

Setup

Populate Database Records

To prime up the database with a basic admin user, run rake db:seed. To populate the app for EFF usage, login as the admin user (see application.yml for credentials) and navigate to /admin and click the button for Populate Users, this will scrape https://www.eff.org/about/staff for user names, emails, and pictures and plug them into the database. It takes a while...

Setup Reminder Mailings

Reminders and report_on_aftermath notifications are sent over email via rake mail:send_reminder and rake mail:send_report_on_aftermath respectively. It's clever to have these commands executed via cron. An example crontab follows:

0 12 * * 5 bash -l -c "cd /www/fab.int.eff.org/ && rake mail:send_reminder

0 12 * * 1 bash -l -c "cd /www/fab.int.eff.org/ && rake mail:send_reminder
0 15 * * 1 bash -l -c "cd /www/fab.int.eff.org/ && rake mail:send_reminder
15 15 * * 1 bash -l -c "cd /www/fab.int.eff.org/ && rake mail:send_last_minute_reminder

0 16 * * 1 bash -l -c "cd /www/fab.int.eff.org/ && rake mail:send_report_on_aftermath
Customize the images

Drop in more images into app/assets/images/banner_pool to have them show up in that beautiful top banner. If one image doesn't seem to work, it probably has a + sign or possibly something even more adventurous like a question mark, so try taking that out.

Credits

License

eff_fab-1's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.