Introduction

Well, you made it to the final project, congratulations!

We know that it's been a long journey to get here and that there have been many hardships and trials that you've had to endure on your journey as a student of web development, but we are confident that you'll be able to create amazing final projects to be proud of.

The final project is meant to be as open-ended as possible while still having just enough requirements to ensure that you're able to use everything you've learned to the fullest capacity and learn along the way. Think of the final project as something you'd want to build at a hackathon, but spread out over 3-4 weeks. Let your imagination fly, let the wings of your mind soar, and let your creativity sprout to be able to build whatever your heart desires. After all, that's why we do what we do here with your web development skills - we wish to build.

Our goal for the decal was to give you all the power to build whatever you could think of - and now is the time to try doing so. Failure at first is unfortunately essentially inevitable, but we hope that throughout the journey you will be able to grow as both a developer and as a student.

Project Proposal and Requirements

Requirements

Your project must include a design component, a frontend component, and a backend component. As a guiding thought, try to create a project you'd be proud to show off to your friends after you complete the course. At the end of the semester, you'll be presenting your project to the class.

Additionally, your project must include at least one of: a significant backend or a significant frontend portion.

What do these entail?

A design component means that you must use at least one of (Figma, Adobe Illustrator, or any other design tool) to prototype, wireframe, and design your final project. For the wireframe, it should be LOFI, aka low fidelity. We are not looking for something that's final and very detailed, as long as the wireframe can convey your project idea and make people understand what you are doing.

A front-end component means that you must use React/React Native to build your final project. Feel free to use a component library from the following: React-Bootstrap, Chakra UI, Theme UI, and Material UI. Please ask Alex Wu if you would rather use a different component library not listed. A significant frontend component means that you must use the state feature of React/React Native in a significant way, which means that it must either be extremely important to the functionality of your project or worked within a large capacity (in most projects that use react, the amount of javascript you write heavily outweighs the amount of JSX and CSS you write). Using Typescript, Sass, or any other extra technology is also a plus!

A back-end component means that you must use one of (AWS or any other cloud platform, a database system such as MySQL, MongoDB, etc..., Node.js, Django). A significant backend component would entail working with all of the following (A database system such as MySQL, MongoDB, etc... (You can use a cloud-based database such as Google Firebase or AWS DynamoDB), AWS or any other cloud platform (In a way other than just as a database at the least), and one of (Node.js, Django)).

Project Proposal

Your project proposal must include an idea that must be somewhat fleshed out and a list of what technologies you are planning to use and why. The project proposal should be written down on a google doc or something similar.

Additionally, you must have a rough wireframe of your project created on Figma to present at the project proposal night, alongside a formal architecture diagram of your project. This is intended to help frontend students practice design and for backend students to practice system design, but obviously, anybody in the group can work on any part of the project proposal.

Helpful TikTok for architecture diagrams 👉

Helpful resources for wireframing 👇

How to wireframe