مرحبا! اسمي ستيڤن! تشرفنا
Over the course of this week we'll take your existing HTML, CSS, and Javascript skills from the client to the server with technologies like Node.js, Express, EJS, jQuery, Passport, SQL, and SQLite. By the end of the week you'll be able to build your own website backends using these technologies from scratch.
In fact, if you follow along, you will have built one yourself by the end of the week already!
But, more than the specifics of Node.js, Express, and SQL, I hope to leave you with an understanding of the concepts underlying these technologies so that you can:
- Easily adapt your new skills to other server-side technologies
- Develop an awareness of other popular options
- Give you a mental model for evaluating these other technologies
Along the way we'll discuss topics like Common Website Security Vulnerabilities, AJAX, OAuth, Scaling, NoSQL, Mobile Apps, and Cloud Computing.
We will be moving at a fast pace and covering a lot of material! Don't get discouraged! I am here for you the whole week, and we will get through it together.
This week we will building a "Bulletin Board" website together. This website will allow signed-in users to:
- Sign up for an account
- Login
- List recent posts on the bulletin board
- List trending posts on the bulletin board
- Post a message to the bulletin board
- Upvote posts
You will find a functional frontend for it in designer_files. Our job will be to "add the magic" and make it work with real data.
I will be committing a change to this repository at the end of each topic we cover. If you pull my branch you will always be up-to-date and in a working state. But, I encourage you to create a branch now, at the start of the workshop, from this first commit - and try to work your way through the material on your own branch alongside the group.
I will also include code samples, snippets, and other useful information under notes/:day_number - I hope this will be a useful resource for you throughout the week and into our group project.
A note about code quality: This workshop is coving a lot of material, and we're going to pay special attention to concepts common across multiple server side technologies. The code here will reflect our broad vs. deep approach, and strive for clarity and brevity - even at the expense of correctness where the issues are minor. The focus of this workshop is not Javascript best practices - so we will indulge ourselves in this freedom.
I'm really looking forward to our time together! I love web development, and am honored to be part of your journey! Please do not hesitate to reach out to me if you have any questions left unanswered by these materials! I am here to help!
For details on the schedule, and resources for each day, please see schedule.md.
Steve