Skip to content

03.00 README ​

Overview ​

In this class I am treating everyone as a freshly hired junior engineer at a small startup with the task of selecting the technologies and defining what the company is going to build. So instead of just implementing canned assignments that are already designed you now get to apply all the knowledge that you have learned to construct an application from the ground up! You have been taught how to program and test (121, 221), you have been taught basic web technologies (208), and you have been taught data structures and architecture (321). Now it is time to take the training wheels off and apply what you have learned. My role in this class is to help guide you, answer questions, get you unstuck, and provide feedback along the way.

You have complete freedom in this class to explore something that interests you. The end goal of this class is for you to have a complete full-stack application of your own design that you can put on your resume to help you land a well-paying job when you graduate. Think of this class as an opportunity to take a deep dive into a particular technology so you can ace that interview when you graduate. If you have no idea where to even start I have listed some top frameworks in the 03.01 Tech Stack Survey assignment.

There are hundreds, if not thousands, of ways to construct a full-stack website. One of the biggest issues in web development is the sheer number of options that you have, making it difficult to select the "right one". Most of the popular large frameworks have extensive tooling to generate a new website and get you quickly started. You are encouraged to attack this class just like you would in industry. Don't reinvent the wheel. Leverage tools and libraries so you can develop a large real-world application.

Examples ​

The only hard requirement for this class is your tech stack must run on an AWS EC2 Virtual machine running Linux. At this point in time 99% of tech stacks are cross-platform, so it shouldn't be a problem. You are free to use Docker if you wish. Using Docker is not required. Below are several examples that I wrote to give you a good starting point. Read through the code before you start the next assignment. There are complex examples that use a ton of different technologies and there are simpler examples that minimize the use of libraries so you can just focus on the application. Remember sometimes the simplest code is the better code. The examples below are just to help get you started. They don't represent what I am looking for in your product.

In this class I am not grading your code. I am grading the process of creating an application. This is a 400-level course. If you made it all the way here and still don't know how to code, it is too late for me to rectify that. Once you have read the examples start working on the next assignment in this module.

Good luck! I am excited to see what everyone builds!


Released under the MIT License.