Skip to content

Eventify is a modern task & event management dashboard built with NestJS, PostgreSQL, and React. It features scheduling, task tracking, Stripe payments, and AWS S3 integration, delivering a scalable, secure, and intuitive solution for organizing events and managing workflows.

Notifications You must be signed in to change notification settings

Durbekjon/eventify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Eventify - Enterprise Task Management Platform

A production-ready, enterprise-grade task management SaaS platform built with modern backend technologies and microservices architecture.

NestJS TypeScript PostgreSQL Prisma Stripe AWS S3

πŸ—οΈ Architecture Overview

This project demonstrates enterprise-level backend architecture with a focus on scalability, security, and maintainability. Built using NestJS framework with a modular, microservices-ready design pattern.

Core Architecture Principles

  • Clean Architecture with clear separation of concerns
  • Repository Pattern for data access abstraction
  • Dependency Injection for loose coupling
  • Modular Design with feature-based organization
  • Layered Architecture (Controller β†’ Service β†’ Repository)

πŸš€ Key Features

πŸ” Enterprise Security

  • JWT Authentication with refresh token rotation
  • Role-Based Access Control (RBAC) with granular permissions
  • OTP Verification for secure user onboarding
  • Input Validation with class-validator decorators
  • Rate Limiting and API protection
  • Password Security with bcrypt hashing

πŸ’° Subscription & Payment System

  • Stripe Integration for payment processing
  • Multi-tier Subscription Plans with feature limits
  • Usage Tracking and quota management
  • Subscription Validation for feature access control
  • Payment Error Handling with proper HTTP status codes

πŸ“ Cloud Infrastructure

  • AWS S3 Integration for scalable file storage
  • Presigned URLs for secure file access
  • File Metadata Management with comprehensive tracking
  • Upload/Download Operations with error handling

πŸ”Œ Real-time Collaboration

  • WebSocket Implementation using Socket.io
  • Real-time Chat with authentication
  • User Presence Tracking and online status
  • Message Broadcasting and room management

πŸ“Š Business Intelligence

  • Comprehensive Logging and audit trails
  • Admin Dashboard with system analytics
  • Health Monitoring and performance metrics
  • User Activity Tracking and reporting

πŸ› οΈ Technology Stack

Backend Framework

  • NestJS 10.0.0 - Enterprise Node.js framework
  • TypeScript 5.1.3 - Full type safety
  • Node.js - Runtime environment

Database & ORM

  • PostgreSQL - Primary database
  • Prisma 6.13.0 - Type-safe database client
  • Database Migrations - 53+ migration files

Authentication & Security

  • Passport.js - Authentication middleware
  • JWT - JSON Web Tokens
  • bcrypt - Password hashing
  • class-validator - Input validation

External Services

  • Stripe - Payment processing
  • AWS S3 - File storage
  • Nodemailer - Email service
  • Socket.io - Real-time communication

Development Tools

  • Jest - Testing framework
  • ESLint - Code linting
  • Prettier - Code formatting
  • Swagger - API documentation

πŸ“ Project Structure

server/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ core/                    # Core services & utilities
β”‚   β”‚   β”œβ”€β”€ prisma/             # Database service
β”‚   β”‚   β”œβ”€β”€ stripe/             # Payment integration
β”‚   β”‚   β”œβ”€β”€ s3/                 # AWS S3 service
β”‚   β”‚   β”œβ”€β”€ email/              # Email service
β”‚   β”‚   └── utils/              # Utility functions
β”‚   β”œβ”€β”€ modules/                 # Feature modules
β”‚   β”‚   β”œβ”€β”€ auth/               # Authentication
β”‚   β”‚   β”œβ”€β”€ user/               # User management
β”‚   β”‚   β”œβ”€β”€ company/            # Company management
β”‚   β”‚   β”œβ”€β”€ task/               # Task management
β”‚   β”‚   β”œβ”€β”€ payment/            # Payment processing
β”‚   β”‚   β”œβ”€β”€ admin/              # Admin dashboard
β”‚   β”‚   └── chat/               # Real-time chat
β”‚   β”œβ”€β”€ guards/                  # Authentication guards
β”‚   β”œβ”€β”€ decorators/              # Custom decorators
β”‚   └── main.ts                  # Application entry point
β”œβ”€β”€ prisma/                      # Database schema & migrations
└── tests/                       # Test files

πŸ”§ Installation & Setup

Prerequisites

  • Node.js 18+
  • PostgreSQL 13+
  • Redis (optional, for caching)
  • AWS S3 bucket
  • Stripe account

Environment Variables

# Database
DATABASE_URL="postgresql://user:password@localhost:5432/eventify"

# JWT
JWT_SECRET="your-jwt-secret"
JWT_REFRESH_SECRET="your-refresh-secret"

# Stripe
STRIPE_SECRET_KEY="sk_test_..."
STRIPE_WEBHOOK_SECRET="whsec_..."

