A production-ready, enterprise-grade task management SaaS platform built with modern backend technologies and microservices architecture.
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.
- 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)
- 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
- 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
- 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
- WebSocket Implementation using Socket.io
- Real-time Chat with authentication
- User Presence Tracking and online status
- Message Broadcasting and room management
- Comprehensive Logging and audit trails
- Admin Dashboard with system analytics
- Health Monitoring and performance metrics
- User Activity Tracking and reporting
- NestJS 10.0.0 - Enterprise Node.js framework
- TypeScript 5.1.3 - Full type safety
- Node.js - Runtime environment
- PostgreSQL - Primary database
- Prisma 6.13.0 - Type-safe database client
- Database Migrations - 53+ migration files
- Passport.js - Authentication middleware
- JWT - JSON Web Tokens
- bcrypt - Password hashing
- class-validator - Input validation
- Stripe - Payment processing
- AWS S3 - File storage
- Nodemailer - Email service
- Socket.io - Real-time communication
- Jest - Testing framework
- ESLint - Code linting
- Prettier - Code formatting
- Swagger - API documentation
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
- Node.js 18+
- PostgreSQL 13+
- Redis (optional, for caching)
- AWS S3 bucket
- Stripe account
# 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"# 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 testPOST /api/auth/login- User loginPOST /api/auth/register- User registrationPOST /api/auth/refresh- Refresh tokenPOST /api/auth/restore- Password restoration
GET /api/tasks- Retrieve tasks with paginationPOST /api/tasks- Create new taskPUT /api/tasks/:id- Update taskDELETE /api/tasks/:id- Delete taskPOST /api/tasks/reorder- Reorder tasks
GET /api/companies- List companiesPOST /api/companies- Create companyGET /api/workspaces- List workspacesPOST /api/workspaces- Create workspace
POST /api/payment/create- Create payment intentPOST /api/payment/confirm- Confirm paymentGET /api/subscriptions- List subscriptions
- Unit Tests: Service layer testing with Jest
- Integration Tests: API endpoint testing
- E2E Tests: Full application flow testing
- Mock Strategy: Comprehensive dependency mocking
# Unit tests
npm test
# Watch mode
npm run test:watch
# Coverage report
npm run test:cov
# E2E tests
npm run test:e2e- Connection Pooling for efficient database connections
- Query Optimization with Prisma query optimization
- Indexing Strategy for fast data retrieval
- Transaction Management for data consistency
- Rate Limiting to prevent abuse
- Response Caching for static data
- Pagination for large datasets
- Efficient Queries with proper includes
- Modular Architecture for horizontal scaling
- Stateless Design for load balancing
- External Service Integration for specialized functionality
- Configuration Management for environment-specific settings
- JWT Token Management with proper expiration
- Role-Based Access Control with granular permissions
- Session Management with secure token storage
- Password Security with bcrypt hashing
- Input Validation to prevent injection attacks
- SQL Injection Prevention with Prisma ORM
- XSS Protection with proper output encoding
- CSRF Protection with token validation
- Rate Limiting to prevent abuse
- CORS Configuration for cross-origin requests
- Request Validation with DTOs
- Error Handling without information leakage
- Environment Configuration for different deployments
- Health Checks for monitoring
- Logging Strategy for debugging
- Error Monitoring for production issues
# 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"]- Database Connectivity monitoring
- External Service health checks
- Application Metrics collection
- Performance Monitoring and alerting
- Structured Logging with consistent format
- Log Levels for different environments
- Audit Trails for security compliance
- Error Tracking for debugging
- Feature Branch creation
- Code Review process
- Testing requirements
- Documentation updates
- TypeScript strict mode
- ESLint configuration
- Prettier formatting
- Test Coverage requirements
This project is proprietary software developed for demonstration purposes.
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.