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.