Skip to content

guilmola724/finalGoal

 
 

Repository files navigation

Blog Website Project

Overall Requirements

  • There are three user roles. Admin, managers, users. And also there are guests who are not logged in.
  • Admin can manage everything – users, articles and categories.
  • Managers can only manage articles.
  • Admin, managers can do whatever user does.
  • Guest can view only few articles.
  • All users can view articles
  • There should be CRUD APIs for all.
  • /articles/home API should return articles for the categories and users they have followed, for guest users, they should return latest 5 articles. If user doesn’t have any follows, it should return latest 5 articles.
  • GET /articles API should support sort by latest, number of comments, and number of favorites, search by title.

User

  • User has a username, name, bio, profile photo. Username should be unique. It should only contain English lowercase letters, numbers, underscore.
  • Create a separate endpoint for uploading profile photo.
  • On register page, user has to provide username, name and password. Profile photo optional.
  • On profile page, user can update name, bio, profile photo.
  • In change password page, they can change their password.
  • Users can post new articles
  • Users can follow categories, or they can also follow other users.
  • User should be able to see his followers.

Categories

  • Admin can create category. Category doesn’t have a tree structure.
  • Category has only a title.

Article

  • Article has title, category, a list of tags, content
  • Users can create a new blog and publish immediately, or they can mark them as draft and publish later.

Comment

  • User can comment on an article.

Favorite

  • User can like an article.

Notification

  • When a user favorite an article, the author of the article should get a notification. The notification should look like this. “Smith liked your article – title of article”
  • When a user comment on an article, the author of the article should get notification “Smith commented on your article.”
  • When someone write comment and mention some user, the user should get notification as well. “Smith mentioned you on his comment”
  • When a user log in, he should be able to see the notifications.
  • When the user click on specific notification, it should redirect to the article page.

Delete Article, Category, User all should be done with soft delete

How to run this project?

  • Clone Repository

    git clone https://github.com/Finalgoal231/finalGoal.git
    cd finalgoal
    
  • Install node_modules

    npm install
    
  • Run frontend and backend concurrently

    npm run dev
    

Contributor

About

This is about article management system

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 98.7%
  • Other 1.3%