When multiple entities collaborate on the same Git project, conflicts may arise, which necessitate manual intervention to determine how to merge the different changes. Otherwise, merging and rebasing are both options for bringing together nonconflicting changes. See here.
Amazon EC2 provides a convenient way to set up a server that anyone can connect to. And by allocating an elastic IP address there can be a stable address at which the server can be reached. My server has been set up at 3.230.90.103. See here.
Amazon Route 53 provides a convenient way to purchase domain names and associate them with IP addresses. My site is now reachable at https://diophantinegame.com. See here.
Caddy provides a nice service that handles web certificates and direction of traffic to the site accessing either static or dynamic content. See here.
HyperText Markup Language elements allow one to structure a document in a way that makes sense both to humans and to machines. See here.
Cascading Style Sheets provide a language to style the appearance of a structured website by selecting certain elements or classes of elements and defining how they will be displayed or even animated. See here.
JavaScript is the programming language used in browsers to make websites interacitve, but its use has now expanded and it is also popular for backend development. See here.
Web services allow requests for more than just static content from servers. This makes interactive web applications possible. See here.
Databases allow data persistence even in the case of server resets or failures. MongoDB is a convenient system based on objects in JSON format. See here.
Foldable Instruction Topics
The course covers a full stack of technologies including HTML, CSS, JavaScript, HTTP, DNS, web servers, database services, security, client side web frameworks, and progressive web applications. The instruction topics given below include assignments and projects to help you explore the concepts and demonstrate your mastery.
It is expected that you will start at the top of the list and work your way down. Make sure that you complete every assignment (marked with the ☑ icon) and submit the result in Canvas so that you can receive credit for what you have mastered.
Slides for in person discussions
- ☑ AWS account (due 5/2)
- ☑ Introduction (due 5/3)
- Demonstration
- History of the web
- Asking questions
- ☑ Discord (due 5/5)
- Startup application
- Let's play Simon
- Technology stack
- ☑ The Console (due 5/5)
- Editors
- Git
- ☑ GitHub (due 5/5)
- Development and production environments
- ☑ CodePen (due 5/5)
- ☑ Startup Specification (due 5/9)
- The internet
- Web servers
- ☑ Amazon Web Services - EC2 (due 5/3)
- Domain names
- Amazon Web Services - Route 53
- Caddy
- ☑ HTTPS, TLS, and certificates (due 5/3)
- HTML introduction
- ☑ Structure (due 5/10)
- ☑ Input (due 5/10)
- ☑ Media (due 5/10)
- Simon HTML
- ☑ Startup HTML (due 5/10)
- CSS introduction
- Selectors
- Declarations
- Fonts
- Animation
- ☑ CSS practice (due 5/12)
- Responsive design
- Debugging CSS
- ☑ CSS frameworks (due 5/12)
- Simon CSS
- ☑ Startup CSS (due 5/16)
- UX design
- JavaScript introduction
- JavaScript Console
- Adding JavaScript to HTML
- Types, operators, conditionals, and loops
- String
- Functions
- Arrow functions
- ☑ Arrays (due 5/17)
- JSON
- Regular expressions
- Rest and spread
- Exceptions
- Destructuring
- ☑ Objects and classes (due 5/19)
- Scope
- Modules
- ☑ Document object model (DOM) (due 5/19)
- ☑ Promises (due 5/24)
- ☑ Async/await (due 5/24)
- Debugging JavaScript
- Simon JavaScript
- ☑ Startup JavaScript (due 5/25)
⚠ Make sure you take the midterm in Canvas during the open period.
- Midterm study guide (due 5/26)
- Introduction
- URL
- Ports
- HTTP
- SOP and CORS
- ☑ Fetch (due 5/31)
- Service design
- Node.js
- ☑ Express (due 5/31)
- Debugging Node.js
- Service daemons - PM2
- UI testing
- Endpoint testing
- Simon service
- ☑ Startup Service (due 6/1)
- Storage services
- ☑ Data services (due 6/2)
- Simon DB
- ☑ Startup DB (due 6/6)
- Authorization services
- Account creation and login
- Simon Login
- ☑ Startup Login (due 6/8)
- WebSocket
- Web frameworks
- React
- ☑ Components (due 6/7)
- ☑ Reactivity (due 6/9)
- ☑ Tic-tac-toe tutorial (due 6/9)
- Hooks
- Toolchains
- ☑ React CLI (due 6/9)
- ☑ Router (due 6/9)
- Simon React
- ☑ Startup React (due 6/15)
- Security
- TypeScript
- Performance monitoring
- Search Engine Optimization
- Device APIs
- Progressive web applications
- ☑ Demo day submission (optional 6/15)
- ☑ Wrap up (optional 6/21)
⚠ Make sure you take the final in Canvas during the open period.
- Final study guide (due 6/21)
Icon | Meaning |
---|---|
⚠ | Important concepts, or pitfalls, to note |
☑ | Assignments that you must submit in Canvas |
🔑 | Required reading |
📖 | Deeper dive reading for when you want to learn more |