/unit-7-project

Unit 7 Project: Server-side Development w/ Node.js

GNU General Public License v3.0GPL-3.0

Unit 7 Project: Build a Full-Stack Application!

Directions

Congratulations! You can use the DOM API to create dynamic user interfaces. You can use AJAX to make asynchronous requests from your browser to third party APIs. Now, you can program business logic on the server side and persist data to a relational database. You have brought the two together to design RESTful APIs. You are now a full-stack developer! It's time to bring all of the pieces together for your first full-stack application.

As always, there are general guidelines and checkpoints for this project, but it is left open-ended so that you can let your passion and interests drive your creativity. The purpose of this project is for you to:

  1. Practice domain modeling and RESTful API design in an applied context.
  2. Gain practice building clean, intuitive UIs that speak to REST APIs that you designed.
  3. Build a minimimum viable product that could grow to accodomate additional features.

Project Requirements

  • You will build a fullstack application with Express and the app must be connected to a Postgres Database.
  • You must have three tables and a Many-to-Many relationship. However, if you are building this project solo, then you must have two tables and a One-to-Many relationship.
  • You are expected to build out full-CRUD functionality on at least one model.
  • You will build their own frontend which is served as static assets in the public directory.
  • Authentication and user log-in is also an expectation.

Project Ideas

For this project, you are expected to have three database tables as part of your Minimum Viable Product. In addition, you must have at least one Many-to-Many relationship in your application. The main purpose of this project is to practice buiding out a CRUD Express App. You must have at least CREATE and READ funcitonality for all tables, and you must have full CRUD for at least one table.

It is perfectly acceptable (and even encouraged) to build a clone of an existing application. Below are a list of project ideas, all of which involve at least three tables and at least one many-to-many relationship.

AirBnb

  • Users, Listings, Bookings

Instagram

  • Users, Posts, Comments

Twitter

  • Users, Tweets, Likes

Blogging App

  • Users, Blogs, Comments

Challenge Projects

The following projects are a bit more challenging because they have two types of users.

Uber

  • Riders, Rides, Drivers

Healthcare App

  • Patients, Appointments, Doctors

Solo Project Ideas

If you are completing a Unit 7 Project as a soloist, you are expected to have two database tables as part of your MVP. The relationship between your tables must be a One-to-Many.

There any many simple app ideas that would fit nicely into these requirements. For example, a Personal To Do List would have a Users table and a ToDos table. A user would be able to create an account, sign in, and keep track of their ToDos. However, so many bootcamp students build a basic To Do List as part of their portfolio.

For your project, we want you to build some other personal website or personal tracker! All of the ideas below involve at least two tables and at least one one-to-many relationship and are acceptable project ideas! You must have full CRUD for your non-user table. You must have CREATE and READ functionality on your Users table.

Personal Blogging Site

  • Users, Blogs

Personal Photo Gallery

  • Users, Photos

Fitness Tracker

  • Users, Workouts

Nutrition Tracker

  • Users, FoodItems

Using Your Resources

Just like last time, this project will push you to lean into your autodidacticism. In order to complete this project at a satisfactory level, you will have to do some self-learning. This is by design. By pulling from blog articles, YouTube tutorials, and examples on GitHub, you will be able to build whatever you put your mind to.