Course Intro
Mike Calvo
mike@citronellasoftware.com
Course Instructors
- Adam Keyser
- Marc Kapke
- Mike Calvo
About Me
- 1999 MSSE Graduate
– Instructor since 2000
- Engineering Director @ Target
Course Objectives
- Provide hands-on experience creating a functioning web application
- Provide an understanding of concepts required to implement a full-stack web application
– Server
– Data
– Client
– Deployment
- Learn implementation-specific details with Groovy, Grails, and AngularJS
- Divide time equally between server and client topics
- Inspire critical thought and debate
Course Non-objectives
- Detailed coverage of dev-ops
- Detailed coverage of cloud hosting options
- Comprehensive analysis of competing web technologies
Technologies
- Groovy: dynamic language based on the JVM
- SpringBoot: Java-based framework for simplified web deployments
- JavaScript: the language of the web
- AngularJS: popular single page application framework by Google
- Twitter Bootstrap: CSS and JavaScript library for responsive web UI
Why SpringBoot?
- Spring is popular Java library
- Integrates with many popular frameworks
- Simple deployments
- Testibility
Why Groovy?
- Dynamic languages are dominating the web (JavaScript, Ruby)
- Java is verbose and clumsy
- Great for parsing JSON
Why AngularJS?
- JavaScript development used to suck
- People realized it’s not going anywhere
- Great frameworks and patterns emerged
- Single-page apps are what people expect
- Latest in an evolution of single-page app frameworks
Other Server Options
- Node
- Rails
- Grails
- PHP
- .NET
Other Client Options
- ReactJS
- Ember
- VueJS
- Meteor
- Backbone
Grading
- 4 programming assignments: 25% each
- Evenly distributed throughout the course
- Must turn in every assignment to pass
- Options: solo or pair
Project Requirements
- Give me access to source code repository (GitHub, BitBucket, etc.)
- Project must build
- All requirements must be verified with passing tests
- Must be submitted to me by midnight of the due date
- Can be turned in one week late (minus letter grade)
Recommendations
- IntelliJ IDEA
– Get an academic license
- Get familiar with Git
- Pick a partner today
Getting Help
- Your partner
- http://stackoverflow.com
- Your question has likely been answered here
- Email/iMessage/Google Chat: mjcalvo@gmail.com
- Something Urgent: 612-760-0430
Questions?