codeunion / linkedout-example

Example code for codeunion/linkedout: a one-page résumé management system.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LinkedOut

A one-person LinkedIn. That being said, you will be able to build more interesting, multi-user features after you've built an MVP.

Getting Started

You'll need SQLite3 to complete this project. If you haven't installed it already, read our guide for installing SQLite3.

Once you have SQLite3 working, you can set up your development environment with the following steps:

  1. Fork, clone and run this repository
  • Install the dependent gems: bundle install --without production
  • Create a .env file from the default cp .env.example .env
  • Seed the database with bundle exec rake db:seed
  • Run the server and restart when files change bundle exec rerun -c rackup

Files In This Repository

├── .env.example # a sample .env file for setting environment variables
├── .gitignore # list of files to be ignored by git
├── CODE_OF_CONDUCT.md # standards of relating between contributors
├── CONTRIBUTING.md # how to contribute
├── Gemfile # list of gems that this project uses
├── Gemfile.lock # a "locked" version of the Gemfile, which includes version numbers for all the gems
├── LICENSE.md # license for project material
├── README.md # you are here. ;D
├── Rakefile # a place to store one-off commands (like seeding the database)
├── config # put configuration scripts in this folder
│   └── dotenv.rb # like this one! for the dotenv gem
├── config.ru # this tells our web server how to run
├── linkedout.rb # the most important file! this is the heart of our Sinatra web app, where we define how to respond to requests from across the web
├── models.rb # where we define the data models for the app, using an ORM like DataMapper
├── public # a folder to hold "static assets" like CSS files, images, and JavaScript files
│   ├── css # folder to hold CSS files
│   │   ├── main.css # our custom CSS
│   │   └── normalize.css # a commonly used CSS library to aid in cross-browser compatibility
│   └── js # folder to hold JavaScript script files
│       └── jobs.js # script to manage behavior relating to job resources
│       └── skills.js # script to manage behavior relating to skills resources
└── views # a folder to hold the HTML templates for our pages
    ├── layout.erb # this is the main template for our site
    ├── partials # a folder containing a bunch of partials (not listed, because there are a bunch of them)
    └── resumes # a sub-folder, to hold specific templates related to résumés
        └── show.erb # the template for the résumé show page
    └── users # a sub-folder, to hold specific templates related to users
        └── edit.erb # the template for the user edit page

Releases

Note: there are other, smaller releases within this repository. The releases listed here correspond to significant changes to the application's features. Each of the releases here is represented by a corresponding pull request.

v[0.4.0] Users can edit content of résumé

View pull request. Download release.

  • User can view a résumé show page
  • Résumé show page displays user profile info, skills, and jobs
  • User can edit user profile
  • User can edit jobs
  • User can edit skills

v[0.6.0] Improvements to styles and markup

View pull request. Download release.

  • Site looks not-so-terrible
  • HTML is modularized with sections and partials

v[0.8.0] User can add skills and jobs

View pull request. Download release.

  • User can add skills directly from the résumé show page
  • User can add jobs directly from the résumé show page

v[1.0.0] Skills and jobs created asynchronously

View pull request. Download release.

  • User may add skills directly on their résumé show page
  • Adding skills does not require a page refresh
  • Added skills immediately show on the page in the appropriate spot
  • User may add jobs directly to their résumé show page, including the job title, description, and company name
  • Adding jobs does not require a page refresh
  • Added jobs immediately show on the page in the appropriate spot

This is the first release with JavaScript and jQuery included. As a reference, here are some of the resources used to accomplish the features in this release:

v[1.2.0] Asynchronously edit and delete jobs

View pull request. Download release.

  • User can edit jobs on the résumé show page
  • User can delete jobs on the résumé show page
  • Editing jobs occurs asynchronously
  • Deleting jobs occurs asynchronously
  • Edited jobs are updated on the page without refresh
  • Deleted jobs are removed from the page without refresh

v[1.3.0] Asynchronously delete skills

View pull request. Download release.

  • User can delete skills on the résumé show page
  • Deleting skills occurs asynchronously
  • Deleted skills are removed from the page without refresh

This release also makes improvements to the underlying architecture of the application, including the following changes:

  • Use RESTful routing conventions
  • Logging in skills.js
  • Format of HTML and JavaScript more consistent

In addition, the /resumes/edit page has been changed to /users/edit and now contains only a form to edit the user profile. This change removes redundancy in editing other resources.

v[1.5.0] Display education information

  • Résumé show page displays a users education history
  • User can have many schools
  • Schools belong to a user
  • Schools have a name, graduation year, and subjects studied

v[1.8.0] Full asynchronous CRUD for schools

  • User can add schools on the résumé show page
  • User can edit schools on the résumé show page
  • User can delete schools on the résumé show page
  • Creating, editing, and deleting schools occurs asynchronously
  • Added schools show on the page in the appropriate spot without refresh
  • Edited schools are updated on the page without refresh
  • Deleted schools are removed from the page without refresh

v[1.9.0] Improve the UI

v[2.0.0] Filter by skill

  • User can search for other users by a specific skill
  • Clicking on a skill links to a page listing all users with that skill at a URL like /skills/web-development

About

Example code for codeunion/linkedout: a one-page résumé management system.

License:MIT License


Languages

Language:JavaScript 34.9%Language:Ruby 34.0%Language:HTML 23.1%Language:CSS 8.1%