This is a MERN stack based fully functioning blog system, which supports features of signing up, signing up, making authenticated requests, updating profile, changing password, publishing/editing/deleting blog post, making comments, etc.
Live App: https://www.haichaoy.com/
- The front-end client is built as a simple-page-application using React and Redux (for middlewares and reducers).
- React-Router is used for navigation.
- Redux-Thunk is used for processing asynchronous requests.
- Bootstrap 4 is used for page styling.
- The back-end server is built with Express.js and Node.js in MVC pattern, which provides completed REST APIs for data interaction.
- Passport.js is used as an authentication middleware in the sever.
- JSON Web Token (JWT) is used for signing in user and making authenticated requests.
- MongoDB is used as the back-end database, which include different data models/schemas (i.e., User, Post and Comment).
- Mongoose is used to access the MongoDB for CRUD actions (create, read, update and delete).
Running locally you need 3 terminals open: one for client, one for server, and another one for MongoDB back-end. Below are the steps:
- Install Node.js;
- Install MongoDB;
git clone https://github.com/haichao-yu/react-redux-blog.git
;- Go to directory
client
, and runnpm install
; - Go to directory
server
, and runnpm install
; - In one terminal, run
mongod
; - In
server
directory, runnpm run dev
; - In
client
directory, runnpm run start
;
Then you are all set. You can go to http://localhost:3000/
to check you live application.
Please refer to this link.
Server npm run dev Client npm run start DB docker pull mongo docker run -d -p 27017-27019:27017-27019 --name mongodb mongo:4.0.4