# AWS S3
S3_BUCKET_NAME="your-bucket"
S3_ACCESS_KEY_ID="your-access-key"
S3_SECRET_ACCESS_KEY="your-secret-key"
S3_BUCKET_REGION="us-east-1"

# Email
EMAIL_HOST="smtp.gmail.com"
EMAIL_USER="your-email"
EMAIL_PASSWORD="your-password"
EMAIL_FROM="noreply@eventify.com"

Installation Steps

# Clone repository
git clone https://github.com/Durbekjon/eventify
cd eventify/server

# Install dependencies
npm install

# Set up database
npx prisma migrate deploy
npx prisma generate

# Seed database (optional)
npm run seed

# Start development server
npm run dev

# Run tests
npm test

πŸš€ API Endpoints

Authentication

  • POST /api/auth/login - User login
  • POST /api/auth/register - User registration
  • POST /api/auth/refresh - Refresh token
  • POST /api/auth/restore - Password restoration

Task Management

  • GET /api/tasks - Retrieve tasks with pagination
  • POST /api/tasks - Create new task
  • PUT /api/tasks/:id - Update task
  • DELETE /api/tasks/:id - Delete task
  • POST /api/tasks/reorder - Reorder tasks

Company & Workspace

  • GET /api/companies - List companies
  • POST /api/companies - Create company
  • GET /api/workspaces - List workspaces
  • POST /api/workspaces - Create workspace

Payment & Subscriptions

  • POST /api/payment/create - Create payment intent
  • POST /api/payment/confirm - Confirm payment
  • GET /api/subscriptions - List subscriptions

πŸ§ͺ Testing Strategy

Test Coverage

  • Unit Tests: Service layer testing with Jest
  • Integration Tests: API endpoint testing
  • E2E Tests: Full application flow testing
  • Mock Strategy: Comprehensive dependency mocking

Running Tests

# Unit tests
npm test

# Watch mode
npm run test:watch

# Coverage report
npm run test:cov

# E2E tests
npm run test:e2e

πŸ“Š Performance & Scalability

Database Optimization

  • Connection Pooling for efficient database connections
  • Query Optimization with Prisma query optimization
  • Indexing Strategy for fast data retrieval
  • Transaction Management for data consistency

API Performance

  • Rate Limiting to prevent abuse
  • Response Caching for static data
  • Pagination for large datasets
  • Efficient Queries with proper includes

Scalability Features

  • Modular Architecture for horizontal scaling
  • Stateless Design for load balancing
  • External Service Integration for specialized functionality
  • Configuration Management for environment-specific settings

πŸ”’ Security Features

Authentication & Authorization

  • JWT Token Management with proper expiration
  • Role-Based Access Control with granular permissions
  • Session Management with secure token storage
  • Password Security with bcrypt hashing

Data Protection

  • Input Validation to prevent injection attacks
  • SQL Injection Prevention with Prisma ORM
  • XSS Protection with proper output encoding
  • CSRF Protection with token validation

API Security

  • Rate Limiting to prevent abuse
  • CORS Configuration for cross-origin requests
  • Request Validation with DTOs
  • Error Handling without information leakage

πŸš€ Deployment

Production Considerations

  • Environment Configuration for different deployments
  • Health Checks for monitoring
  • Logging Strategy for debugging
  • Error Monitoring for production issues

Docker Support

# Example Dockerfile
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
EXPOSE 4000
CMD ["npm", "run", "prod"]

πŸ“ˆ Monitoring & Observability

Health Checks

  • Database Connectivity monitoring
  • External Service health checks
  • Application Metrics collection
  • Performance Monitoring and alerting

Logging Strategy

  • Structured Logging with consistent format
  • Log Levels for different environments
  • Audit Trails for security compliance
  • Error Tracking for debugging

🀝 Contributing

Development Workflow

  1. Feature Branch creation
  2. Code Review process
  3. Testing requirements
  4. Documentation updates

Code Standards

  • TypeScript strict mode
  • ESLint configuration
  • Prettier formatting
  • Test Coverage requirements

πŸ“„ License

This project is proprietary software developed for demonstration purposes.

πŸ‘¨β€πŸ’» Developer Profile

Durbek Saydaliyev - Software Engineer

This project demonstrates expertise in:

  • Enterprise Architecture and system design
  • Security Implementation and best practices
  • Database Design and optimization
  • API Development and documentation
  • Payment Integration and subscription management
  • Real-time Communication and WebSocket implementation
  • Cloud Infrastructure and external service integration
  • Testing Strategies and quality assurance

Built with ❀️ using modern backend technologies and enterprise-grade architecture patterns.

About

Eventify is a modern task & event management dashboard built with NestJS, PostgreSQL, and React. It features scheduling, task tracking, Stripe payments, and AWS S3 integration, delivering a scalable, secure, and intuitive solution for organizing events and managing workflows.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published