All Projects → orientation → Orientation

orientation / Orientation

Licence: mit
Your best weapon in the fight against outdated documentation.

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Orientation

App
Fast and searchable Ruby docs
Stars: ✭ 47 (-86.98%)
Mutual labels:  documentation, rails
Bluedoc
An open-source document management tool for enterprise self host.
Stars: ✭ 579 (+60.39%)
Mutual labels:  documentation, rails
Lurker
📖 The ultimate tool for documenting and testing APIs in Rails
Stars: ✭ 120 (-66.76%)
Mutual labels:  documentation, rails
Api schema
DSL for describing APIs and generate swagger json
Stars: ✭ 18 (-95.01%)
Mutual labels:  documentation, rails
Apitome
Apitome: /iˈpitəmē/ An API documentation presentation layer for RSpec API Documentation output.
Stars: ✭ 244 (-32.41%)
Mutual labels:  documentation, rails
Wechat Starter
Template for developing wechat in rails
Stars: ✭ 347 (-3.88%)
Mutual labels:  rails
Dokz
Effortless documentation with Next.js and MDX
Stars: ✭ 353 (-2.22%)
Mutual labels:  documentation
Commit Watcher
Find interesting and potentially hazardous commits in git projects
Stars: ✭ 345 (-4.43%)
Mutual labels:  rails
Docsearch Configs
DocSearch - Configurations
Stars: ✭ 339 (-6.09%)
Mutual labels:  documentation
Guides
Documentation guides and tutorials for Clojure. Various authors.
Stars: ✭ 361 (+0%)
Mutual labels:  documentation
Aws Doc Sdk Examples
Welcome to the AWS Code Examples Repository. This repo contains code examples used in the AWS documentation, AWS SDK Developer Guides, and more. For more information, see the Readme.rst file below.
Stars: ✭ 4,575 (+1167.31%)
Mutual labels:  documentation
Thehivedocs
Documentation of TheHive
Stars: ✭ 353 (-2.22%)
Mutual labels:  documentation
Reports kit
Beautiful, interactive charts and tables for Ruby on Rails
Stars: ✭ 349 (-3.32%)
Mutual labels:  rails
App perf
Open source application performance monitoring tool with emphasis on ease of setup and use. Providing similar functionality like NewRelic/AppNeta/Skylight etc.
Stars: ✭ 353 (-2.22%)
Mutual labels:  rails
Hack Spacevim
🚀 Tell you how to hack SpaceVim. Be useful. Try Discussions!
Stars: ✭ 346 (-4.16%)
Mutual labels:  documentation
Doctest
An experimental tool for testing Swift example code in documentation.
Stars: ✭ 358 (-0.83%)
Mutual labels:  documentation
Tomatoes
Pomodoro Technique® online time tracker
Stars: ✭ 344 (-4.71%)
Mutual labels:  rails
Samples
JavaFX samples to run with different options and build tools
Stars: ✭ 352 (-2.49%)
Mutual labels:  documentation
Bootstrap Generators
Bootstrap-generators provides Twitter Bootstrap generators for Rails
Stars: ✭ 355 (-1.66%)
Mutual labels:  rails
Rails performance
Monitor performance of you Rails applications
Stars: ✭ 345 (-4.43%)
Mutual labels:  rails

Orientation

Build Status Code Climate Ruby Version

What is Orientation?

Documentation is hard. People forget to write it, and they are asked the same question over and over again. When they finally do write it down, people can't find it or it gets out of date before it can be useful.

The goal of Orientation is to make a single point of entry for any internal question someone may have about the organization:

How can I help with bugs, maintenance and other issues?

Do we give student discounts?

How can I help with support?

Orientation's Homepage

Check out the Purpose of Orientation, and Current and Future Features.

Try the Demo You'll need a Google Apps account to sign in.*

Authentication

I originally tried to make Orientation as easy to onboard to as possible for people in our team. While a huge majority of us had GitHub accounts, not everyone did. Nor was it realistic to expect non-developers to setup a GitHub account just to use a documentation tool. We did — however have — company Google Apps accounts, so this is what I used. I want to enable custom OAuth providers soon.

Requirements

Software

Some of these system dependencies can be installed on a macOS development machine with the bin/system command using Homebrew.

  • Ruby 2.4 to 2.6
  • PostgreSQL 9.3+ (with JSON support, and fuzzystrmatch & pg_trgm extensions)
  • Node.js 8.12.0 (for yarn)
  • yarn

