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.
- Clone the repository:
git clone git@github.com:turingschool-projects/briefcase.git
- Bundle application
bundle install
- Install Figaro
bundle exec figaro install
- 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
- Install React.js
rails g react:install
- Install phantom.js
npm install -g phantomjs
- ImageMagick
brew install imagemagick
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
In order to access Briefcase in localhost here are the steps that you need to take:
-
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. -
Go to Nick Martinez's census repo (click here), scroll down to "Important Note", and follow the set up directions listed.
-
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 enterlocalhost:3001
in the Safari Web Browser (it does not work for FireFox or Chrome).
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.
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.
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
- 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.
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 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.
Briefcase is currently deployed to two environments. Each environment is linked to different Census applications.
- Staging: https://turing-briefcase-staging.herokuapp.com
- Production: https://turing-briefcase-production.herokuapp.com
The development and master code branches are linked to Travis CI for continuous integration.
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