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