Code Monkey home page Code Monkey logo

operationcode_backend's Introduction

License: MIT Twitter Follow GitHub contributors

Build Status View performance data on Skylight Good First Issue

Welcome!

This is the back-end application for OperationCode. We highly recommend joining our organization to receive an invite to our Slack team. From there, you'll want to join the #oc-projects and #oc-ruby-projects channels. You can get help from multiple professional developers.

Before contributing, please review our Contributing Guide

Maintainers

For information about the maintainers of the project, check out MAINTAINERS.md.

Quick Start

If you're unsure of how to start this app or code for it, don't worry! You're our target audience! Please read our Contributing Guide to learn everything you need to be able to ask the right questions on our Slack team.

In continuing with the quick start instructions, it is assumed that you are no stranger to Rails Applications, and standard GitHub workflows such as forking, cloning, and branching.

Recommended versions of tools used within the repo:

Expand To View Quickstart
  1. Install Dependencies (git, gnu make, docker)
  2. Retrieve Codebase
  3. Setup Database
  4. Setup Codebase
  5. Interact with Codebase

Description

If you'd like to learn more about what this project is what a Backend is you can read about this in our Introduction Guide.

Wiki

We also have a wiki that contains common tutorials, tips, workflows and documentation around how to successfully contribute to, and work within, the operationcode_backend repository.

Postmortem Reports

Click to expand

As incidents happen that require a great deal of troubleshooting and reveal a certain lack of domain knowledge, we wish to document these issues in way that can be used for contributors to learn. When such an event happens and a Root Cause Analysis is performed these issues will be added here.

For the purpose of security we need to ensure that no data is added to AAR that would compromise any operation code asset. These reports are intended to document issues and reasoning for future contributors and assist future investigations. In these reports we keep the details blameless and focus on how we can improve and iterate in a better manner.

  1. Slack User invites Stopped link

License

MIT Licensed , see LICENSE for details

operationcode_backend's People

Contributors

alexbeeken avatar apex-omontgomery avatar brantron avatar brimil01 avatar cmar avatar cooperbuilt avatar dmarchante avatar hiren-mehta avatar hollomancer avatar hpjaj avatar ianroberts131 avatar igor-starostenko avatar jaydorsey avatar jjhampton avatar jmayergit avatar juliantrueflynn avatar jyoung217 avatar kirbyfern avatar kylemh avatar leenyburger avatar nagano564 avatar nellshamrell avatar ohaiwalt avatar pixelwitch avatar pskaggs avatar ramillim avatar rickr avatar robbkidd avatar robotscissors avatar yosefbennywidyo avatar

Stargazers

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

Watchers

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

operationcode_backend's Issues

Alert community leaders when a new member joins in their area

Feature

Why is this feature being added?

Community leaders have already become a vital part of Operation Code. They provide local support, connections and a friendly face near to our users. We should make it easier for our community leaders to know when a new member joins in their area.

What should your feature do?

When a member joins check to see if there's a community leader within a certain range of the new user. If there is send the community leader a message notifying of the new user.

Broken links to fragments in the table of contents and quickstart sections of the contribution guide

Bug Report

What is the current behavior?

There are certain broken links to fragments such as 'Submitting your changes', 'Working on your issue' in the table of contents and quickstart sections of the contribution guide. At present those links don't take the user to the corresponding fragment.

What is the expected behavior?

The links should point to the correct fragment.

What steps did you take to get this behavior?

Clicked on the respective headings in the table of contents and quickstart sections

Additional Info

Operating System

Windows

Browser

Chrome

Fix travisci build failures

Bug Report

What is the current behavior?

All builds fail attempting to connect to psql

What is the expected behavior?

Builds should pass

What steps did you take to get this behavior?

Running `make setup` on initial repo setup throws error

Bug Report

What is the current behavior?

When initially setting up this repo locally, the following error is generated when running the make setup command.

โžœ  operationcode_backend git:(master) make setup
docker-compose run web rake db:create
Pulling bundle (operationcodebackend_web:latest)...
ERROR: repository operationcodebackend_web not found: does not exist or no pull access
make: *** [db_create] Error 1

What is the expected behavior?

According to the Makefile a successful db_create db_migrate

What steps did you take to get this behavior?

  1. Clone the repo; cd into it
  2. $ bundle
  3. $ make setup

Additional Info

Operating System

macOS Sierra 10.12.4

Ability to pull membership numbers by zip & total

Feature

Why is this feature being added?

I'd like to be able to query our database to know exactly how many users we have, and what locations we have the most members in. This also enables us to do some interesting visualizations in the frontend.

The intent here is to be able to query from the frontend, or even from Slack, how many folks we have from a given state or region.

What should your feature do?

  • Query user database for number of users total.
  • Query user database for number of users by zipcode.

Convert current code_schools endpoint generation to a more extendible architecture

Improvement

Why is this improvement being suggested?

I noticed that Galvanize is missing some locations, there may be other code schools with new locations or other out-of-date details. There also have been a few code school representatives that want to add their school to our site, but have to deal with manually updating code_schools.yaml. Let's implement CRUD functionality by offering an interface for code school reps and OC admins to add/edit/delete code school data.

What would your improvement do?

Automates/improves the current functionality of adding/updating/deleting code schools from our API.

NOTE: Information detailed by @hpjaj here!

  • create a new CodeSchool db table
  • CRUD API endpoints for CodeSchool records
  • rake task that creates a CodeSchool record for each entry in code_schools.yml
  • wire up the existing :index endpoint to fetch CodeSchool db records
  • test coverage for new endpoints
  • update our API documentation

POST request on join page

Bug Report

What is the current behavior?

After completing the sign-up form on https://www.operationcode.org/join, the POST request does not go through.

What is the expected behavior?

The page should redirect to a different page and the user should receive a welcome email.

What steps did you take to get this behavior?

Additional Info

Operating System

Browser

Screenshots

screen shot 2017-07-08 at 1 42 04 pm

screen shot 2017-07-08 at 1 44 04 pm

screen shot 2017-07-08 at 1 44 11 pm

Convert to sendgrid API instead of SMTP

Feature

Why is this feature being added?

We have white labeled IP addresses and can now use sendgrid's API to track our emails.

What should your feature do?

Integrate and convert this app to use sendgrid-actionmailer
I think it'll be easier/simpler to add on to the new SendGridClient located in app/lib/send_grid_client.rb.

The transactional template id is e6bc900f-fc72-4891-8f7a-8f3f3c9c105b. It takes one substitution: %user_count% - which lists the number of users we have.

This ticket should create a new method for the SendGridClient that sends a transactional email using sendgrid-ruby. This method should take a transactional_template_id and a hash of values that will be substituted into the template.

Once deployed we can test to make sure emails are delivered as expected.

Another ticket will be filed to change over delivery from SMTP to this new method.

Remove old mailchimp job

Feature

Why is this feature being added?

Removes all mailchimp code/gems/mentions in support of OperationCode/operationcode_old_site#751

What should your feature do?

Remove the mailchimp job, gem, and method from the User model.

This is blocked until #49 is competed, deployed, and confirmed.

#49 has been verified. This is free to be worked.

Create A README

This is a:

  • Feature request
  • Bug report

Features

What is your new feature?

Update the README.

What should your feature do?

The new doc should cover:

  • What this repo is
  • What technologies this repo is using
  • How to create an issue
  • How to contribute (including code style and PR guidelines)

Document the users endpoint

This is a:

  • Feature request
  • Bug report

Features

What is your new feature?

Document the users endpoint.

What should your feature do?

Document path, format, and options.

Create ID.me verification endpoint

Feature

Why is this feature being added?

We need to support verifying users via ID.me

What should your feature do?

