/bobfolio

This is an example programmer's portfolio - clone it and modify to make your own! Gratuitous plug:

Primary LanguageJavaScript

Bobfolio is a simple Ruby web app for your computer programming
portfolio.  You can deploy it to Heroku and have a free portfolio up
and running within about 15 minutes if installing Ruby goes well.

You should be able to use Bobfolio with minimal Ruby knowledge, or
just a bit of knowledge about any similar scripting language like
JavaScript, Perl or Python.  You're not writing code, just putting
together some data.

INSTALLING BOBFOLIO:

First, install git.  On Ubuntu that's something like "apt-get install
git-core".  On Mac, you've probably already got it, or you can install
it through MacPorts, Fink, Homebrew or another package manager.

Next, "git clone git://github.com/noahgibbs/bobfolio.git ".  That will
copy bobfolio into a directory for you to edit.

You may need to install Ruby.  If you install Ruby 1.8.X instead of
1.9.X, you may also need to install RubyGems.  (How do you install
Ruby?  Google something like "install ruby windows")

Afterward, you can use those to install other requirements:

  gem install bundler
  bundle install

RUNNING BOBFOLIO ON MAC OS X OR LINUX

From the command line, type "bundle exec rerun ruby bobfolio.rb".
That will load a web server, and reload the web server every time you
change the code (convenient!).

Next, point a web browser at http://localhost:4567 to see what your
server shows.

RUNNING BOBFOLIO ON WINDOWS

On Windows, type "bundle exec ruby bobfolio.rb".  That will load a web
server.  You'll have to restart it when you change your code.

Next, point a web browser at http://localhost:4567 to see what your
server shows.

EDITING BOBFOLIO

Edit bobfolio.rb to include your correct name and the right link text
in those variables up at the top.  Hit reload in your browser, and you
should see the right name in the title, and the right text up top.

Finally, look later in bobfolio.rb.  See ENTRIES?  Those get
automatically turned into the big blocks in your portfolio.
Cut-and-paste to add more entries to both the personal and
professional sections.

If you have any problems with the server not loading, check your
syntax.  There's a brief summary of Ruby strings in the file, and you
can find any unusual information pretty quickly using Google.  ENTRIES
is just an array of hash tables, very similar to how it's written in
most other scripting languages (JavaScript, Perl, Python, etc).

DEPLOYING BOBFOLIO:

Sign up for a free account with Heroku.com.  Next, create a Heroku
app:

  heroku create myappname

Heroku will ask you for your name and password the first time you run
a command, and will remember your SSH keys so you can upload code to
this app again later.  It may take a try or three before your app name
isn't taken.  You can also just "heroku create" to create a new
randomized app name.  Don't do that for your portfolio, because a
randomized app name will be hard to remember and sound kind of dumb.

Now deploy to heroku:

  git push heroku master

That's it!  Go to http://myappname.heroku.com or whatever your
actual Heroku app name is.  You should see your new portfolio,
accessible to all on the big ol' Internet.  Welcome to the future.

WHERE DO FILES GO?

You can link to sites, images and whatnot with <a href="">, <img> and
so on, just like you're used to.  Or you can put your own files under
the public directory in Bobfolio and then link to them there.  For
instance, an image you put into public/images/cat.jpg could be linked
as /images/cat.jpg from HTML in your ENTRIES.

DO I HAVE TO USE HEROKU?

Not really, no.  That's just far and away the easiest way to get your
portfolio up and running.  You could run your own server or use
different hosting and it would work just fine.  You can't just run
plain Apache because you need to execute Ruby code, but you could use
Apache and Passenger if you wanted, or any other Ruby-capable app
server (Mongrel, Thin, Lighttp, Unicorn, WEBrick, etc).

Similarly, the Sinatra library is very easy to use, and you could make
a *much* more complicated portfolio than this if you wanted.  This is
just a very simple one to get you started.

TROUBLESHOOTING

* Did you have trouble with Heroku accepting your ssh key?  Run
"heroku keys:add", then try it again.

* Why doesn't "git push" go to Heroku?  You didn't clone from Heroku
originally.  But "git push heroku master" goes to Heroku, so use that.

* Having trouble with "bundle install"?  Make sure to run the server
using "bundle exec".  If worst comes to worst you can actually debug
by just pushing to heroku repreatedly, though it's easier if you can
see the error messages locally.

* Getting error pages from heroku?  Try running "heroku logs" to get
recent error logs and see if you can find the problem.