Skip to content

turingschool-projects/briefcase

Repository files navigation

Briefcase

Briefcase is an index of Turing alumni for employers to see. Students can create portfolios which detail the students' background and preferences. They are also able to link projects they worked on throughout their time at Turing.

Users login through Census, a third party application. All pictures and files are hosted on AWS S3.

Getting Started

  1. Clone the repository:
git clone git@github.com:turingschool-projects/briefcase.git
  1. Bundle application
  bundle install
  1. Install Figaro
  bundle exec figaro install
  1. Configure the following keys in the application.yml file
  • census_id
  • cencus_secret
  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY
  • S3_BUCKET_NAME
  • AWS_REGION

Please find zip file with keys in the project-briefcase slack channel

  1. Install React.js
rails g react:install
  1. Install phantom.js
  npm install -g phantomjs
  1. ImageMagick
  brew install imagemagick

Running the tests

The test suite is running on Poltergeist and RSpec in order test the rails backend with the client side JavaScript. Poltergeist is a driver for Capybara.

To run all tests, run in the terminal:

rspec

Accessing in LocalHost

In order to access Briefcase in localhost here are the steps that you need to take:

  1. Ensure that gem 'omniauth-census', git: "https://github.com/NZenitram/census_staging_oauth" is the version of the omniauth with census gem that you are using.

  2. Go to Nick Martinez's census repo (click here), scroll down to "Important Note", and follow the set up directions listed.

  3. An important note about thin start -p 3001 --ssl --ssl-key-file ~/.ssh/server.key --ssl-cert-file ~/.ssh/server.crt: You will need to enter localhost:3001 in the Safari Web Browser (it does not work for FireFox or Chrome).

Functionality

Authorization

A user logs in with Census which will give them the ability to create a portfolio. Census provides basic user information including first name, last name, and email. Users can not sign in with out a Census login.

Alumni

A registered user or guest can view all Turing alumni who have created a portfolio on the root page. Each portfolio has the alumni's picture, name, title and bio. A user can narrow their results by searching for a user's information. They can favorite portfolios by clicking on the portfolio heart. Portfolios can be sorted alphabetically by clicking on the sort icon.

Portfolios

Registered users can create a portfolio by visiting the dashboard page and clicking Create Portfolio. The portfolio requires the following fields

  • Full Name
  • Title
  • Bio
  • Email
  • Github URL
  • LinkedIn URL

Users can type markdown in the bio, looking for and best at fields. The fields accept fenced code blocks or any markdown format.

The markdown will be rendered on the alumni show page. The rendered markdown displays on the dashboard, alumni show page and the alumni index for each portfolio. After a user creates a portfolio, their portfolio will be visible on the alumni index page, where a user can view their individual profile.

Users can view, edit and delete their portfolio by visiting the dashboard.

Projects

Registered users can create up to three projects for their portfolio. Projects require the following fields:

  • Name
  • Github URL
  • Description

Users can upload a picture per project. After the user creates a project, the projects will be visible in the user's portfolio public show page.

Users can also view, edit and delete their projects by visiting the dashboard.

Data Flow

Data flows from the controllers to Rails' built in ERB views.

The views then render React components and pass props.

The components then handle the rendering of data, and any requests are sent back to the server via Axios.

Deployment

Briefcase is currently deployed to two environments. Each environment is linked to different Census applications.

The development and master code branches are linked to Travis CI for continuous integration.

Technology

The application is currently using the following technlogies:

  • Server: Ruby On Rails 5.0.1
  • Client-side: React
  • Database: PostgreSQL
  • Libraries: JQuery, RedCarpet, Axios, Paperclip
  • Hosting: AWS S3

Authors

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published