 So the next step would be how to use a certain feature in your app. In this case, the main feature of my Twitter app is to tweet. We're going to be telling people how to tweet. So after my project review video, a bunch of you guys sent in your projects, resumes and portfolios and I looked through some of the projects and a lot of you guys didn't even have a read me and those who did had a very difficult to read read me and I made the experience a little harder for me. So I thought I would make a video based off of my experience and making projects on GitHub and what I follow when I do GitHub documentation. Now, when you send in your portfolio or your resume and people look at your projects, they're not going to sit there and read through every line of code. Most likely it's a serious project with a lot of code and no one wants to read through it, but they do want to know what the project is about. They do want to know about what it can do, certain features that you've added, things that you might not see initially by just looking at the project. And that's where GitHub documentation or more read me documentation comes in. Usually in my videos, I talk about something, then I show examples. And then by the end of the video, we're doing it together. I want to jump in straight into a project I made when I first first started programming and we're going to make the read me for it. And we're going to document it beautifully so that if anyone were to come and check it out, they would have everything they need. So here's what the project looks like. It's a Twitter clone. You can't log in with an account. You can't do anything. It's super basic that pretty much the only thing you can do is tweet. So let's say, say, hello, YouTube and I click enter or a tweet. And then you see Joel tweeted hello, YouTube and you can like his own tweet. So before I made the project, I made myself some user stories and that's something usually you do before the project. But in this case, the project's already done. So we're just going to pretend like we haven't done the project yet. And here is our empty read me. I'm actually going to link this project in my description. So if any of you want to come check it out, check the super spaghetti code or maybe just come and check out the read me. It's going to be all there for you. So first thing I always start with is the title of the project and a small description we're going to go and it's called Twitter. And if any of you guys don't know what Markdown is, it's like almost a language that you use in GitHub and use it in Discord and things like that for documentation. I'm not going to be teaching you Markdown. But if you're not sure what it is, just search up a quick video on it or maybe just a quick article and you'll understand what I mean. We're going to put a hashtag for the biggest font and five hashtags for the smallest and you can do in between those two. So we got our title, which is Twitter. And now let's add a little description. I actually wrote one on the side just because I looked on this ahead of time. I went to Twitter on Google or Facebook and I actually went to look in what the Wikipedia says that app is. So maybe that's what you could do. If you made a clone for Twitch, you can go and see what Twitch describes itself as and maybe rewrite that in your own way. So Twitter is a social media application where users can post their thoughts, feelings, or just talk about something they're passionate about. Little description about what the app does and there you go. That's it for that. So the next section I'm going to do is how to run the app. This is important because some people are going to want to download your project and they're going to want to play with it. Maybe the CTO with the company you just applied to, went on your portfolio, saw the project, opened up the code and said, wow, this is cool, let me run it and see if I can play with it. Maybe I can find some bugs in it. So you want to make it easy for him to set up because he might have one way to set it up and you might have another and they can clash or they could be confusing. And there's just a bunch of time that you can save for him when he's reviewing your project. So I'm going to use a bit of a smaller font for this and I'm going to make this a little bigger for you guys watching the video. And we're going to say how to run the app. And in here we're going to do steps. So first thing you should be doing is either fork or download the app and open the folder in the CLI. For any of you who have made a project with other people's code, aka dependencies, then you know that when someone installs your project, they have to install these dependencies. You shouldn't be pushing your dependencies to GitHub because those are big files. People should be downloading them straight from your project. So install all dependencies using the NPMI command. Now that you have your dependencies and you have the project downloaded, all you're gonna have to do is run the project and that's what the next step is going to be. So we're gonna tell him to start the web server using NPM run local command. And that's the case with our project. If that doesn't work, you're gonna use a different command. But anyways, and then the app will be served at this link. And then we can go and give them the last step, which would be go to localhost 8080 in your browser and tweet something. And that's it for how to run the app. It's pretty simple, but this is again a very, very simple example of how you should be doing this. I don't really have a complex project and I don't really wanna make this a 25 minute video of how I built out the documentation. So I'm gonna be using this project because it's super simple. This is not mandatory, but this is what I would do. The next step would be how to use a certain feature in your app. In this case, the main feature of my Twitter app is to tweet. We're gonna be telling people how to tweet. And again, it's super simple in this case. But if it was a complex project and a complex feature, I would be describing to the user or to whoever's reading this, on how to use that specific feature. Think of this almost like how to get started. When you download Unity, the first thing that pops up is how to use Unity. Or when you get in a game, the first thing that gets popped up is like a tutorial on how to play the game, on how to move the character around. What buttons to press, so that's what this could be like. In our case, it's very simple. The first thing you need to do is click inside the text box at the top of the page. The second thing you need to do is type out a tweet. And the third thing you need to do is enter the tweet, and that's it. There's no login, there's nothing complicated, so that's how it would work. So I talked a little bit about user stories at the starting of this video. But for those of you who don't know, user stories is almost like a description of what a user should be able to do. So saying like, if you're on Facebook, a user should be able to like a friend's picture. And before you make a project, once you have the idea of the project, the next step is to move into user stories. And then you take user stories and build them out into features. So you say, a user should be able to like a picture. Then you go and break that down into a technical format of how to do that. The user story is just what the user can do. Now in this project, the user can tweet their thoughts, and a user can like other user's tweets. Once I write out the user stories, and I build the app and everything, then I actually go and document some of the features for the people who don't have the time to go through my whole application, but want to know something cool about it. So I like to throw in the cool features in here, if there's a lot of them. But in this case, there's not many, so we're actually going to throw all of them. So here are the features in this application. Let's go over them quickly. We got our tweet feature, and then here are like the subsets, subsections, I guess, of what this feature does. So a tweet gets sent to the back end and gets posted to all the users. So when I post a tweet, all of you guys get it. A tweet gets validated. So no empty tweets. I'm pretty sure there's a couple other things that you can't throw in a quote. You can't do cross-site scripting. So that was like the goal of this project when I built it, that no one can hack into it. And then tweets get highlighted on mass over. Then we got the liking a tweet feature. In this case, liking a tweet gets sent to the back end and post it to all the users. So when I like a tweet, you get to see that the tweet went up one like. You don't actually get to see who tweeted it, but that's for the next section. So give me a minute. And there's the un-liking a tweet, which is the same thing as liking a tweet, but just un-liking. And then there's the random account feature where you don't have to log in. It just posts on behalf of someone random with the random picture. One thing we can add is actually on the tweet. Each tweet has a time step. And that would be our feature list. Let's move on to the next one. So I'm not going to go over this one quickly, but we got future features. This could be maybe like your to-do list or just something you would love to do. In this case, I would make a couple things. First of all, I would have it live reload. So right now if I tweet, you have to refresh the page to see my tweet. Second thing I would do is allow people to log in with actual accounts, not post on behalf of random user names taken from some API and random pictures taken from another API. Then we got dependencies. This is not the most necessary, but I like to put it there just in case people are like, I wonder what they use to build this. Now this is the last step. And this is something I like to do often where I go and take up a screenshots of my project and I post them in the read me for people who don't want to run the app. Maybe it doesn't work for them. It's not super mandatory. I would do it, especially for apps that aren't hosted yet. If you're still working on the app, maybe put like pictures of what it looks like right now. Make it so I could see the app without running it. But at the end of the day, I always say host your project. So let me show you what that looks like. Step one, take a screenshot of your website, a couple different features. In this case, I'm just going to take one screenshot of the homepage. Then we're going to go and we're going to upload it to our project. So we're going to drag it in and we're going to save that change. And once that's saved, we can go to that screenshot right here. We can grab the GitHub link at the top. And since we were using Markdown in our read me, we can actually upload it as an image. And once our image gets uploaded and saved to GitHub, you can go and drop it in here using Markdown. Let's go save that and see the final product. And there we go. We got our Twitter app. It's this is a description. This is how to run the app. This is how to tweet. This is some user stories. These are some features, some future features, some dependencies, and then what the app actually looks like. And you can change organization of all these depending on what you want to prioritize and what you don't care about. But this is how I usually do it. Maybe push dependencies to the bottom, but it doesn't really matter. If this video valued you at all, if you learned something here, if you just want to help me out, you can like the video and you can subscribe to my channel if you're new to here. That's it for this video. I wanted to make it quick as I can, but I don't know how long it's actually going to be. If you got any ideas or anything you want to learn about that you're not sure, post them in the comments. I'll make them into a video. I'll add them to my list or something like that. I got some courses coming soon, so stay tuned for that. And I want to see you guys in tomorrow's stream. Bye. Sometimes I'm at the peak and other times I'm about to fall. Sometimes I got to wonder what I'm doing here at all. Sometimes in my mind I just sit here and I'm guessing. How can I find the answers? I don't even got the questions. Sometimes I'm at the peak and other times I'm about to fall. Sometimes I got to wonder what I'm doing.