Skip to content

Instantly share code, notes, and snippets.

@raghubetina
Last active July 17, 2023 19:42
Show Gist options
  • Save raghubetina/7bc9e1f0b9d66bdc6ac7e90211570244 to your computer and use it in GitHub Desktop.
Save raghubetina/7bc9e1f0b9d66bdc6ac7e90211570244 to your computer and use it in GitHub Desktop.
Full-stack Application Development schedule

Full-stack Application Development schedule

Subject to change

Phases

There will be two phases:

  • In Phase I, students will be introduced to each topic as briefly as possible while still giving them enough knowledge to build functional full-stack applications.
  • In Phase II, students will go deeper on every topic to improve their idiom, learn best practices, and adopt professional workflows.

Both phases will end with time for students to practice what they've learned on capstone projects.

Tutorial projects

There will be a set of tutorial projects that will be continuously worked on throughout the course. As students learn new concepts, they will practice them by progressively enhancing each application. The tutorial projects include:

  • LinkInBio: a Linktree-like personal page service.
  • Must See Movies: a catalog of movies that users can browse and bookmark.
  • VeryBest: a dish-centered restaurant review service.
  • OfferUp: a Craigslist-like two-sided market.
  • Photogram: an Instagram-like social network.

And others. We will not explicitly mention all of these projects as "practice" for every topic below, but most topics will be practiced by applying them to some or all of the tutorial projects, as well as any additional practice explicitly mentioned below.

For example, here is an early version of the social network tutorial project, when students are starting to learn how to implement basic CRUD. Here is a later version when they are learning Ajax. (To explore the latter, you can sign in using username: alice@example.com and password: password. )

Non-linear

The topics mentioned below are not necessarily covered linearly. For example, GitHub, Gitpod, HTML & CSS are taught concurrently because they don't make sense without each other. Topics are also revisited continously to add more depth, just in time for more complicated projects.

Tentative schedule

Phase I (5 weeks)

  • Course overview
    • Categories of software
    • Software-as-a-Service
    • What does "full-stack" mean?
    • How to get startup project ideas
  • Anatomy of HTTP requests
    • URL structure
    • HTTP verbs
    • Response formats
    • Practice: Making requests with Postman
  • Domain modeling
    • Gathering requirements
    • User stories
    • Wireframing with Figma
  • Database design
    • 1-N, N-N relationships
    • Entity relationship diagrams
    • Practice: database designs for MSM, Photogram, Very Best
    • Recurring practice every week
  • Programming environment
    • The terminal
    • Basic UNIX commands
      • cURL
    • Cloud-based development with Gitpod
    • Local installation
  • HTML & CSS basics
    • Elements and hyperlinks
    • Commonly used properties
    • Layout modes
    • Practice: Link In Bio, Personal Website, Rock Paper Scissors mockup
  • Git basics
    • Commits
    • Branches
    • Merging
    • Pull requests
  • Hosting with Heroku
    • Deployment
    • Custom domains
    • Logging
    • Practice: deploy your Link In Bio, personal website
  • The Ruby language
    • Basic classes
    • Arrays
    • Conditionals
    • Loops
    • Hashes
    • Loading outside classes
    • Our own classes
    • Practice: reading/writing files, parsing CSV, scraping the web, interacting with APIs
  • Web apps with Sinatra
    • Routing & parameters
    • View templates
    • Static assets
    • Practice: Rock-Paper-Scissors, Fortune Teller
  • Bootstrap CSS
    • Commonly used components
    • Grid system
    • JavaScript plugins
    • Customizing
    • Practice: re-write Link In Bio with Bootstrap
  • Databases with ActiveRecord
    • Migrations
    • Querying
    • Validations
    • Associations
    • Callbacks
    • Practice: Must See Movies, Photogram
  • Web apps with Rails
    • Routing & parameters
    • View templates
    • Static assets
    • Models
    • Autoloading
    • Forms
  • Authentication
    • Cookies
    • Encrypting passwords with bcrypt
    • Filtering requests with before_action
  • Phase I capstone projects

Phase II (7 weeks)

  • Intermediate Ruby
  • Automated testing
  • Rails helper methods
  • Intermediate Git
  • Scaffolds
  • Code review
  • Authentication with Devise
  • Authorization with Pundit
  • Continuous delivery
  • Intro to JavaScript
  • API development
  • Ajax: HTML over the wire
  • Ajax: JSON over the wire
  • Introduction to React
  • Introduction to React Native
  • Phase II capstone projects
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment