Code Monkey home page Code Monkey logo

collabbit's Introduction

Welcome to Collabbit

Collabbit is a web-based communication tool which helps coordinate and organize relief efforts in times of disaster and recovery. It aims to eliminate burdensome conference calls between the various parties involved, replacing them with quick and easy updates online, as well as provide a written record of the progress of the event.

Doing Collabbit Development

Before you start...

  1. Install Ruby on Rails and MySQL.
  2. Create a GitHub account and upload a public key so you have SSH access.
  3. Fork the latest stable version on GitHub. It's always available on GitHub.

Installation

  1. Run git clone [email protected]:YOURUSERNAME/collabbit.git to get a copy of your fork.

  2. Create a config/database.yml file. A simple default is available here.

    You'll need to add the username/password of a MySQL user with all permissions on tables starting with collabbit_

  3. Create a folder config/settings

  4. Inside config/settings add a keys.yml, an smtp.yml, and—if you're going to be deploying with Capistrano—a deploy.yml.

    Default versions of these files may be found in this gist. The default settings are only suitable for development and should not be used on production systems.

  5. Run rake gems:install to install all of the necessary gems.

  6. Run rake db:redo to create, migrate, and seed the database.

  7. Add the following line to your HOSTS file (/etc/hosts on Linux; this will require root permissions):

     127.0.0.1 collabbit.dev demo.collabbit.dev
    

    (Alternatively, if you can't modify your HOSTS file for whatever reason, you can also use an external domain that redirects to localhost. One such domain is localhacks.com, which redirects *.localhacks.com to localhost.)

  8. Run script/server and go to http://demo.collabbit.dev:3000. Collabbit should be running, and you can log in with one of the default users' usernames/passwords. (Those can be found in db/seeds.rb.)

Code Style Guidelines

For editing Ruby files (.rb), please have your editor configured to use spaces instead of tabs, and have the tab width set to two spaces. For editing CSS and Erb templates, please have your editor configured to use tabs, not spaces. We are planning to migrate all templates to Haml and all CSS to Sass over the summer. Once that's complete, we'll standardize on two spaces for all filetypes.

In addition, please always indent nested block HTML tags, and nest CSS hierarchically. For a style example, see this gist.

Do not add author or license declarations to the top of files you're committing. All files committed to Collabbit must be licensed by the author under the LGPL. The license is specified here, in the readme, and a copy is available in the top-level files LICENSE_GPL.txt and LICENSE_LGPL.txt. Commit records provide a record of authorship.

License

This program is licensed under the GNU Lesser General Public License version 3, an additional set of permissions on top of the GNU General Public License version 3.

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 General Public License for more details.

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

collabbit's People

Contributors

dgochev avatar efoxepstein avatar samdk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

collabbit's Issues

Fine grained contact selection

Use case: Users may only want to contact a subsection of a large group like an agency.

We could use filters and then checkmarks on a contact card to give fine grained control of download/email functions

Users awaiting admin approval should get 'pending' email

When a user in a non-whitelisted domain asks to join Collabbit, they should get an email saying their account is pending admin approval."

Hi ,
An administrator needs to approve your request to join the Collabbit. They have been notified of your request. You will get an email giving you access (or not) once they've decided.

Cheers,
Administration Team

Change Incident Update counter text

Current: Evil Earthquake showing all updates (10 matches)
Change to: Evil Earthquake showing all 10 updates

Current: Evil Earthquake showing filtered updates (2 matches)
Change to: Evil Earthquake showing 2 filtered updates

Change copy - Contacts

Current: Contacts showing filtered contacts (2 matches)
Change to: Contacts showing 2 filtered contacts

Current: Contacts showing all contacts (4 matches)
Change to: Contacts showing all 4 contacts

Refactor user forms

We have a bunch of forms for editing accounts. Some partials would make this more DRY. Additionally, the forms need styling.

Multiline comment styling

multiline comments need some styling tweaks. also multiple comments in general could probably use some.

Selenium tests

We need more selenium tests to test every aspect of the UI. Please ensure that your tests are output as Ruby code (and non-RSpec).

Absolute URL support

We have our URL hardcoded in a bunch of places. We need to support having this be dynamically generated somewhere.

Chat

Far far away to do it right

Locale Strings (flash messages)

We need to make sure that all flash messages (and as much text as possible) is done through the i18n framework for locales.

This is a non-coding task that involves writing error messages, notices, warning, etc. This entails going through all controllers and some views, and making sure messages are of the form t(some.message) instead of a message in quotation marks. Then, you must ensure that the message title exists in the locales file.

Add copy for null search results

instead of a blank screen say "We couldn't find what you were looking for. Try again with different words"

Or something close.

SSL

what other security makes sense and is practicable for our (lack of) resources

Deleted users & groups

We gotta figure out what to do with deleted users and groups. How should we treat their updates? Should we notify users when their accounts are nuked? When a group of theirs is deleted? This should probably be an option when deleting things -- whether or not to notify. Thoughts?

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.