# nswbmw/n-blog

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/nswbmw-n-blog).**

15,392 stars · 4,554 forks · JavaScript

## Links

- GitHub: https://github.com/nswbmw/N-blog
- awesome-repositories: https://awesome-repositories.com/repository/nswbmw-n-blog.md

## Topics

`blog` `course` `express` `javascript` `mongodb` `mongolass` `nodejs` `tutorial`

## Description

N-blog is a full-stack JavaScript blogging platform and content management system built with Node.js. It functions as a server-side rendered web application that renders markdown source text into HTML for publishing and displaying articles.

The system includes a markdown blogging engine that enables the creation and management of posts and user comments. It features a integrated user authentication system that handles account registration, secure sign-in, and session management to protect private routes.

The project covers broad capability areas including request routing and middleware pipelines, template-based page composition, and data persistence with cascading deletion for referential integrity. It also incorporates media handling for profile image uploads and observability tools for application logging and page view tracking.

Development automation is supported through API endpoint testing, test coverage analysis, and automatic server restarts during source file changes.

## Tags

### Content Management & Publishing

- [Content Management Systems](https://awesome-repositories.com/f/content-management-publishing/content-management-systems.md) — Provides a full platform to publish and organize articles and comments with markdown support and database persistence.
- [Markdown-First Publishing](https://awesome-repositories.com/f/content-management-publishing/blog-newsletter-publishing/blogging-platforms/markdown-first-publishing.md) — Uses a markdown-first approach to author blog content which is then rendered into HTML for display.
- [Blog Post Publishing](https://awesome-repositories.com/f/content-management-publishing/blog-post-publishing.md) — Provides full capabilities for creating, updating, and distributing individual blog entries. ([source](https://github.com/nswbmw/N-blog/blob/master/book/4.4%20%E5%8A%9F%E8%83%BD%E8%AE%BE%E8%AE%A1.md))
- [Comment Management Tools](https://awesome-repositories.com/f/content-management-publishing/comment-management-tools.md) — Implements utilities for creating and removing user comments associated with blog articles. ([source](https://github.com/nswbmw/N-blog/blob/master/book/4.4%20%E5%8A%9F%E8%83%BD%E8%AE%BE%E8%AE%A1.md))
- [Markdown Renderers](https://awesome-repositories.com/f/content-management-publishing/markdown-renderers.md) — Transforms markdown source text into HTML for displaying blog posts in list and detail views. ([source](https://github.com/nswbmw/N-blog/blob/master/book/4.9%20%E6%96%87%E7%AB%A0.md))
- [Markdown to HTML Converters](https://awesome-repositories.com/f/content-management-publishing/markdown-to-html-converters.md) — Converts structured markdown text into HTML for publishing and displaying blog posts and comments.
- [Node.js Content Management Systems](https://awesome-repositories.com/f/content-management-publishing/node-js-content-management-systems.md) — Implements a content management system built on Node.js for publishing articles and managing comments.

### Web Development

- [Full-Stack Web Applications](https://awesome-repositories.com/f/web-development/full-stack-web-applications.md) — Functions as a complete project integrating a Node.js backend with a server-rendered frontend and database.
- [Node.js Server Frameworks](https://awesome-repositories.com/f/web-development/backend-development/web-frameworks/node-js-server-frameworks.md) — Implements a server-side application using a Node.js framework to manage routing and dynamic content.
- [Routing and Request Handling](https://awesome-repositories.com/f/web-development/backend-development/web-frameworks/routing-request-handling.md) — Maps incoming HTTP requests to specific application logic using static paths and dynamic placeholders. ([source](https://github.com/nswbmw/N-blog/blob/master/book/3.2%20%E8%B7%AF%E7%94%B1.md))
- [URL Route Mapping](https://awesome-repositories.com/f/web-development/dynamic-content-resolution/url-route-mapping.md) — Matches incoming URL patterns to specific handler functions using static paths and dynamic placeholders.
- [HTML Rendering](https://awesome-repositories.com/f/web-development/html-rendering.md) — Generates dynamic HTML responses by combining data with templates. ([source](https://github.com/nswbmw/N-blog/blob/master/book/3.3%20%E6%A8%A1%E6%9D%BF%E5%BC%95%E6%93%8E.md))
- [Server-Side Rendering](https://awesome-repositories.com/f/web-development/rendering-templating/server-side-rendering.md) — Generates dynamic HTML pages on the server using templates to deliver content to the browser.
- [Request Middleware](https://awesome-repositories.com/f/web-development/request-middleware.md) — Employs a middleware pipeline to process incoming HTTP requests before they reach the final route handlers. ([source](https://github.com/nswbmw/N-blog/blob/master/book/3.4%20Express%20%E6%B5%85%E6%9E%90.md))
- [Dynamic Content Delivery](https://awesome-repositories.com/f/web-development/web-application-hosting/dynamic-content-delivery.md) — Processes server-side requests to deliver dynamic HTML content to the browser via defined routes. ([source](https://github.com/nswbmw/N-blog/blob/master/book/3.1%20%E5%88%9D%E5%A7%8B%E5%8C%96%E4%B8%80%E4%B8%AA%20Express%20%E9%A1%B9%E7%9B%AE.md))
- [Component-Based Page Layouts](https://awesome-repositories.com/f/web-development/backend-development/web-frameworks/rendering-and-layout-architectures/component-based-page-layouts.md) — Builds complex web pages by assembling reusable template fragments into final renders. ([source](https://github.com/nswbmw/N-blog/blob/master/book/4.5%20%E9%A1%B5%E9%9D%A2%E8%AE%BE%E8%AE%A1.md))

### Networking & Communication

- [Middleware-Based Request Pipelines](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/request-processing-architectures/request-processing/middleware-based-request-pipelines.md) — Implements a modular chain of pluggable components to intercept and process network requests and responses.
- [User Profile Image Uploads](https://awesome-repositories.com/f/networking-communication/telegram-bot-frameworks/profile-editing/bot-profile-links/profile-photo-uploads/user-profile-image-uploads.md) — Processes multipart form data to save profile images and associate them with user accounts. ([source](https://github.com/nswbmw/N-blog/blob/master/book/4.7%20%E6%B3%A8%E5%86%8C.md))

### Security & Cryptography

- [Session Authentication](https://awesome-repositories.com/f/security-cryptography/session-authentication.md) — Maintains user identity across requests by storing credentials and session data in a database.
- [User Access Controls](https://awesome-repositories.com/f/security-cryptography/user-access-controls.md) — Restricts access to private routes by verifying the user's authentication state. ([source](https://github.com/nswbmw/N-blog/blob/master/book/4.4%20%E5%8A%9F%E8%83%BD%E8%AE%BE%E8%AE%A1.md))
- [User Account Management](https://awesome-repositories.com/f/security-cryptography/user-account-management.md) — Manages user credentials, secure sign-in/sign-out flows, and profile-specific settings. ([source](https://github.com/nswbmw/N-blog/blob/master/book/4.4%20%E5%8A%9F%E8%83%BD%E8%AE%BE%E8%AE%A1.md))
- [User Authentication Flows](https://awesome-repositories.com/f/security-cryptography/user-authentication-flows.md) — Verifies user credentials against a database and manages the authenticated session state. ([source](https://github.com/nswbmw/N-blog/blob/master/book/4.8%20%E7%99%BB%E5%87%BA%E4%B8%8E%E7%99%BB%E5%BD%95.md))
- [User Authentication Systems](https://awesome-repositories.com/f/security-cryptography/user-authentication-systems.md) — Ships a security layer that handles user account creation, session management, and route protection.
- [User Authentication Workflows](https://awesome-repositories.com/f/security-cryptography/user-authentication-workflows.md) — Provides a complete system for user registration, secure sign-in, and session-based access control.
- [Authentication Screens](https://awesome-repositories.com/f/security-cryptography/authentication-screens.md) — Renders distinct page layouts for login, registration, and home screens based on authentication state. ([source](https://github.com/nswbmw/N-blog/blob/master/book/4.5%20%E9%A1%B5%E9%9D%A2%E8%AE%BE%E8%AE%A1.md))
- [User Session Termination](https://awesome-repositories.com/f/security-cryptography/session-management/user-session-termination.md) — Provides functionality to terminate user sessions by clearing session data and redirecting to public pages. ([source](https://github.com/nswbmw/N-blog/blob/master/book/4.8%20%E7%99%BB%E5%87%BA%E4%B8%8E%E7%99%BB%E5%BD%95.md))

### User Interface & Experience

- [Page Layout Templates](https://awesome-repositories.com/f/user-interface-experience/page-layout-templates.md) — Builds HTML responses by assembling reusable template fragments and injecting dynamic data into layouts.
- [Reusable Template Fragments](https://awesome-repositories.com/f/user-interface-experience/element-groupings/reusable-template-fragments.md) — Splits page layouts into shareable components to reduce redundancy across multiple templates. ([source](https://github.com/nswbmw/N-blog/blob/master/book/3.3%20%E6%A8%A1%E6%9D%BF%E5%BC%95%E6%93%8E.md))

### Business & Productivity Software

- [Credential Encryption](https://awesome-repositories.com/f/business-productivity-software/user-registration-systems/credential-encryption.md) — Collects user profile data and stores encrypted account information in a database during registration. ([source](https://github.com/nswbmw/N-blog/blob/master/book/4.7%20%E6%B3%A8%E5%86%8C.md))

### Data & Databases

- [Cascade Deletions](https://awesome-repositories.com/f/data-databases/entity-relationships/cascade-deletions.md) — Ensures referential integrity by automatically removing associated comments when a parent blog post is deleted.

### Development Tools & Productivity

- [Markdown Comment Rendering](https://awesome-repositories.com/f/development-tools-productivity/comment-formatting-utilities/structured-comment-management/rich-comment-content/markdown-comment-rendering.md) — Supports creating and displaying user comments using markdown formatting for rich text content. ([source](https://github.com/nswbmw/N-blog/blob/master/book/4.10%20%E7%95%99%E8%A8%80.md))

### Software Engineering & Architecture

- [Environment Variable-Based Configuration](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management/configuration-management/environment-variable-management/environment-variables/environment-variable-based-configuration.md) — Loads and merges application settings from external files based on environment variables.

### Testing & Quality Assurance

- [API Testing](https://awesome-repositories.com/f/testing-quality-assurance/api-network-testing/api-testing.md) — Validates server endpoints and business logic using automated tests to ensure reliable behavior.
