Penman is a site to create, read, update and delete blogs. It allows the users to express their thoughts and post it. This project is done as part of my React full stack learning curve.

The art of writing is the art of discovering what you believe

Technology Stack :

React, Nodejs, Expressjs, MySQL, Sequelize 

State Management :

UseContext Hook

Features :

  • Writer can create the blog with two options,
    • Text Editor
    • Markdown Editor
  • Seperate public profile page for each user along with their posted blogs.
  • User can see the posts liked by them in a seperate page.
  • Authentication is implemented with bcrypt, json web token and sessionStorage.
  • Additionally, Like and Comment sections are provided.

Working of this project :

  • Clone this repository in your local machine

    git clone
  • Open two terminals each for client and the server in your code editor (Example : VS Code)

  • Set up Nodejs , Expressjs and mysql in server

      npm install
      npm install express 
      npm install cors
      npm install mysql2
      npm install sequelize sequelize-cli
      npx sequelize init
  • Start the client

     npm start
  • Start the server

     npm start

Setting up the database :

  • Create a new schema in MySQL Workbench
  • Change the username, password and database name in config.json in server

  "development": {
    "username": "username",
    "password": "password",
    "database": "schemaName",
    "host": "",
    "dialect": "mysql"
  • All the required tables will be automatically created by the sequelize orm.

Images :

Home page
Text Editor
Markdown Editor
View Post


View Github