Skip to content

PulsePoll is a lightweight, modular Node.js backend for client and polling management, built with clear separation of concerns, JSON-based persistence, and an event-driven logging architecture for maintainability and extensibility.

Notifications You must be signed in to change notification settings

prem-ramamoorthy/PulsePoll

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PulsePoll Backend

PulsePoll is a lightweight, modular Node.js backend designed for client and polling management. It follows a clear separation of concerns, uses JSON-based persistence, and is structured for readability, maintainability, and extensibility. The system incorporates an event-driven logging mechanism to ensure consistent, centralized tracking of application behavior.

Features

  • Modular HTTP routing with verb-specific handlers
  • Centralized business logic via service layer
  • JSON-based persistent storage (no database required)
  • Input validation for all client operations
  • Event-driven hooks using a custom event system
  • Standardized API responses
  • Centralized logging utility
  • Environment-based configuration support

Project Structure

src/
├── config/          # Environment and configuration management
├── constants/       # Shared constants and symbols
├── events/          # Custom event logic
├── http/
│   ├── handlers/    # HTTP verb-specific request handlers
│   └── router.js    # Central routing logic
├── services/        # Business logic and response formatting
├── store/
│   └── clients.json # JSON-based persistent data store
├── utils/           # Logging and helper utilities
├── validators/      # Input validation for client operations
└── server.js        # Application entry point

Architecture Overview

HTTP Layer

Responsible only for request parsing and response dispatching. Each HTTP method has a dedicated handler.

Service Layer

Encapsulates all business logic, including client creation, updates, deletion, and retrieval. HTTP handlers delegate processing to services.

Validation Layer

All incoming requests are validated before execution using dedicated validator modules.

Storage Layer

Client data is stored and managed in a local JSON file. No external database is used.

Event System

Custom events are handled through Eventmaker.js, enabling extensible hooks such as logging and notifications.

About

PulsePoll is a lightweight, modular Node.js backend for client and polling management, built with clear separation of concerns, JSON-based persistence, and an event-driven logging architecture for maintainability and extensibility.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published