
Learn to set up a cloud-based Ruby on Rails 6 development environment using Cloud9, install Ruby 2.7.2 and Rails 6.1.0, and create a new Rails app with PostgreSQL and Redis.
Learn how to push your Rails app to GitHub by creating a repository, configuring remotes, committing changes, and pushing to the main branch for version tracking.
Set global git user name and email, generate an ssh key, add it to the ssh agent, and push to GitHub via ssh to avoid password prompts.
Create a static pages feature in Rails by generating a StaticPages controller with landing page and privacy policy views, wiring routes and navigation, and testing links.
Push your Ruby on Rails startup MVP to production with Heroku, set up automatic deployments from GitHub, monitor logs and resources, and connect a custom domain while managing maintenance mode.
Learn to save and undo changes in a Rails startup MVP by using git status, reset hard, and force push to manage commits on master.
Increase your Cloud9 environment storage by creating a resize script, running the resize command to set 20 gb, then rebooting the instance to apply the new volume size.
Install bootstrap in a Rails 6 startup MVP app using yarn and webpacker, wire stylesheets and bootstrap into application.js and layout, then compile and preview styling changes.
install and explore bootstrap in a Rails app, using container and container-fluid layouts, and experiment with badges, buttons, and basic navigation elements to build a responsive UI.
Install and use font awesome icons to enrich the front end of the startup MVP app, importing the free package and adding icons to navigation and links.
Verify the app’s mobile responsiveness by testing screen width in the browser’s responsive design mode, and note how removing the MEDITECH tag affects the layout.
Learn to install and configure the devise gem for user authentication in a Rails 6 startup MVP, including generating a user model, routes, and login and signup flows.
Enhance navigation with a bootstrap fontawesome and devise-powered navbar, render a header partial in layouts, show the current user email, and manage notices with a messages partial.
Customize devise views with bootstrap in a Rails 6 app by generating the views, and shape login and sign-up forms into bootstrap cards with header, body, and footer.
Explore implementing Devise confirmable in Rails, configuring mail sender, and handling email confirmations and unconfirmed access, including password reset tokens and email verification flows.
Implement and display a users index page and individual user show pages in a Rails app, including a reusable user partial and links between pages.
Learn how to add devise trackable to a rails app and display user sign in count, last sign in, and IP addresses to enhance attendance tracking.
Create fake users for a Ruby on Rails 6 startup MVP attendance app by seeding the database with admin and student accounts, after migrating, and confirmed by devise.
Redirect users to their personal page after sign in by configuring the application controller to send them to the current user's page, with a profile link in the header.
Implement delete functionality for users in a rails 6 startup mvp: add a destroy action and route, and provide a delete link with confirmation in the user view.
Enable and configure Devise lockable in Rails to protect user accounts from brute force by setting maximum failed attempts and unlock options via email or time.
Learn to ban and unban user accounts by repurposing the device lockable flow in Rails: add a ban action, routes, and a helper for dynamic ban status in views.
Add Google social login using the omniauth-google-oauth2 gem, configure Google OAuth credentials, and auto-create and confirm users on sign-in.
Update gems with bundle update and address omniauth 2.0 compatibility by using the devise master branch; adjust the jam file to post and re-run update for production authentication.
Learn to add GitHub social login to Ruby on Rails 6 startup MVP by configuring omniauth-github, obtaining client id and client secret, and updating Devise and controllers for GitHub authentication.
Learn how to implement Twitter social login in Rails 6 startup MVP using omniauth-twitter, configure the Twitter developer portal, and manage API keys and user email authorization.
Enable Facebook login in the Ruby on Rails startup MVP by integrating omniauth-facebook. Build and configure a Facebook app, secure production credentials, add privacy policy, and deploy to Heroku.
Learn how to display and persist social login data by saving provider, uid, name, and avatar into the users table, and render the user’s profile image in the app.
Configure social login in production for a Ruby on Rails app, adding OAuth credentials and production redirects for Google, Facebook, Twitter, and GitHub.
Learn how to protect exposed api keys in Rails apps by using encrypted credentials with a master key and a credentials file, managing development and production secrets.
Resolve production credentials on Heroku by supplying the master key, migrating it into Heroku config vars with a Rails command, and verifying settings in the Heroku dashboard.
Add a roles field to the user model and implement a Rollerball concern to manage admin, teacher, and student roles, with edit and update actions and active roles display.
Show users signing up, confirming accounts, and automatically assigning a default role after creation via a callback in Rails.
Implement role based authorization in Ruby on Rails by restricting edit, update, ban, and destroy actions to admins, using a before_action and current_user admin checks, and conditionally display admin links.
Convert the user list into a bootstrap-styled, responsive table that displays id, email, name, avatar, confirmation status, ban status, and roles, with admin-only action links and polished buttons.
Integrate the toastr library to create disappearing flash messages in a Rails app by installing, importing in application.scss, and styling for a cleaner notification experience.
Add a footer that stays at the bottom by placing a footer section in the app layout's container and styling it via assets stylesheet, including a privacy policy link.
Create a Rails boolean label helper to color-code true and false values with badges. Apply it to user views to display green for true and red for false.
Style the Rails startup MVP's user views by wrapping index, edit, and show in cards and accordions with header and body, including user images. Gate the users link behind authentication.
Change the app background color using three methods: update assets/stylesheets/application.css, apply inline styles to layouts/application.html.erb, or use bootstrap background classes.
Implement devise invitable to invite users by email, including migrations, configuration, and invitation views. Send invitations, receive the email with an accept link, set a password, and sign in.
Explore Devise invitable documentation, configure invites, and manage invitation life cycle, including inviting by email, invitation validity, and tracking invited by and accepted status.
Add a resend confirmation feature for unconfirmed users using Devise confirmable, sending a new confirmation token when needed. Update the admin interface, users controller, routes, and views accordingly.
Implement resend invitation for unconfirmed users in Rails 6 startup MVP attendance app, using validations for created by invite and confirmed status, plus rescind invitation and conditional confirmation instructions.
This lecture demonstrates adding authorization for resend_confirmation_instructions and rescind_invitation actions, restricting these actions to admins, updating the user interface with actions links and buttons, and planning authorization work for invitations.
Implement authorization for sending and rescinding invitations by restricting actions to admins or inviters via a before_action, and control index view links with invited by checks and two-layer validation.
Learn to implement the invisible reCAPTCHA gem to prevent spammy signups in production, replacing Google reCAPTCHA, by wiring before_action in the device registrations controller and updating the forms and routes.
Configure production email delivery in a Rails app by wiring Amazon SES, creating API credentials, updating production settings, and validating password reset emails.
Install and configure the exception_notification gem to receive production error emails, wire middleware in Rails, set email recipients, and verify alerts by triggering a sample error.
Rename the application on Heroku and update config, initializers, views, and header to reflect the new name across development and production, and rename the GitHub repository.
Show admins how to enable editing a user's name via a Rails 6 form, fix unpermitted parameters, and prevent social login from overriding names, paving the way for user self-edit.
Learn to enforce strong params so only admins can edit user roles, while any user can edit their own name; adjust controller logic and views to reflect this authorization.
Enforce strong params authorization so only the user (owner) or an admin can edit a name, while admins can edit any user's roles, implemented via a before_action check.
Prevent admins from banning themselves by checking the current user and redirecting with an alert. The fix adds a guard to the ban flow, blocking self-bans but permitting other bans.
Build a school attendance app architecture by creating classrooms, badges, lessons from batch schedules, and enrollments, enabling teachers and students to manage attendance.
Generate a Rails 6 scaffold for classroom with a name, run the migration, and keep only the controller and model to enable create, edit, and destroy actions.
Learn to install and configure the gem simple form with bootstrap, regenerate and customize classroom forms, and improve button styling and validations in a Rails scaffolded interface.
Customize scaffold templates with bootstrap in Rails to style classrooms and other views, override default templates, and import polished templates for consistent, responsive interfaces.
Add basic validations to the classroom model by enforcing name presence and uniqueness, update navigation with a classrooms link, and ensure meaningful display of classroom names.
Define a services table with name, duration, and client price; apply numeric and unique validations; seed data; and integrate services into the app navigation.
Create a courses table that links users, classrooms, and services, enabling teachers to run multiple courses in different classrooms. Enforce a unique combination of user, classroom, and service with validations.
From a learning perspective, the course gives great insight into building the business logic layer of an application.
In this course you will build a complete group appointment scheduling and tracking application from start to finish.
Why build this app?
Remote schooling has become the new normal.
Educational institutions (schools, colleges, universities) need a way to track teacher schedules, lessons, and student attendances.
That's where you come in: In this practical code-along course you will learn to build an advanced, complete solution for managing an educational institution.
Chapters 01-09: General features (Authorization and Authentication):
When creating a Web application, you usually have to start with the two key elements:
Authentication - User log in, user account management.
Authorization - User roles, permissions and access to different parts of your app.
We will Code-Along and build a Web App MVP covering all aspects of Log-In, User Management, and Role-Management functionality.
Basic authorization via email (Devise)
Social log in via Google
Social log in via Facebook
Social log in via Twitter
Social log in via Github
Devise confirmable
Devise trackable
Devise lockable
Devise invitable - Inviting users to join the app via email
Banning users
Deleting users
Editing user profile
Managing user roles (admin, teacher, student) without any gems
Role-based access to different features (example: only admin can ban a user) without any gems
Blocking bot registrations
Sending transactional emails in production (Amazon SES)
By the end of Chapter 09 you will have created a boilerplate, based on which you can build any business application of your dream.
Chapters 10 - 20: School Lesson Calendar and Attendance Tracking features:
Enroll multiple students to one course
Create a lessons schedule for a course
Generate lessons according to the schedule
Generate attendances for enrolled students
Display lessons in a calendar
Update lesson status (planned / cancelled / confirmed)
Update attendance status for each student (planned / attended / not attended)
Advanced search and filtering for records in a calendar
Working with money: Calculate Teacher salary based on lessons taught and price of a lesson
Working with money: Calculate Student expences based on attendances and price of an attendance
Working with money: Calculate User balance
Create Monthly Reports based on lessons
By the end of the course you will have created your own school management web application MVP, that you will will be able to market any way you like!
We are not going to cover the fundamentals of what Ruby and Rails are: there are other, more basic courses for that.
Instead, we will dive straight into coding along and building our application step-by-step, feature-by-feature.
This course can be interesting for Ruby on Rails developers of all levels: for beginners and for veterans.
As a beginner, you will get the whole experience of thinking and building the core lifesystem of any modern Web Application.
As a veteran, you will get acquainted with some exquisite approaches for problem-solving, and features that you could have not encountered in the past.
As well all enrolled students will have access to the source code, support materials and discussion groups.
As well this course comes on Udemy with 30 days money back guarantee, so you have nothing to lose.
Looking forward to seeing you inside!