All Projects → thoughtbot → Constable

thoughtbot / Constable

Licence: agpl-3.0
Better company announcements

Programming Languages

elixir
2628 projects

Projects that are alternatives of or similar to Constable

Briefing
Secure direct video group chat
Stars: ✭ 710 (+40.59%)
Mutual labels:  communication, webapp
Responsiveframework
Easily make Flutter apps responsive. Automatically adapt UI to different screen sizes. Responsiveness made simple. Demo: https://gallery.codelessly.com/flutterwebsites/minimal/
Stars: ✭ 476 (-5.74%)
Mutual labels:  webapp
Ytmdl Web V2
Web version of ytmdl. Allows downloading songs with metadata embedded from various sources like itunes, gaana, LastFM etc.
Stars: ✭ 398 (-21.19%)
Mutual labels:  webapp
Monitorr
"Monitorr” is a self-hosted PHP web app that monitors the status of local and remote network services, websites, and applications.
Stars: ✭ 449 (-11.09%)
Mutual labels:  webapp
Sandbox
Development sandbox for front end projects and tutorials.
Stars: ✭ 408 (-19.21%)
Mutual labels:  webapp
Filestash
🦄 A modern web client for SFTP, S3, FTP, WebDAV, Git, Minio, LDAP, CalDAV, CardDAV, Mysql, Backblaze, ...
Stars: ✭ 5,231 (+935.84%)
Mutual labels:  webapp
Optikey
OptiKey - Full computer control and speech with your eyes
Stars: ✭ 3,906 (+673.47%)
Mutual labels:  communication
Androiduix
Make a high-performance mobile web app / SPA with Android UI
Stars: ✭ 501 (-0.79%)
Mutual labels:  webapp
Awesome Phoenix
🔥 Collection of awesome open-source apps made with Phoenix Framework
Stars: ✭ 481 (-4.75%)
Mutual labels:  elixir-phoenix
Nestjs Bff
A full-stack TypeScript solution, and starter project. Includes an API, CLI, and example client webapp. Features include production grade logging, authorization, authentication, MongoDB migrations, and end-to-end testing.
Stars: ✭ 450 (-10.89%)
Mutual labels:  webapp
Openvpn Web Ui
Web interface (with golang backend) for monitoring and administration of OpenVPN server
Stars: ✭ 444 (-12.08%)
Mutual labels:  webapp
Bastillion Ec2
A web-based SSH console to execute commands and manage multiple EC2 instances simultaneously running on Amazon Web Services (AWS).
Stars: ✭ 410 (-18.81%)
Mutual labels:  webapp
Webglstudio.js
A full open source 3D graphics editor in the browser, with scene editor, coding pad, graph editor, virtual file system, and many features more.
Stars: ✭ 4,508 (+792.67%)
Mutual labels:  webapp
Udash Core
Scala framework for building beautiful and maintainable web applications.
Stars: ✭ 405 (-19.8%)
Mutual labels:  webapp
Iprotate burp extension
Extension for Burp Suite which uses AWS API Gateway to rotate your IP on every request.
Stars: ✭ 484 (-4.16%)
Mutual labels:  webapp
Post Me
📩 Use web Workers and other Windows through a simple Promise API
Stars: ✭ 398 (-21.19%)
Mutual labels:  communication
Node Bluetooth Serial Port
Serial I/O over bluetooth for NodeJS
Stars: ✭ 444 (-12.08%)
Mutual labels:  communication
Haskell Code Explorer
Web application for exploring and understanding Haskell codebases
Stars: ✭ 454 (-10.1%)
Mutual labels:  webapp
Tasks
A simplistic todo list manager written in Go
Stars: ✭ 504 (-0.2%)
Mutual labels:  webapp
Rssbox
📰 I consume the world via RSS feeds, and this is my attempt to keep it that way.
Stars: ✭ 492 (-2.57%)
Mutual labels:  webapp

Constable

Constable is part of the thoughtbot Elixir family of projects.

Constable is a Phoenix app for posting announcements and having discussions. To learn more about Phoenix, check out Programming Phoenix

Starting the Console

Use bin/console to start the console. Use bin/console staging|production to start the console in staging or production.

Reactivating Users

Users are deactivated if they leave thoughtbot. Sometimes someone with the same first name joins thoughtbot later and inherits the deactivated email so we need to reactivate the email. There are two ways to reactivate a user:

  1. From the browser:
  • Visit /user_activations
  • Click on Activate the user
  1. From the console:

Developing the Application

To set up your development environment, there are a few steps you'll need to follow.

Install Required Dependencies

You need to have Erlang, Elixir, Node and ChromeDriver installed. This section describes the easiest way to do that.

If you're on OS X and using Homebrew, run brew install node to get nodejs.

Once node is installed, run npm -g install chromedriver.

Finally, install the asdf package manager, which will read the .tool-versions file from the repo to install the correct versions of Erlang and Elixir. Downloading and installing Erlang might take a while, so be patient on first run. You should be able to run asdf install from the project directly to install the required packages.

Configure Your Local Environment

Run:

# Will grab all Elixir and NPM dependencies and then setup the database
$ bin/setup

Set up local data and env vars for Google OAuth

You'll want to have certain environment variables and user data set up so you can log into the app locally with your thoughtbot email.

In .env, there are three values that say "get-from-staging" - CLIENT_ID, CLIENT_SECRET, and HUB_API_TOKEN. Replace these values with the ones from staging. Find them by running heroku config -r staging.

You'll also want to grab the STAGING_DB_ENV_VAR from staging. Run: heroku pg:pull STAGING_DB_ENV_VAR constable_api_development -r staging, where the value of STAGING_DB_ENV_VAR is what you got from the heroku config. This will copy the data over so you have example data to work with, including your already existing user account.

Starting the Phoenix Server

Once all the dependencies have been installed, you can start the Phoenix server with:

$ mix phx.server

Email Templates

You can edit the email contents from web/templates/email.

You can preview templates by going to localhost:4000/emails/#{template_name}. You can find a list of templates in the EmailPreviewController.

Viewing Sent Emails

You can view sent emails in development by going to localhost:4000/sent_emails

Testing

Run mix test

Static Analysis

Run mix dialyzer to run the analysis. The lookup table will be created by this process. If your dependencies or your elixir version change, delete .dialyzer.plt and run mix dialyzer.plt to rebuild it.

There are still a lot of warnings that are not fixable, but occasionally some real errors are found by dialyzer

Deployment

  1. If you have not run bin/setup yet, run it to add the correct git remotes.
  2. Run bin/deploy (staging|production)

Review Apps

Constable is setup with support for Heroku Review Apps.

Google enforces a white list of OAuth redirect URLs, so for review apps we redirect the OAuth flow through the Constable oauth redirector which then redirects back to the correct review app. This is configured with the OAUTH_REDIRECT_OVERRIDE environment variable.

License

Constable is Copyright (c) 2015-2016 Blake Williams, Paul Smith, and thoughtbot, inc. It is free software, and may be redistributed under the AGPL license detailed in the LICENSE file.

About thoughtbot

thoughtbot

Constable is maintained and funded by thoughtbot, inc. The names and logos for thoughtbot are trademarks of thoughtbot, inc.

We love open source software, Elixir, and Phoenix. Work with thoughtbot's Elixir development team to design, develop, and grow your product.

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].