Book Image

Full-Stack React Projects

By : Shama Hoque
Book Image

Full-Stack React Projects

By: Shama Hoque

Overview of this book

The benefits of using a full JavaScript stack for web development are undeniable, especially when robust and widely adopted technologies such as React, Node, and Express and are available. Combining the power of React with industry-tested, server-side technologies, such as Node, Express, and MongoDB, creates a diverse array of possibilities when developing real-world web applications. This book guides you through preparing the development environment for MERN stack-based web development, to creating a basic skeleton application and extending it to build four different web applications. These applications include a social media, an online marketplace, a media streaming, and a web-based game application with virtual reality features. While learning to set up the stack and developing a diverse range of applications with this book, you will grasp the inner workings of the MERN stack, extend its capabilities for complex features, and gain actionable knowledge of how to prepare MERN-based applications to meet the growing demands of real-world web applications.
Table of Contents (19 chapters)
Title Page
Copyright and Credits
Packt Upsell
Contributors
Preface
Index

Posts


The posting feature in MERN Social will allow users to share content on the MERN Social application platform and also interact with each other over the content by commenting on or liking a post:

Mongoose schema model for Post

To store each post, we will first define the Mongoose Schema in server/models/post.model.js. The Post schema will store a post's text content, a photo, a reference to the user who posted, time of creation, likes on the post from users, and comments on the post by users:

  • Post text: The text will be a required field to be provided by the user on new post creation from the view:
text: {
  type: String,
  required: 'Name is required'
}
  • Post photo: The photo will be uploaded from the user's local files during post creation, and stored in MongoDB similar to the user profile photo upload feature. The photo will be optional for each post:
photo: {
  data: Buffer,
  contentType: String
}
  • Post by: Creating a post will require a user to be signed in first, so we can store a reference...