The Odin Project: Learn Web Development for Free
v0.2.0
This site provides the main user experience for The Odin Project, including the home page and all user functions. It is meant to be a shell around The Curriculum and to include the tools that help students learn more effectively along their learning journeys.
The website has been open-sourced to provide both a learning resource for students who want to see how the tools they're using are built and to give students the opportunity to stretch their wings and contribute to a real open-sourced project... while building the tools they themselves will be using.
For minor fixes, either submit a github issue or a pull request. Please coordinate with the project maintainers if you're interested in working on some of the larger features in order to avoid traffic jams.
Check out the Contributing Page if you'd like to learn more about how to help out
Contact us directly at project@theodinproject.com
This project is emphatically beginner-friendly so, if you're interested in potentially contributing, take a look at the Contributing Page on the website for more information. See the Getting Involved document for details of how we develop the website.
This site runs on Ruby 2.0.0-p353 and Rails 4.0.0 (upgraded from Ruby 1.9.3 and Rails 3.2.12 in February 2014)
We STRONGLY recommend windows users and newbies having trouble setting up their environments just use nitrous.io. Nitrous is a cloud-based development environment. They basically just give you a fully stocked machine that's almost ready to go out of the box.
We use Nitrous almost exclusively during our group coding sessions so, if you'd like to get involved that way, you'll need to set it up eventually.
- Follow along with this gist to do the setup.
- Don't forget to populate your test database with
$ rake db:test:prepare
- Start by forking this repository by clicking the Fork button at the top right of this Github repo and then download your copy of the repo to your local machine by doing a
$ git clone git@github.com:YOUR_USERNAME/theodinproject.git
from the command line (the $ stands for your command prompt) - Hopefully you've got RVM set up on your machine (if not, check out the Installations Project. You'll need to make sure you have Ruby 2.0.0p-353 installed (see installed rubies with
$ rvm list
). If you don't have it, get it using$ rvm get stable
thenrvm install 2.0.0-p353
. - You'll need to create a project-specific gemset to keep track of all the gems we use in one place. The repo has a (hidden) file called
.ruby-gemset
which specifies the gemset for you every time you enter the project's directory. It should be calledtheodinproject
to match up. You can create it by running$ rvm gemset create theodinproject
. For help with RVM, check out this blog post cd
into the project directory using$ cd theodinproject
- Run a
$ bundle install
to install all the gems used by the project. - Note: Both local and production databases are Postgres, so if you're used to just using Rails' default SQLite database you'll need to get Postgres fired up on your local machine. You can probably get away with just typing
$ rake db:create
but may need to download a client for it and create atheodinproject
database that the application can connect to. The major difference is that Postgres operates almost like a server. Ryan Bates has a RailsCast episode about migrating to Postgres that may be helpful if you're a newbie. If you're deployed on Heroku (which we are), you need to use PG anyway. - Once you've got postgres installed and have created the empty database, run a
$ rake db:migrate
to run all the migrations that will set up the schema properly. Then run$ rake db:test:prepare
to set up the test database so you can actually run specs.