This is the second of three self-directed, larger-scale, full-stack applications that you'll be building over the remaining weeks of the course.

In your previous full stack application you practiced everything you need to know in order to build beautiful, data-driven web applications that can provide a real benefit to users. This project will give you the chance to continue to refine your skills, and possibly build something you could turn into a helpful tool for your friends and family, or possibly even a profitable business!

We're winding down the amount of material we have to cover and transitioning heavily to project work. You will have this whole week to work on this project of your choosing.

Project Requirements

This project needs to be a full-stack web application. As such, it needs to satisfy the following set of requirements:

  • A passed of proposal Explaining your app
  • Uses React on the front-end
  • Is a single-page application (SPA)
  • Is responsive
  • Is well organized, using Redux where applicable/useful.
  • Uses Node.js/Express as the back-end server
  • Shows a good understanding of module patterns by separating actions, reducers, containers, components, etc. into their own folders and files
  • Uses express routers
  • Uses MongoDB for the database and Mongoose for schema creation and the ODM (Object-Document Mapper)
  • Uses at least 3 separate Mongo collections
  • Has at least two collections that reference each other and populate one another when data is saved and queried
  • You should try to incorporate a third party-API but it isn't required

Your site does not need to include user authentication of any kind. However, you should certainly consider adding it to your application after we learn it!

You also won't necessarily be required to integrate with a third-party API, but you should know that it is one of the best ways to make a really interesting and useful application in a short amount of time.

Proposal

This part of the project is to help you narrow down your idea, clarify its parts and make it easier to start coding.

The requirements are as follows.

  • Paragraph describing your app idea, What are you building? Who is it for?

  • An easily describable MVP, Remeber you have a limited amount of time to develop this project. What is the minimum you can get done on this project to meet the requirements and get a product in someone's hand?

  • User Story, What is a user going to do when they go to your site from the time they hit the landing page? What features do they need and which are optional?

  • Mind Map, What is the structure of your backend and front app going to look like? What routes, models, components, actions, and reducers will I need?

Once you have the following items meet with your instructor, pass of your proposal, you can start coding.

Passing Criteria: Project Demo to the class

You'll present your finished project to the rest of the class and spend a couple minutes discussing in detail a difficulty (or two) you faced while developing the app and how you ended up solving that problem. The instructors/TAs will be making sure your project satisfied all the requirements outlined above while you are presenting.

Successful completion of this project passes off the following milestones of the skills tree:

  • Web Applications - Level 3
  • HTTP/APIs - Level 4,
  • Databases - Levels 3 & 4