
Develop a Ruby on Rails online marketplace with user accounts, listings, a public feed, and a seller dashboard, plus checkout with Stripe and order history.
If you're using a Mac computer, we'll install all the tools you need to start coding: Xcode, iTerm, Homebrew, Git, RVM, Ruby, Rails, and Sublime Text 2. It's a little tedious, but you'll only need to do it once (per computer).
If you're using a Windows or other non-Mac computer, we'll install all the tools you need to start coding: Ruby, Rails, Git, and Sublime Text 2. It's a little tedious, but you'll only need to do it once (per computer).
Generate a Rails controller for pages with about and contact, then launch the Rails server and view them at localhost3000/pages/about, and /pages/contact, editing content in Sublime Text.
Add navigation links between the about and contact pages in a Rails app, and move common code into the application layout with yield so it applies to all pages.
Learn how to install the bootstrap-sass gem in a Rails app, run bundle install, restart the server, and set up bootstrap imports via custom.css.scss and application.js.
Implement a Bootstrap navigation bar at the top, simplify the code by removing dropdowns and search, and wire links to about, contact, and home via the application layout.
Learn to style Rails forms with Bootstrap by applying form-control and form-group, updating buttons and links, and wrapping content in a container for a cohesive listing interface.
Install paperclip and ImageMagick to enable image uploads for listings in Rails; add the gem, bundle install, restart the server, and install ImageMagick on Mac or Windows.
Set up paperclip in a Rails app to attach and display listing images by adding migrations, updating the listing model and controller, and modifying views to upload and show images.
Format listings with Bootstrap's grid system to create a responsive 4-per-row layout using column md 3. Build a two-column show page with thumbnails, listing name, and price formatted as currency.
Learn to clean up page design using css and bootstrap, customize body and navbar styles with selectors, and apply nth-child layouts to arrange product listings.
Learn to save and share Rails projects by using Git and GitHub, creating repositories, and managing SSH keys to authenticate and upload code.
Set up a GitHub repository, link it to your Rails app, and practice saving versions with git status, git add, git commit, and git push for continuous code versioning.
Protect sensitive account data in a Rails app by using the Figaro gem to store secrets in config/application.yml and ignore them with gitignore, then deploy securely to Heroku.
Tailor Dropbox usage by adding environment-specific Paperclip settings for development and production. Ensure local host uses local files while Heroku pulls images from Dropbox, and ignore /public/system to avoid uploads.
Install devise to enable user authentication in your Rails app, configure urls, flash messages, and migrations, and test sign up, sign in, and profile edits.
Replace html links with Rails link_to and rake routes, and use user_signed_in? to conditionally show sign in, sign up, or sign out and edit profile links.
Learn to implement validations in Rails, enforcing presence for user names and listing attributes, apply numericality constraints for prices, customize Devise messages, and style errors with Bootstrap alerts.
Enforce user permissions with devise by authenticating users, using before_action to restrict sensitive actions to owners, and conditionally displaying links and URL access.
Link orders to listings by updating the controller, routes, and forms to populate listing_id, buyer_id, and seller_id, with authentication, a buy now button, and deployment via git and heroku.
Create two order history pages in Ruby on Rails by adding routes and controller actions for sales and purchases, and building views to display orders with images, prices, and dates.
Add navigation links for sales and purchase histories in the Rails app, implement Bootstrap dropdown menus in the nav bar, and restrict order history actions to new and create.
Install and configure Stripe in the Rails app, including the Stripe gem, Figaro for test and live keys, and Stripe.js with a meta stripe-key in the layout.
Update the order form to collect credit card number, CVC, and expiration date using Stripe and Rails, with Bootstrap grid layout to display fields side by side.
Why Take this Class?
This course is the one I wish I had when I first taught myself to code.
I spent a year wading through coding exercises, programming books, and online tutorials. Similar to traditional education, I thought I had to learn everything from the ground up—first master the basics of HTML, then pick a programming language, then learn to build simple functionalities, then develop more advanced features.
But really, I just wanted to know how to build a website that does “___________” (fill in the blank with your own million dollar idea). When I finally finished building my first website, I realized I had been learning it all wrong for my purpose.
So if your goal is to master a programming language and become the ultimate software engineer, this may not be the course for you.
If, however, you’re looking for an effective way to rapidly implement your ideas on the web, you’re in the right place. Read on.
What You’ll be Learning
This course will take you through building an online marketplace similar to Etsy. You will learn to develop functionalities common to many websites including:
Along the way, we'll learn to use the latest versions of popular technologies. We’ll be working with Ruby on Rails, as well as front-end tools like Twitter Bootstrap and CSS. We’ll touch upon databases with SQLite; APIs with Stripe; and even hosting platforms such as GitHub, Heroku, and Dropbox. The skills you’ll have learned will be valuable for building any idea.
About BaseRails
BaseRails is a video learning platform that teaches Ruby on Rails and other technologies through building real world projects. Our collection of project-based courses walk you through coding robust applications like Etsy and Yelp while covering the most relevant programming topics, APIs, and tools used by developers.
Whether you're learning to code to become a web developer, or just looking to prototype your MVP, we believe working on projects is the most effective way to learn. Instead of being taught theory, you’ll learn by building working applications. You understand the big picture concepts before filling in the details. You learn to build apps the way developers do — one feature at a time.
Most people feel demotivated when they take traditional programming classes, but with BaseRails, you’ll make rapid progress on your projects so you always stay engaged. Along the way, you learn in-demand tech skills through practice and solving problems with available resources, not through brute memorization.
With a growing community of students who love our practical approach, we aim to become the leader of online, project-based learning for every subject.
Enroll on baserails.com for a free account.