Designing Learn JavaScript's course portal (Part 3)
Published on:This is the third article in the Learn JavaScript design series. Today, I'll talk about how I built the Account and Component Page.
This is the third article in the Learn JavaScript design series. Today, I'll talk about how I built the Account and Component Page.
This is the second article where I explain how I designed Learn JavaScript's course portal.
I had to reconfigure my Macbook after sending it for repairs. During the reconfiguration period, I noticed the instructions I linked to in ["Setting up a local MongoDB connection"][1] were outdated.
Here's an updated version on how to install MongoDB on a Mac.
Learn JavaScript is my flagship JavaScript course. It helps people go from knowing nothing about JavaScript to becoming a professional JavaScript developer.
Today, I want to share with you how I designed Learn JavaScript's course portal.
<Image src='/images/2020/ljs-portal/login.png' alt='Learn JavaScript login page.' />
I built a login system with HTML, CSS, and JavaScript when I made Learn JavaScript's student portal. I'd like to share this system with you since it seems to work well.
If you create JavaScript widgets, one of the key parts to accessibility is managing focus.
To manage focus, you need to find keyboard-focusable elements.
When I saw the CSS Tricks redesign, I was hooked. I loved the links with gradients. I told myself I'm going to use gradient links for my next project.
That's what I did for Learn JavaScript's course portal. The links look like this:
<Image src='/images/2020/multi-line-gradient/link.gif' alt='Blue color link with blue underline. When hovered, the text has an orange to yellow gradient; underline becomes solid orange.' /> I want to share what I learned about creating gradient links
2019 has ended. Once again, I want to conduct my year-end review in public. This time, in a lot more depth and rawness compared to the previous years.
MongoDB documents have a size limit of 16MB. This means you can use subdocuments (or embedded documents) if they are small in number.
For example, Street Fighter characters have a limited number of moves. Ryu only has 4 special moves. In this case, it's okay to use embed moves directly into Ryu's character document.
<Image src="/images/2019/mongoose-population/ryu.png" alt="Ryu's document." /> But if you have data that can contain an unlimited number of subdocuments, you need to design your database differently.
One way is to create two separate models and combine them with populate.
You learned how to use Mongoose on a basic level to create, read, update, and delete documents in the [previous tutorial][1]. In this tutorial, we'll go a step further into subdocuments
Mongoose is a library that makes MongoDB easier to use. It does two things:
In this article, you'll learn how to use Mongoose on a basic level.
Bootcamps are fast-paced learning environments.
Most people who enroll in a Bootcamp do quite well when it comes to HTML and CSS. But many people struggle with JavaScript. Some even get depressed about programming because they can't understand JavaScript.
If you're one of these people, I want to let you know that you're not alone. I receive emails from people like yourself occasionally.
Here's one I received from Seth.
<Image src='/images/2019/bootcamp/seth.png' alt="Email says: I joined this coding bootcamp mid August and I was so much green to programming. I was really motivated and have been having so much interest in programming for quite a while now. I have been learning Javascript since I enrolled and I have grasped a little concept but right now I feel like QUITING, AM GIVING UP on coding. I don't feel the motivation anymore like I no longer get what the facilitator is saying. I really dont feel being in that bootcamp anymore. " />
Homebrew is a package manager for Mac OS. It lets you download binaries, packages, and applications with a single command.
In this article, I want to explain how to use Homebrew.
You should never expose API keys or secrets. If you expose them, you might get into trouble. Once, I almost had to pay an excessive amount because my friend leaked my Amazon API key by accident.
What's the amount? I can't remember, but I think somewhere between $20,000 to $60,000. Thankfully, Amazon waived the charges.
It's big trouble if you expose your API keys. So don't expose them.
The best way to protect your API keys is to use environment variables.
I had a hard time learning how to handle errors in Express when I started. Nobody seemed to have written the answers I needed, so I had to learn it the hard way.
Today, I want to share everything I know about handling errors in an Express app.
There are LOTS of languages. Picking one (or two, or three! 😱) can be scary and overwhelming at first. In this article, I want to share three things:
In this article, I want to explain the difference between HTML, CSS, and JavaScript with an analogy. I hope it helps you understand what these languages are, and what they do.
I've been styling :hover
, :focus
, and :active
states the same way for years. I can't remember when I started styling this way. Here's the code I always use:
// Not the best approach. I'll explain why in this article
.selector {
&:hover,
&:focus,
&:active {
// Styles here
}
}
As I paid more attention to keyboard accessibility (and therefore paying more attention to focus), I began to think we should not style hover, focus, and active states the same way.
Hover, focus, and active states should be styled different.
There's a simple reason: They're different states!
Today, I want to show you a magical way to style all three states effortlessly.
When you create a custom focus style, you want to think about four things:
I wrote more about this in my article on [designing focus][1]. During my research, I found three kinds of focus style I liked.
<Image src="/images/2019/create-focus/combined.png" alt="Focus styles on Smashing Mag, WTF Forms and Slack" /> Today, I want to show you how to create these focus styles and use them effortlessly across your website.
Focus is important. It tells us what element we're currently focusing on. Most developers suggest keeping the default focus style.
I think there are problems with the default style. I tried searching for inspiration to design a better focus style, but I couldn't find anything on this topic. So I did some quick research by visiting sites I use and paying attention to their focus styles.
I want to document my research and findings in this article. I hope it helps you: