Video Script

Hi, everyone, and welcome to the week eight announcements video for CIS 526 and CC 515 in spring 2025. So as we talked about last week, I’m kind of taking over this course from Dr. Bean, who’s going to be shifting over to cover another course for the rest of the semester. And so as part of that, one of the things I’ve been working on is a lot of new content for this course to introduce how you would actually build a RESTful API and a standalone single page front end application using some of the more industry standard techniques and practices. The early part of this class with Dr. Bean is really great because it shows you behind the scenes, the intricacies of how these things work. You get to build your own cookie parser, your own body parser. You build your own very low level handlers for a lot of these things. And so now we’re going to take a step up the food chain a little bit, and we’re going to rebuild some of these ideas using the standard stuff that Node and Express includes.

So I’ve just published the first three modules of this new content on canvas. So as you get to this point, you’ll want to get started on it. I have this first page right here that just explains what we’re going to do with this tutorial project. The second link right here, this is a GitHub classroom link that will take you to GitHub classroom and it will ask you to accept the assignment on GitHub classroom. Hopefully you’re all familiar with that. At this point, it’s in the same classroom as the previous parts of this class. And then we’re going to work in that same repository for the rest of the semester. And then after that, we’re going to do a tutorial project. These links will take you directly to the textbook for this class. And so in here, I’ve created this new example projects. And what you’re going to do for each example is you’re going to go through all of the pages in this chapter. So this starter project has 11 steps. Each step has a video where I have walked through step by step doing everything, every single thing. But I also try and include lots and lots of screenshots and examples. I show you a lot of code. One of the things you’ll notice at the top of the code is I try and show you the file name of the files that we’re looking at. For terminal, I show you whether it’s terminal or terminal output.

So hopefully it’s pretty easy to follow along as we go through this process. But basically what you’ll do for this tutorial is you’ll go through all of these, you’ll get to the summary step where we’ve got everything done. And then for this first one, all you really have to do to complete that project is get all the way through to the end of the tutorial. And so if I go back here to week eight, all you’re going to do is submit that tutorial just to show that you’ve done it. That is due by the Monday after spring break. Then we’re going to go through and we’re going to add a database. And so for this one, you’re going to add a database following the tutorial. You’ll turn in that tutorial by making a commit and making a release commit there. And then immediately after that, you’re going to go in and additionally add additional database tables and content to the database. So you’re going to turn in the tutorial, make a release commit, submit that, then building right on top of that, you’re going to add your own database files and then submit that again. These are both due on the same day, but really you’re going to do the tutorial first, then you’re going to do the milestone. I just put them together on the same day to keep that same cadence. Likewise, step three. I’ll walk through adding part of the API and then you’re going to add the rest of the API in this milestone here. And then we’ll go on to talk about authentication. We’ll build a Vue.js starter project and build a CRUD app and then build some components on top of that. And I may add one additional module here at the end just to kind of show how you would distribute and actually dockerize this. It probably won’t be actually due for a grade but it will be something I’ll try and add if I get time. So what you’re actually ending up building is you’re building a RESTful API and a single page frontend application for the Lost Communities project that you’ve been working on throughout the semester.

And so this is actually my model solution for milestone three, where you have the full API. I’m currently working on adding these authentication routes so you can just ignore these. During the tutorial, I’m going to show you how to add the users routes. And so all of these users routes, for example, I can try it out, hit execute and I’ll be able to get a list of users in the application. I can also go in here and let’s say I want to create a new user. So I can create a new user and this is gonna be announcement user. So I’m creating a new user with these couple of roles. I hit execute, we’ll see that it worked correctly. And so now if I go up here to my endpoint for all the users and execute it again, we should now see that my new user is in our API. And so what you’re going to do is you’re going to not only create the API endpoints for dealing with users, you’ll also create endpoints for dealing with communities. For getting the list of counties, you don’t have to update the counties. We’ll have one for documents including a endpoint to upload a document. And then we’ll have one for metadata where you can create metadata items and then you can add or remove documents and communities from that metadata item. So all of these should be well within your reach. The other thing that you’re going to do as part of this is you’re going to write an awful lot of unit tests. And so if I do NPM run tests on my project, I should end up with a whole lot of unit tests here. and this may take just a second for it to run, but you’ll notice I have tests for communities, for counties, for documents, for metadata. I’ve got document roles, users, and so my model solution ends up with 203 unit tests. Now, obviously some of these are just repeated unit tests with different variables added, but that gives you kind of an idea of what I’m expecting by the end of milestone three, and then we’ll go on to add authentication and other things on top of that.

So that’s kind of where we’re going. This is a little bit of a shift in content and tone of the course. It’s all brand new content, so if you have any questions or concerns, I encourage you to let me know. I’ve created a bug bounty mega thread in the ed discussion, so you can post bug bounties there. I’ll probably also create mega threads for each of these milestones so that we can have a good discussion there. As always, if you have any questions or concerns, let me know. Otherwise, best of luck as we transition to this new part of this class. We’re really halfway through the semester at this point. I hope you have a safe and relaxing spring break and I will see you again in a couple of weeks.