Skip to content

Instantly share code, notes, and snippets.

@heratyian
Forked from raghubetina/fsad-schedule.md
Last active August 17, 2023 17:42
Show Gist options
  • Save heratyian/0bc194b603d2349f0878ee5ac18cc402 to your computer and use it in GitHub Desktop.
Save heratyian/0bc194b603d2349f0878ee5ac18cc402 to your computer and use it in GitHub Desktop.
Full-stack Application Development schedule

Full-stack Application Development schedule

Subject to change

Phases

There are two phases:

  1. Introduction to Software Development Foundations (INTRO) - 4 weeks
  2. Software Development Foundations (SDF) - 12 weeks

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

Tutorial Projects

Throughout the course, students continuously work on a set of tutorial projects to practice and enhance their skills. These projects include:

  • LinkInBio: A Linktree-like personal page service.
  • Must See Movies: A catalog of movies that users can browse and bookmark.
  • Yap: A Yelp-like restaurant review service.
  • VeryBest: A dish-centered restaurant review service.
  • OfferRight: An OfferUp-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 Approach

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

Schedule

Intro (4 weeks)

  • Course overview:
    • Categories of software
    • Software-as-a-Service
  • Git basics:
    • Commits
    • Push
  • HTML & CSS basics:
    • Elements and hyperlinks
    • Commonly used properties
    • Layout modes
    • Practice: Link In Bio, Personal Website, Rock Paper Scissors mockup
  • The Ruby language:
    • Basic classes
    • Arrays
    • Conditionals
    • Loops
    • Hashes
    • Loading outside classes
    • Our own classes
    • Practice: Ruby Gym, Exercism
  • Anatomy of HTTP requests:
    • URL structure
    • HTTP verbs
    • Response formats
    • Practice: Making requests with hoppscotch.io, Ruby, and Dark Sky API
  • Web apps with Sinatra:
    • Dynamic paths, query strings, forms
    • Routing & parameters
    • View templates
    • Static assets
    • Practice: Rock-Paper-Scissors, Fortune Teller, Omnicalc, Exchange Rates
  • Artificial Intelligence:
    • Prompting
    • OpenAI API
  • Hosting with Fly.io, Render, Github Pages:
    • Deployment
    • Logging
    • Practice: Deploy Hello World, Link In Bio, Capstone Project
  • Authentication:
    • Cookies
  • Capstone Project

Software Development Foundations (12 weeks)

  • Course overview:
    • Categories of software
    • Software-as-a-Service
    • What does "full-stack" mean?
    • How to generate project ideas
  • Anatomy of HTTP requests:
    • URL structure
    • HTTP verbs
    • Response formats
    • Practice: Making requests with hoppscotch.io
  • Working together:
    • Gathering requirements
    • User stories and pointing
    • GitHub Issues
    • Estimating and prioritizing work
  • Interactive Computing:
    • IRB
    • Rails Console
  • Database design and domain modeling:
    • 1-N, N-N relationships
    • Entity relationship diagrams
    • Practice: Database designs for MSM, Photogram, Very Best
    • Weekly recurring practice: Producing a complete list of tables and columns
  • Programming environment:
    • The terminal
    • Basic UNIX commands (including cURL)
    • Cloud-based development with GitHub Codespaces
    • Local installation
  • HTML & CSS basics:
    • Elements and hyperlinks
    • Commonly used properties
    • Layout modes
    • Practice: Link In Bio, Personal Website, Rock Paper Scissors mockup
  • Version Control with Git and GitHub:
    • Commits
    • Branches
    • Merging
    • Pull requests
    • Code review
    • Continuous delivery
  • Hosting with Fly.io and Render:
    • Deployment
    • Custom domains
    • Logging
    • Practice: Deploy your capstone project
  • 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
  • Bootstrap CSS:
    • Commonly used components
    • Grid system
    • JavaScript plugins
    • Customization
    • Practice: Rewrite 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
    • Automated testing
    • Helper methods
    • Scaffolds
    • Authentication:
      • Cookies
      • Encrypting passwords with bcrypt
      • Filtering requests with before_action
  • Input and Output:
    • JSON
    • Markdown
    • Parsing HTML with Nokogiri
    • CSV
  • Data Visualization:
    • chartkick
  • Artificial Intelligence:
    • Prompting
    • OpenAI API
  • Database:
    • PostgreSQL
    • SQLite3
  • Frontend:
    • Introduction to JavaScript
    • Ajax: HTML over the wire
    • Ajax: JSON over the wire
  • Authentication / Authorization:
    • User authentication with Devise
    • Building policies with Pundit
  • API development
  • Rails Enrichment
    • Email
    • Charts, graphs, and visualizations
    • Images
    • Searching and fitering
    • Maps
    • Web Scraping
    • N+1s and caching
    • Quality Assurance and testing
    • Continuous integration and deployment (CI/CD)
  • Capstone Project

Please note that this curriculum is subject to change as we continuously update and refine it based on industry trends and feedback from students and partners.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment