Giter Site home page Giter Site logo

izuroxx / rgsoc-teams Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rails-girls-summer-of-code/rgsoc-teams

0.0 1.0 0.0 3.65 MB

Teams management and activity

Home Page: https://teams.railsgirlssummerofcode.org

License: MIT License

Ruby 75.23% CoffeeScript 0.26% JavaScript 0.95% CSS 2.68% HTML 20.89%

rgsoc-teams's Introduction

Rails Girls Summer of Code Teams

Build Status Code Climate Dependency Status Stories in Ready

Looking for your help!

For Rails Girls Summer of Code we are planning to build a simple app that aggregates daily status updates, commit activity, GitHub issues and other things into an activity stream.

Main goals are:

  • make it easy to get an overview of activity/progress for each of the teams for supervision
  • make it easy for interested remote coaches to find opportunities to give support/help
  • display to the world how much amazing stuff is happening

We are planning to require teams to keep a daily log of short updates about their work. Our idea is to allow any sort of blog type tool for that (maybe recommend a few) and aggregate things through RSS in a central app. This app could then act as a webhook target for GitHub events.

Since we still are somewhat overwhelmed with the amount of work we'd like to ask the community for help with this. The app would need to be available (initial, basic version) on 1st of July, ideally a few days earlier.

Features:

  • Users can sign in through GitHub Oauth

  • They can create and update teams

  • Teams have members (students, coaches, mentors aka project maintainers), GitHub repositories, a log URL

  • RSS feeds are fetched from all teams' logs regularly and aggregated

  • There is a webhook endpoint for GitHub events that aggregates information about issues, pull requests and such

Requirements:

  • Keep it simple, so Rails Girls students can get involved, too
  • By contributing, you agree to adhere to our Code of Conduct

System Requirements

  • PostgreSQL 9.3 or newer
  • Ruby 2.3.1

Setup on Ubuntu

# Install required packages
$ sudo apt-get install postgresql libpq-dev libcurl3 libcurl3-gnutls libcurl4-openssl-dev postgresql-contrib-9.3
# Create database user rgsoc with password rgsoc
$ sudo -u postgres createuser -P -s rgsoc
Enter password for new role: rgsoc
Enter it again: rgsoc

Setup on OS X

# Install required packages
$ brew install ruby
$ gem install bundler
$ brew install postgres
# Make sure to follow the instructions printed on the screen for postgres

# Create database user rgsoc with password rgsoc
$ createuser -P -s rgsoc
Enter password for new role: rgsoc
Enter it again: rgsoc

Bootstrap

Copy config/database.yml.example to config/database.yml. Then make sure you modify the settings so it could connect to your postgres server.

Inside database.yml add username and password for development and test:

development:
  adapter: postgresql
  database: rgsocteams_development
  host: localhost
  username: rgsoc
  password: rgsoc

Then install all dependencies:

bundle install
bundle exec rake db:drop db:setup

Note for OS X: There is a bug where on OS X you need to force 64bit mode for bundle install:

ARCHFLAGS="-arch x86_64" bundle install

Otherwise pg gem installation will fail.

Mailtrap (optional)

To avoid accidentally sending out mails to real addresses we suggest Mailtrap. You can create a free account there with an inbox to 'trap' emails sent from your development environment.

Copy the .env-example to .env and replace InboxUsername and InboxPassword with your own username and password from your mailtrap inbox.

Now when running the command foreman before any command in this project directory the variables from .env will be loaded into the environment.

E.g. foreman run rails server or foreman run rails console.

Quick Start


###Beginner Friendly Tips for New Contributors

  • After forking the repo, follow the steps described above under 'Bootstrap'. Mailtrap is optional.
  • (Install and) connect to Postgres server

  • With everything properly installed, open the browser in development environment
  • The app should be available, with the database loaded with fake data.
  • To access all the functionality of the teams app, add yourself as an organizer.
    • In the browser: log in with your github account

    • In Rails Console: user = User.last #or user = User.find_by(github_handle: "yourgithubhandle")
 user.roles.create(name: "organizer") You can assign yourself other roles in the same way. If however you assign yourself a student role AND another role, that may lead to unexpected behavior in the app. In that case, remove the student role. 

    • Refresh the browser to effectuate. You should see links for organizers.

  • Once you are an organizer, you can add a season and switch between season's phases at http://localhost:3000/orga/seasons in your browser.
  • You are good to go now. Happy coding!

Testing

bundle exec rake spec

You can optionally create a test-coverage report in coverage/* like so:

COVERAGE=yes bundle exec rake spec

Deployment

The staging app lives at http://rgsoc-teams-staging.herokuapp.com/users. The production app is at http://teams.railsgirlssummerofcode.org.

[remote "staging"]
        url = [email protected]:rgsoc-teams-staging.git
        fetch = +refs/heads/*:refs/remotes/staging/*
[remote "production"]
        url = [email protected]:rgsoc-teams-production.git
        fetch = +refs/heads/*:refs/remotes/production/*

Append -r staging or -r production to any heroku command in order to specify the app.

This app uses camo to proxy insecure images in activity logs when CAMO_HOST and CAMO_KEY environment variables are set.

Cron jobs

Set up the Heroku scheduler to run these tasks:

  • rake activity:update every 10 min
  • rake teams:notify_missing_log_updates once per day as close to midnight as possible (currently 23:30 UTC)

rgsoc-teams's People

Contributors

carpodaster avatar svenfuchs avatar emcoding avatar alicetragedy avatar bastilian avatar roosdebildt avatar hola-soy-milk avatar marcgreenstock avatar michaelem avatar klappradla avatar pxlpnk avatar akshatadm avatar aishty avatar izuroxx avatar mkalininait avatar cypher avatar tjmcewan avatar sareg0 avatar benedikt avatar katrin-k avatar anikalindtner avatar lislis avatar jasnow avatar beanieboi avatar carlad avatar plexus avatar lucaspinto avatar agnikka avatar patriciagao avatar tbuehlmann avatar

Watchers

 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.