← Back to Projects
Full-Stack Project

Pulse — Blog & Messaging Ecosystem

Full-stack content and real-time messaging platform with layered REST API, WebSocket communication, and Docker deployment.

1. Overview & Problem Statement

Pulse was built to transition from isolated frontend and backend concepts into a unified full-stack architecture. The goal was to handle user management, relational blog data, and real-time bidirectional messaging within a single system.

2. System Architecture

Browser (Next.js App Router)

│── REST API Requests (Axios) ──► Express.js API ──► TypeORM ──► PostgreSQL

└── WebSockets (Socket.IO) ─────► Express.js Socket Server

3. Key Engineering Learnings

  • Layered backend pattern (Routes -> Controllers -> Services -> TypeORM entities).
  • Real-time event handling, room-based messaging, and active user presence with Socket.IO.
  • Basic authentication flows and password hashing with bcrypt.

4. Current Limitations & Planned Improvements

  • Authentication relies on raw password verification without JWT session tokens (Planned for V2).
  • Backend sync uses active TypeORM synchronize mode in dev (Migration system planned).
  • Refactoring hardcoded API references into robust environment configuration.