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:
- Practice domain modeling and RESTful API design in an applied context.
- Gain practice building clean, intuitive UIs that speak to REST APIs that you designed.
- Build a minimimum viable product that could grow to accodomate additional features.
- 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.
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
- Users, Posts, Comments
- Users, Tweets, Likes
Blogging App
- Users, Blogs, Comments
The following projects are a bit more challenging because they have two types of users.
Uber
- Riders, Rides, Drivers
Healthcare App
- Patients, Appointments, Doctors
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
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.