Node is available on Heroku if you decide to deploy there, which means there should not be any issues when deploying or running Orientation there.

Services

  • Mandrill account for transactional emails
  • Google API project with access to the "Contacts API" and "Google+ API" for OAuth authentication of users.

Installation

Heroku

If you want to quickly test out your own Orientation installation, you can use the Heroku button:

Heroku Button

Docker

See Docker installation instructions.

Local Setup

  1. Run git clone [email protected]:orientation/orientation.git in Terminal.
  2. cd into the cloned directory.
  3. Run bin/setup in Terminal. This will install project dependencies.
  • Run USE_OSX_SERVICES=true bin/setup if you don't plan on using Docker to run system dependencies
  1. Check the output in Terminal. You should see a line that says Use the following value for the SECRET_KEY_BASE key: with a long random string afterward. Copy the string and find the paste it in the .env file as the SECRET_KEY_BASE, around line 20.
  2. In the .env file, set the DATABASE_USERNAME and DATABASE_PASSWORD.
  3. Run rake db:create db:setup in Terminal.
  4. Run rails s to start the server.
  5. Visit at localhost:3000.

Make sure to check the installation task if anything strange happens during installation.

Once you're done, pay close attention to the .env file that will appear at the root. It's copied from .env.example and contains all the environment variables needed to configure Orientation.

OAuth is disabled in development and you will be signed in as whichever user is returned from User.first.

Deployment

Required Environment Variables

See .env.example file. Note that if you host your Orientation on Heroku you'll need to set those environment variables manually. I recommend dotenv-heroku to do this easily using you local (git-ignored) .env file as a canonical source.

Multiple Buildpacks

Multiple buildpack support used to be unofficial and relied on a custom buildpack created by David Dollar. This is no longer the case since Heroku has rolled out official support for multiple buildpacks.

Therefore, if you decide to deploy Orientation on Heroku manually (without using the Heroku button, which would take care of this for you) you will need to add two buildpacks since the app relies on NodeJS for yarn package installation.

Note that for some reason you need to be the owner of the app on Heroku in order to be able to do this:

heroku buildpacks:add --index 1 https://github.com/heroku/heroku-buildpack-ruby -a yourappname
heroku buildpacks:add --index 2 https://github.com/heroku/heroku-buildpack-nodejs -a yourappname

When you run the following command, your output should be similar:

$ heroku buildpacks -a yourappname
=== yourappname Buildpack URLs
1. https://github.com/heroku/heroku-buildpack-nodejs
2. https://github.com/heroku/heroku-buildpack-ruby

Google OAuth 2 setup

  • Go to the Google Developers Console and create a new project
  • Once you've created the project, go to APIs and add the Contacts API and the Google+ API (you won't need a Google+ account to sign in, this is just an annoying Google quirk).
  • Then go to Credentials and Create a new Client ID. You'll need the app's production URL to complete this step so if you're using the Heroku button, do that first. You can use your production URL for the JavaScript Origins setting, but make sure to use http://yourdomain.com/auth/google_oauth2/callback for in the Redirect URIs setting. It's a good idea to also add the same URL but with the HTTPS protocol to ensure that if you ever force SSL, Google will still accept the redirect.
  • Don't forget to go update the GOOGLE_KEY and GOOGLE_SECRET environment variables with the credentials Google gave you when you created your Client ID, otherwise the redirection process will fail.

Transactional Emails with Mandrill

If you enable transactional email notifications with Mandrill, you'll need to create Mandrill templates with names that match the ones listed in our Mandrill documentation.

Development

Styling

Orientation uses a Sass-based CSS architecture called MVCSS. It was extracted from Envy and Code School work by both front-end teams.

It's not nearly as complex as a framework. The basic gist is that we try to keep things as modular and dynamic as possible. Magic values are not welcome. If you contribute styling changes to Orientation, please take the time to get the lay of the land.

OAuth in development

In development we cheat around OAuth by simply using User.first as the current user because it's easy and we're lazy. Testing OAuth in dev is hard.

If you're curious what the OmniAuth hash from Google OAuth 2 looks like check this out.

Contributions

We welcome those with open arms but we kindly ask that you read our contribution guidelines before submitting pull requests. ❤️

License

Orientation is MIT licensed. See LICENSE for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].