Project: Final Project

Introduction

I hope you enjoyed this course and the projects you’ve completed.

Assignment

Replicate your favorite website as close as possible - Pinterest, Facebook, Twitter, etc. Just make sure it has lots of interesting functionality. You’ll be integrating a full array of skills into this one. Feel free to set up the project using the back-end framework of your choice! For example, Ruby on Rails or NodeJS. This should prove that you now have all the tools and knowledge needed to build a website, just like the ones you use every day.

Of course, you can’t replicate every feature, and the user interface will probably be a bit clunkier. However, if you can get yourself 80% of the way there, that’s darn impressive!

  1. Set up a GitHub Repo for this project. Follow the instructions in Git basics if you need help.
  2. Think about what you need to do. It’s really helpful to write your plan down on paper or whiteboard ahead of time! A few hours of thought now will save you days of coding. Try to lay it ALL out. An important part of planing is scope. You obviously can’t build the entire website (which presumably took a full team of engineers years to produce), so you’ll need to identify the site’s core functionality and the “nice-to-have” stuff. Make sure you finish the core functionality BEFORE working on the rest. If you try to do everything at once, you’ll get lost and frustrated. Trust me. Everything takes longer than you expect.
  3. Roll up your sleeves and start building!
  4. Try to test the high-level functionality using a suitable testing library, for example, Javascript with Jest or Rails with RSpec. Don’t get too bogged down in testing, but try and save yourself time by adding high-level tests, so you don’t need to click around 100 times every time you make a change to something that seems important.
  5. Once you finish, push to GitHub and definitely submit your project below!

Congratulations!

Additional Resources

This section contains helpful links to other content. It isn’t required, so consider it supplemental for if you need to dive deeper into something.

Improve this lesson on GitHub

Have a question?

Chat with our friendly Odin community in our Discord chatrooms!

Open Discord