Skip to content

junaidatique/nestjs-blog-project

Repository files navigation

Blog Engine (WIP)

This example Blog engine implements the following functionality

User Authentication and Authorization:

  • Secure user authentication and authorization for all actions.

User Roles:

  • Admin: Has full access to all features, including managing users, posts, categories, and tags.
  • Author: Can create, edit, and delete their own blog posts. Can view and manage their own comments.
  • Moderator: Can manage comments across all blog posts. Can edit or delete inappropriate comments.
  • Registered User: Can view and comment on blog posts.
  • Guest: Can view blog posts but cannot comment without registering.

Blog Post Management:

  • Create a new blog post with a title, content, and optional featured image.
  • Edit existing blog posts, including modifying content, title, featured image, categories, and tags.
  • Delete blog posts, with appropriate confirmation prompts and permissions.
  • View a list of all blog posts with pagination support.
  • Filter blog posts by categories and tags.

Image Upload:

  • Users, especially authors, should be able to upload images to be used in their blog posts.
  • Implement a feature to attach images directly within the blog post editor.
  • Support common image formats (e.g., JPEG, PNG, GIF).
  • Validate and sanitize uploaded images to prevent security vulnerabilities.

Amazon S3 Integration:

  • Integrate the application with Amazon S3 for storing and serving uploaded images.
  • Utilize appropriate AWS SDKs or libraries for Node.js to interact with S3.
  • Store images in a secure and well-organized structure within the S3 bucket.

Image Management:

  • Allow users to view and manage their uploaded images.
  • Provide options to delete or replace images attached to a blog post.
  • Implement image resizing and optimization to ensure optimal performance.

Image Thumbnails:

  • Generate and store thumbnails for uploaded images to improve page loading times.
  • Use the thumbnails for image previews in the blog post editor.

Image Embedding in Blog Posts:

  • Allow authors to embed uploaded images directly within their blog posts.
  • Provide an intuitive way for authors to insert images into the post content.

Image Metadata:

  • Store relevant metadata for each uploaded image, such as upload date, owner, and usage in blog posts.
  • Display image metadata to users in the image management interface.

User Permissions for Image Management:

  • Set permissions to control who can manage and delete images, especially for images attached to blog posts.

Quota and Usage Tracking:

  • Implement a system to track and manage user quotas for image storage.
  • Notify users when they approach or exceed their allocated storage limits.

Categories and Tags:

  • Create, edit, and delete blog categories.
  • Assign one or more categories to each blog post.
  • Create, edit, and delete tags.
  • Assign multiple tags to each blog post.

User Comments:

  • Allow registered users and guests to leave comments on blog posts.
  • Users can edit and delete their own comments.
  • Moderators can edit and delete any comments.
  • Implement a spam filter or moderation system to prevent inappropriate comments.

User Profiles:

  • Registered users have profiles displaying their username, profile picture, and a list of their authored blog posts.
  • Admins can view and manage user profiles.

Search Functionality:

  • Implement a search feature to find blog posts based on keywords, categories, tags, or author names.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published