程序代写 CS 162 Final Project

CS 162 Final Project
In this course, a final programming project will take the place of formal exams to test your understanding of the material. The final project will involve working creatively to implement a substantial web app that utilizes all of the major components of the web application stack covered in this class within the final week. Specifically, you will write a web app that satisfies all of these requirements as grading criteria:
Grading criteria
● 10 points

Copyright By PowCoder代写 加微信 powcoder

● 10 points interface.
● 10 points
● 10 points back end
● 10 points
to create,
● 25 points
– The app uses HTML and CSS to implement a well-designed client interface. -The app uses client-side JS to enable relevant user interactions with the client
-The app is served using a Node.js-based (or other approved) serving stack. -The app dynamically generates pages based on data stored permanently in a data store, such as MongoDB (or even a JSON file).
-The app’s client interface communicates asynchronously with the app’s server
read, update, and/or delete content in the back end data store. – Your app has a high-quality design and implementation.
○ For example, your app is free of bugs and has an effective user interface. ● 25 points – Your app is creative and original.
Choosing an app to work on
Within the boundaries outlined by the requirements above, you may write any kind of web app you want. There are infinite possibilities, and I encourage you to be creative and to implement an application you find interesting or that solves a real problem for some set of potential users. Below are some additional guidelines and logistics about choosing what to work on for the final project.
● An online game. These have been as simple as hangman or choose your own adventure games to as complex as Asteroids and other physics-based games. High scores are a great kind of data to save for these kinds of apps.
● A game helper app. If you play in-person games (e.g. Dungeons and Dragons, Pokemon, Gloomhaven, etc.), there are lots of opportunities for helper apps to make the games easier. Many students have done character creators, deck builders, dice rollers, collection builders, etc. Storing created character, deck, or collection data works well for the final project.
● A recipe creator. This kind of app has been very popular over the years. Storing recipes and displaying stored reciped works perfectly for the final project.

● A blog site. Another really popular kind of app. Letting users write blog posts and then displaying the blog posts that have been written works well.
● A drawing app. Several students have created very cool drawing apps over the years, where users can create and save drawings (e.g. using an HTML element), then go back and browse through all the drawings they’ve created.
● A chat app. Several students have implemented apps that allow users to chat with each other. Ambitious students have used Socket.IO to enable live, real-time chatting.
● The possibilities are endless. The apps above are just a few of the possibilities.
Importantly, you should also be realistic about what you can actually accomplish in the final week. In particular, feel free to treat the final project as an opportunity to deliver a prototype, not a polished product. If you’re having trouble thinking of an idea for an app to implement, please reach out to me, and I can help you figure something out.
One thing in particular you should be cautious of is implementing an app that requires user authentication and logged-in sessions. Getting the details of these things right can be tricky, and I don’t want you to get bogged down in these details. Implementing logins is not needed for the kind of prototype you’ll implement for this project. If you do want to implement authentication and logged-in sessions, you must discuss with me to get approval.
Third-party libraries and other tools
You may treat the final project as an opportunity to learn how to use web development technologies we didn’t cover in class. Specifically, if there’s a third-party tool or library you want to use for the project (e.g. Bootstrap, React, Angular, Webpack, ES 6/7, Socket.io, etc.), feel free to do so, as long as that third-party code doesn’t completely implement your final project.
GitHub repositories
The code for your final project must be in a GitHub repository set up via GitHub Classroom.
The repository will be private by default. However, you will have full administrative control over the repository that’s created for your project, which means you’ll be able to make it public if you wish. I encourage you to make your repo public. These final projects should be nice demonstrations of your web development abilities and will be a good item to have in your CS portfolio. It will be great to have the code in a public GitHub repo so you can share it easily when you want to.
If you’ve already started a GitHub repo for your project, don’t worry. The repository created via the GitHub classroom link above will be completely empty, so you can simply use git remotes to work with both repositories. I can help you set that up if needed.

Grading demonstrations
To get a grade for your project, you must do a brief (10-15 minute) demonstration to me of your project’s functionality. These demos will be scheduled during finals week. I’ll send more details on scheduling demos for the final project when we get closer to that time.
Code submission
All code for your final project must be pushed to the main branch of the repo created using the GitHub Classroom link above before your grading demo.
Remember also, if you do not do a demo for your project, you will receive a zero for it.

程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com