Module 4 Full Stack Design and Deployment: 170 hours

This module will solidify the core concepts the student has learned up to this point through developing more complex, distributed applications in a team setting. Students will develop an application touching every layer in the stack from user interface, to data model and business logic, to database and hosting. Planning, data modeling, and wireframing will be covered. By the end of this module, students will have an understanding of:

  • Full stack development
  • Distributed Ruby
  • Performance testing

Books: Extensive online material will be leveraged throughout this module such as online tutorials and YouTube videos and may shift as new resources become available. However, seven physical books will be leveraged:

  • HTML & CSS by Jon Duckett
  • JavaScript & JQuery by Jon Duckett
  • Beginning Rails 4 (Expert’s Voice in Web Development) By Adam Gamble
  • Practical Object-Oriented Design in Ruby: An Agile Primer by Sandy Metz
  • The Rails 4 Way (3rd Edition) by Obie Fernandez and Kevin Faustino
  • Eloquent Ruby by Russ Olsen
  • Distributed Programming with Ruby by Mark Bates

(Module 4 is made up of 20 class sessions and 37 lab sessions)

C1: Introduction to Module 4 Group project

  • Groups assigned
  • Proposal guidelines given

L1 & 2: Write proposal and plan for Module 4 group project

C2: Full Stack Development
  • Introduction to Full Stack development
  • Understanding the required skill set for top to bottom web app creation of deployment

L3 & 4: Full Stack Development assignment – project proposal

C3: Full Stack Development
  • LAMP: Linux, Apache, Mysql, Perl / Python
  • Proposed projects for Module 4

L5 & 6: Full Stack Development assignment using LAMP method

C4: Full Stack Development
  • Front-end developer
  • Web Server Admin

L7 & 8: Full Stack Development using front-end developer

C5: Full Stack Development
  • Back-end engineer
  • Database engineer

L9 & 10: Full Stack Development with databases

C6: Full Stack Development
  • MEAN stack development

L11 & 12: Full Stack Development assignment using MEAN

C7: Full Stack Development
  • Working with a team on Full Stack Development
  • Companies using Full Stack Development in a successful way

L13 & 14: work on Module 4 project

C8: Working with a team on an application, utilizing Full Stack Development

L15 & 16: work on Module 4 project

C9: Distributed Ruby
  • Counter Object
  • The Server
  • The Client

L17 & 18: Distributed Ruby assignment dealing with Counter objects and servers

C10: Distributed Ruby
  • Using Ruby in a distributed manner
  • Example of usage
  • Rinda, helping Ruby clients find their servers

L19 & 20: Distributed Ruby assignment dealing with clients and servers

C11: Distributed Ruby
  • RingyDingy libraries
  • Starfish, implementing MapReduce

L21 & 22: Distributed Ruby assignment using libraries

C12: Distributed Ruby
  • Distribunaut libraries
  • Servers in the clouds

L23 & 24: Distributed Ruby assignment with cloud servers

C13: Distributed Ruby
  • Starling messaging
  • AMQP / RabbitMQ

L25 & 26: Distributed Ruby assignment using RabbitMQ

C14: Distributed Ruby
  • BackgroundDRb
  • Rails plug ins
  • Delayed Job

L27 & 28: Distributed Ruby assignment with plug ins

C15: Distributed Ruby
  • Troubleshooting and Shortcuts with Distributed Ruby

L29 & 30: Distributed Ruby troubleshooting and shortcuts assignment

C16: Performance Testing
  • Performance testing with HTML, CSS and JavaScript
  • Creating programs and code for troubleshooting

L31 & 32: work on Module 4 project

C17: Performance Testing
  • Problem solving with a team
  • Ruby on Rails troubleshooting

L33 & 34: work on Module 4 project

C18: Check in with students on Module 4 project
  • Informal critique

L35 & 36: work on Module 4 project

C19: Final Presentations part 1

L37: work on Module 4 project

C20: Final Presentations part 2