Create an endpoint /api/v1/users/profile/verify
You will be passed one parameter access_token.
Take that parameter and GET the following URL to https://api.id.me/api/public/v2/attributes.json ?access_token=ACCESS_TOKEN
That should provide you with the following payload:

{
  "id": "a1b2c3d4e5f6g7h8i9j0",
  "verified": true,
  "affiliation": "Service Member",
  "fname": Test,
  "lname": User,
  "email": "[email protected]",
  "uuid": "a1b2c3d4e5f6g7h8i9j0"
}

The data from verified should be stored as an attribute on the User determined via the JWT

Create an 'add_to_sendgrid' job

Feature

Why is this feature being added?

To support OperationCode/operationcode_old_site#751 we will need to create a new job that is called when a user joins. It should hit the following

What should your feature do?

Add a new ActiveJob that adds a user to the sendgrid contactdb. The API endpoint you need is documented here.

Update the welcome_user method in the User model to call this new job.

There is a sendgrid gem that could be useful: sendgrid-ruby

Create CDN to serve up codeSchool logos

Feature

Why is this feature being added?

Currently, codeSchoolLogos are being served up by treating raw.githubusercontent.com endpoints as an API. There are rate limiters in place, and we'll likely get flagged for continuing to serve up those images in that manner.

What should your feature do?

Hosting the images on the server while creating a CDN for them to accessed is likely the best way to handle the issue of accessing images via an API, and will be a quick CTRL+F fix in the yaml file under the logo attributes of each school.

Document Code Schools endpoint

This is a:

  • Feature request
  • Bug report

Features

What is your new feature?

Document the code schools endpoint.

What should your feature do?

Document path, format, and options.

Manual data update in code_schools.yaml

Improvement

Why is this improvement being suggested?

I noticed that Galvanize is missing some locations, there may be other code schools with new locations or other out-of-date details.

What would your improvement do?

By updating code_schools.yaml with up-to-date information, we can ensure that our audience is receiving correct information.


If you are looking for Open Source contribution - this is easy pickings!
See comments for a very thorough walk-thru.

Better link for installing Docker on Ubuntu in the contribution guide

Feature

Why is this feature being added?

At present we are linking to a third-party website for those who wish to install Docker on Ubuntu. Docker already provides downloads (in both CE and EE) for Ubuntu systems. We should be linking to that instead, just like how we do for Mac and Windows systems.

What should your feature do?

Add Code Platoon as a

Feature

Why is this feature being added?

What should your feature do?


Bug Report

What is the current behavior?

What is the expected behavior?

What steps did you take to get this behavior?

Additional Info

Operating System

Browser

Screenshots

Github management

  • Create issue template
  • Create PR template
  • Create (and check in config) labels

Run migrations on container start

Feature

Why is this feature being added?

Migrations currently have to be run manually once they hit production.

What should your feature do?

Create a script that will do any startup related tasks (eg rails db:migrate).
It should end with bundle exec puma -C config/puma.rb

Use webhooks for upgrading

Feature

Why is this feature being added?

We don't need to use the rancher API to upgrade anymore

What should your feature do?

Fix the makefile and travis config to upgrade via webhooks

Create a new user endpoint

This end point should take:

  • An email
  • A zip code
  • Type of user (veteran or mentor)

It should:

  • Validate the email address
  • Validate the email address doesn't exist
  • Validate the zip code is a number
  • Validate the type of user is valid
  • Geocode the user
  • Add the user to mail chimp
  • Add the user to slack
  • Send a welcome email

Instructions given in the contribution guide for Docker on Windows don't work for those using Docker Toolbox

Feature

Why is this feature being added?

The instructions currently given in the contribution guide are meant for those using the Docker for Windows app. They are not applicable to those using Docker Toolbox (which would be needed for those who don't have the Professional/Enterprise edition of Windows 10 or even have an earlier version of Windows).

What should your feature do?

  1. A mention of Docker Toolbox as an alternative should be made, in the download links.
  2. It needs to be mentioned that in a full installation of the Docker Toolbox, Git is already included (which is another prerequisite given in the contribution guide).
  3. The database setup step fails in case of those using the Docker Toolbox because it needs to be run from the Docker Quickstart Terminal, which does a little Docker-related housekeeping related to environment variables before being ready to accept commands. It doesn't work from the Git CMD shell.
  4. http://localhost:3000 does not always work on all systems. netstat-related instructions need to be mentioned for figuring out the correct IP address where the server is bound for listening. Also, it needs to be mentioned that users will be getting just a simple Rails welcome message upon visiting the URL, not something similar to the OperationCode website (which the current text says).

Additional Info

Operating System

Windows

Browser

Chrome

Screenshots

Pull all meetups from the meetup API

Feature

Why is this feature being added?

  1. Get all Operation Code meetup data from Meetup.com's API.
  2. Filter the data and save to the database as events. Event data will be set up in such a way to expand to other platforms (facebook)
    • Write migration to add source_id, source_updated, and group to existing Events table
    • Compare to existing data to ensure events aren't duplicated.
    • Compare updated_at (available via Meetup's API) to see if an event has been updated.
  3. Write a rake task to pull the data.
  4. Render data as json at events endpoint.

What should your feature do?

API endpoint for aggregated open source contribution statistics

Feature

Why is this feature being added?

We need to better demonstrate the impact that our organization has on the open source community. I would like to see a page showing our members on Github, what they have created, and how the Operation Code organization has enabled that.

What should your feature do?

MVP: Use Github's API to retrieve statistics on contributions to /OperationCode/foo repositories, and consolidate into a single database.

Corresponding issue for data visualization in the frontend repository - OperationCode/operationcode_frontend#231

Change from Factory Girl to fixtures

Feature

Why is this feature being added?

Factory girl is very slow. While we don't have too many features I'd like to switch over to fixtures

What should your feature do?

Replace all factories with features, make all tests pass.

Update code_schools.yml format

Feature

What is your new feature?

Update the code_schools.yml and json output for the new frontend UI

What should your feature do?

The json output should match the new version

Fix Dev Bootcamp address

Dev Bootcamp Chicago recently moved from the address in the code_schools.yml file to a new address:

1033 W. Van Buren Street, 3rd Fl
Chicago, IL 60607

Add a /team endpoint

Add a /team endpoint

What will this feature do?

Provide a data source for the front end to serve the name / role of all team members

Add travis config

Feature

Why is this feature being added?

To get to CI/CD

What should your feature do?

Automate builds on merge

Create resource endpoint

This is a:

  • Feature request
  • Bug report

Features

What is your new feature?

Add a new resources endpoint.

What should your feature do?

This endpoint should

  • be sectioned into areas of interest or languages (eg ruby, frontend, backend, machine learning)
  • have an index listing all available sections
  • be able to return all sections

Create an events endpoint

This will be the first iteration of the endpoint. For now this will return entries from our local database only.

This API will show all events

To do this you should:

  • Create a controller with a #index action
  • Create a GET route to /api/v1/events
  • Create a Event model (with validations)
  • Create a migration

The table should have the follow columns:

  • name - string
  • description - text
  • URL - string
  • start_date - datetime
  • end_date (optional) - datetime
  • address1 - string
  • address2 - string
  • city - string
  • state - string
  • zip - string
  • scholarship_available - boolean

Create FAQ endpoint

This endpoint should take a YAML config file and return a json response.

Use this file as the source.

I'd like to see this moved back to the front end eventually.

Fix code schools page

Bug Report

What is the current behavior?

500 when visiting codeschools URL

What is the expected behavior?

List of code schools is displayed

What steps did you take to get this behavior?

curl localhost:3000/api/v1/code_schools

Additional Info

Operating System

Browser

Screenshots

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.