Skip to content

Latest commit

 

History

History
211 lines (158 loc) · 7.59 KB

File metadata and controls

211 lines (158 loc) · 7.59 KB

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.