Skip to content

rezamirzapour/Virgool

Repository files navigation

Virgool

A Fullstack Typescript Project

using Nestjs as backend, Reactjs as frontend of the panel, and Nextjs as frontend of the site.

I want to focus on typescript language. so I decided to start a new project to improve my typescript knowledge. I will work on this project when my time be free.

Backend:

cd .\backend-nestjs\

Change .env content. then run these commands

npm install
npm run start:dev

Navigate to localhost:8000

Frontend (Panel):

cd .\frontend-panel-reactjs\
npm install
npm start

Navigate to localhost:3000

Frontend (Site):

cd .\frontend-site-nextjs\
npm install
npm run dev

Navigate to localhost:3001

Backend Features

Auth

  • Register
  • Login
  • Login via google

Articles

  • Create a article by users
  • Get the articles list
  • Get an article
  • Update an article by its owner or admins
  • Delete an article by its owner or admins
  • Search & filter the articles list
  • Like an article by users
  • Bookmark an article

Categories

  • Create a category by admins
  • Get a category
  • Get the categories list
  • Update a category by admins
  • Delete a category by admins
  • Search & filter the categories list

Comments

  • Create comment by users on an article
  • Reply to comments by users
  • Like comments by users
  • Update a comment by its owner
  • Delete a comment by its owner
  • Get comments lists
  • Get comments lists of an article
  • Search & filter the comments list

Roles

  • Create role by admins
  • Get roles list
  • Get a role
  • Update a role by admins
  • Delete a role by admins
  • Assign a role to a user
  • Assign permissions to a role

Permissions

  • Create permission by admins
  • Get permissions list
  • Get a permission
  • Update a permission by admins
  • Delete a permission by admins
  • Assign a permission to a role

Me

  • Get profile
  • Update profile by it's owner or admins
  • Get followers list
  • Get followings list
  • Follow a user
  • Unfollow a followed user
  • Get bookmarked articles list
  • Get liked articles list