Skip to content

A complex Task Management API built with Node and Express using TypeScript. This API is designed with scalability in mind and an architecture that can leverage both serverful and serverless features using AWS.

License

Notifications You must be signed in to change notification settings

shubhojit-mitra-dev/nodejs-backend-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Node.js Scalable Backend Project

Node.js Express.js TypeScript PostgreSQL Drizzle

A comprehensive task management API built with modern technologies and following clean architecture principles for scalability, maintainability, and performance.

πŸ“‹ Table of Contents

πŸ› οΈ Tech Stack

Backend & Runtime

Node.js Express.js TypeScript TSX

Database & ORM

PostgreSQL DrizzleORM

Validation & Error Handling

Zod Winston

DevOps & Deployment

Docker Docker Compose

Code Quality

ESLint Prettier Husky

πŸ—οΈ System Architecture

Our application follows a modern cloud-native microservices architecture designed for enterprise scalability and production deployment:

System Architecture

Architecture Components

πŸ” Security & DevOps Layer

  • Azure DevOps - CI/CD pipelines with automated testing and deployment
  • ECR (Elastic Container Registry) - Docker image storage and versioning
  • AWS KMS - Secrets encryption and key management for all services
  • API Gateway - Rate limiting, request validation, and traffic management

πŸš€ Core Application Infrastructure

  • VPC Subnet - Isolated network environment for enhanced security
  • Express.js API - Main application server with TypeScript and robust middleware
  • PostgreSQL RDS - Managed database with automated backups and scaling
  • Winston Logging - Centralized logging with S3 backup synchronization

πŸ€– AI & Processing Services

  • Task Queue System - Asynchronous job processing and background tasks
  • AWS Lambda - Serverless report generation and data processing
  • Python AI (Gemini) - AI-powered insights, summaries, and analytics
  • S3 Storage - File storage for reports, images, and document management

πŸ”— External Integrations

  • Google Calendar API - Task synchronization and calendar management
  • AWS SES - Transactional emails, OTP delivery, and notifications
  • Swagger UI - Interactive API documentation and testing interface

πŸ—„οΈ Database Schema

Our application uses a comprehensive PostgreSQL schema designed for scalability and modern authentication:

erDiagram

    USERS {
        string id PK
        string name
        string email "unique"
        string password
        string role
        string profile_picture_url
        boolean google_connected
        timestamp createdAt
        timestamp updatedAt
    }

    AUTH_TOKENS {
        string id PK
        string userId FK
        text access_token
        text refresh_token
        string provider
        timestamp expiresAt
        timestamp createdAt
    }

    TASKS {
        string id PK
        string userId FK
        string title
        text description
        string status
        timestamp startTime
        timestamp endTime
        string calendar_event_id
        timestamp createdAt
        timestamp updatedAt
    }

    OTP_CODES {
        string id PK
        string userId FK
        string code
        string type
        timestamp expiresAt
        timestamp createdAt
    }

    REPORTS {
        string id PK
        string userId FK
        string title
        string s3_url
        text ai_summary
        string status
        timestamp createdAt
    }

    %% Relationships
    USERS ||--o{ AUTH_TOKENS : "has"
    USERS ||--o{ TASKS : "creates"
    USERS ||--o{ OTP_CODES : "receives"
    USERS ||--o{ REPORTS : "generates"

Loading

Key Features:

  • UUID Primary Keys for better scalability and security
  • Comprehensive User Management with role-based access control
  • OAuth Integration support for multiple providers
  • Task Management with calendar synchronization
  • Security Features including OTP verification and 2FA
  • Report System with AI-powered summaries
  • Proper Relationships with cascade delete for data integrity

πŸš€ Project Features

βœ… Implemented

  • Robust Error Handling - Custom ErrorHandler class with factory methods
  • Type-Safe Validation - Zod schemas with automatic validation
  • Enhanced AsyncHandler - Zero-boilerplate async route handling
  • Database Schema - Complete 5-table PostgreSQL schema with Drizzle ORM
  • Authentication Foundation - User registration with validation
  • Logging System - Winston logger with file rotation and console formatting
  • Code Quality - ESLint, Prettier, Husky pre-commit hooks

🚧 In Development

  • JWT Authentication - Token-based authentication system
  • OAuth Integration - Google OAuth support
  • Task Management - CRUD operations for tasks
  • OTP System - Email verification and 2FA
  • Report Generation - AI-powered report summaries
  • API Documentation - Swagger/OpenAPI integration

πŸ“‹ Planned Features

  • Calendar Integration - Google Calendar sync
  • File Upload - S3 integration for reports
  • Email Service - Transactional email system
  • Rate Limiting - API rate limiting and throttling
  • Caching - Redis caching layer
  • Testing Suite - Comprehensive unit and integration tests

πŸ‘₯ Development Team

Made with ❀️ by:

  • Shubhojit Mitra - System Architecture
  • Khushi Malik - Backend Developer
  • Utkarsh Kapoor - Backend & Database
  • Priyanshi Varshney - API Documentation & Testing
  • Nancy Gumanta - Testing & Quality Assurance

πŸ“ Project Status

Current Version: 1.0.0 (Development)
Last Updated: October 2025
License: MIT License

This project is actively under development. Setup guides, API documentation, and deployment instructions will be added once core features are completed.

About

A complex Task Management API built with Node and Express using TypeScript. This API is designed with scalability in mind and an architecture that can leverage both serverful and serverless features using AWS.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •