{"id":31744787,"url":"https://github.com/farab-hussain/nathan-backend","last_synced_at":"2026-05-06T03:34:24.053Z","repository":{"id":314006926,"uuid":"1026194086","full_name":"Farab-Hussain/Nathan-backend","owner":"Farab-Hussain","description":"Backend: Express + Prisma e-commerce API providing JWT cookie auth, products with flavors, carts, orders, 3-pack bundles, uploads, and admin endpoints.","archived":false,"fork":false,"pushed_at":"2025-10-07T14:38:09.000Z","size":873,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-07T15:25:44.750Z","etag":null,"topics":["authentication-backend","cors","ecommerce-backend","express-js","inventory","jwt","multer-fileupload","node-js","nodemailer","orders","postgresql","prisma","products","rest-api"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Farab-Hussain.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-25T13:17:24.000Z","updated_at":"2025-10-07T14:38:12.000Z","dependencies_parsed_at":"2025-09-10T02:54:14.883Z","dependency_job_id":"53e8830e-10ef-4c29-8f13-3bbd5cc042cc","html_url":"https://github.com/Farab-Hussain/Nathan-backend","commit_stats":null,"previous_names":["farab-hussain/nathan-backend"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Farab-Hussain/Nathan-backend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Farab-Hussain%2FNathan-backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Farab-Hussain%2FNathan-backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Farab-Hussain%2FNathan-backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Farab-Hussain%2FNathan-backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Farab-Hussain","download_url":"https://codeload.github.com/Farab-Hussain/Nathan-backend/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Farab-Hussain%2FNathan-backend/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32677930,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T02:33:58.958Z","status":"ssl_error","status_checked_at":"2026-05-06T02:33:39.611Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["authentication-backend","cors","ecommerce-backend","express-js","inventory","jwt","multer-fileupload","node-js","nodemailer","orders","postgresql","prisma","products","rest-api"],"created_at":"2025-10-09T12:18:27.074Z","updated_at":"2026-05-06T03:34:24.025Z","avatar_url":"https://github.com/Farab-Hussain.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nathan Backend – Comprehensive Candy E‑commerce API (Express \u0026 Prisma)\n\nNathan Backend powers a modern candy e‑commerce platform with secure authentication, rich product modeling (including flavors and bundles), carts, orders, inventory checks, and an administrative surface for operations. Built on Express 5 and Prisma/PostgreSQL, the API emphasizes correctness, security, maintainability, and production readiness.\n\n---\n\n## Table of Contents\n\n- Overview \u0026 Vision\n- Core Domains \u0026 Features\n- Architecture \u0026 Technology Stack\n- Project Structure\n- Environment \u0026 Configuration\n- Local Development\n- Database \u0026 Migrations\n- API Reference (High‑level)\n- Authentication \u0026 Cookies\n- File Uploads \u0026 Static Assets\n- Admin \u0026 Operations\n- Observability \u0026 Logging\n- Security Best Practices\n- Performance \u0026 Scalability\n- Deployment Guide\n- Reverse Proxy \u0026 Networking\n- Troubleshooting \u0026 FAQ\n- Roadmap: Affiliate System\n- Roadmap: Mobile Applications\n- Contributing\n- License\n\n---\n\n## Overview \u0026 Vision\n\nThe backend is designed to:\n\n- Provide a robust, secure, and extensible foundation for an online candy store\n- Model real business requirements: product flavors, 3‑pack recipes, inventory availability\n- Support administrative workflows: product CRUD, order lifecycle, inventory management\n- Scale operationally with migrations, logging, and sensible defaults\n- Handle high-volume traffic with automated order verification and fraud detection\n\n---\n\n## Core Domains \u0026 Features\n\n### User Management:\n\n- **Registration \u0026 Authentication**: Secure user registration with email verification\n- **Password Reset**: 6-digit code-based password reset system\n- **Role-based Access**: User and admin role separation\n- **Session Management**: JWT-based authentication with HTTP-only cookies\n\n### Product Management:\n\n- **Product CRUD**: Complete product lifecycle management\n- **Flavor Integration**: Product-flavor relationships via `ProductFlavor` joins\n- **Category Management**: Dynamic category creation and management\n- **Image Upload**: Secure file upload with validation and storage\n- **SKU Generation**: Automatic SKU generation for products\n- **Bulk Operations**: Mass product updates and batch processing\n\n### Order Management:\n\n- **Order Creation**: From cart or direct payload with inventory validation\n- **Order Tracking**: Complete order lifecycle with status updates\n- **Payment Integration**: Stripe payment processing with webhook handling\n- **Retry Payments**: Failed payment retry functionality\n- **Bulk Operations**: Mass order status updates and batch processing\n\n### 3-Pack System:\n\n- **Pack Recipes**: Predefined 3-pack combinations\n- **Custom Packs**: User-created 3-pack combinations\n- **Inventory Integration**: Real-time availability checks\n- **SKU Generation**: Automatic SKU generation for packs\n\n### Inventory Management:\n\n- **Real-time Tracking**: Live inventory updates with stock decrements\n- **Low Stock Alerts**: Automated alerts for inventory management\n- **Bulk Updates**: Mass inventory adjustments with validation\n- **Safety Stock**: Configurable safety stock levels\n\n### Analytics \u0026 Monitoring:\n\n- **Real-time Metrics**: Live order tracking and revenue monitoring\n- **Risk Analytics**: Automated fraud detection and risk scoring\n- **Performance Metrics**: Conversion rates, AOV, and traffic analysis\n- **Automated Verification**: AI-powered order verification system\n\n---\n\n## Architecture \u0026 Technology Stack\n\n- **Runtime**: Node.js with Express 5\n- **Database**: PostgreSQL with Prisma ORM\n- **Authentication**: JWT with HTTP-only cookies\n- **Email**: Nodemailer (Gmail or Ethereal fallback)\n- **File Uploads**: Multer with size/type validation\n- **Payments**: Stripe integration with webhook handling\n- **Logging**: Custom logger utility with structured logging\n- **Build**: TypeScript compilation with SWC\n\n---\n\n## Project Structure\n\n```\nsrc/\n  controller/               # business logic per domain\n    - adminController.ts    # admin operations (products, flavors, inventory)\n    - analyticsController.ts # analytics and monitoring\n    - orderController.ts    # order management and verification\n    - orderVerificationService.ts # automated order verification\n    - threePackCartController.ts # 3-pack cart operations\n  middlewares/              # auth/admin/upload middlewares\n    - auth.middleware.ts    # authentication middleware\n    - admin.middleware.ts   # admin role verification\n    - upload.middleware.ts  # file upload handling\n  routes/                   # express routers by domain\n    - admin.routes.ts       # admin endpoints\n    - analytics.routes.ts   # analytics endpoints\n    - auth.routes.ts        # authentication endpoints\n    - order.routes.ts       # order management endpoints\n    - payments.routes.ts    # payment processing endpoints\n  services/                 # business logic services\n    - orderVerificationService.ts # automated order verification\n  utils/                    # utilities (jwt, mailer, logger)\n    - jwt.ts               # JWT token management\n    - mailer.ts            # email sending utilities\n    - logger.ts            # logging utilities\n  server.ts                 # app initialization and configuration\nprisma/\n  schema.prisma             # database schema definition\n  migrations/               # migration history\nuploads/                    # local file storage (images)\n  flavors/                  # flavor images\n  products/                 # product images\n```\n\n---\n\n## Environment \u0026 Configuration\n\n### Required Environment Variables:\n\n```env\n# Server Configuration\nPORT=4000\nNODE_ENV=production\n\n# Database\nDATABASE_URL=postgresql://user:pass@host:5432/db?sslmode=require\n\n# Authentication\nJWT_SECRET=your_long_random_jwt_secret_key\nCLIENT_URL=https://app.example.com\n\n# Email Configuration\nEMAIL_USER=your@gmail.com\nEMAIL_PASS=your_app_password\n\n# Stripe Configuration\nSTRIPE_SECRET_KEY=sk_test_...\nSTRIPE_WEBHOOK_SECRET=whsec_...\n\n# File Upload\nMAX_FILE_SIZE=20971520  # 20MB in bytes\n```\n\n### Configuration Notes:\n\n- **Database**: Neon/managed Postgres typically requires `?sslmode=require`\n- **Email**: If credentials are missing, system falls back to Ethereal in development\n- **Stripe**: Webhook secret is required for payment verification\n- **File Upload**: Configurable file size limits and type validation\n\n---\n\n## Local Development\n\n### Prerequisites:\n\n- Node.js 18+\n- PostgreSQL database\n- npm or yarn package manager\n\n### Setup:\n\n```bash\n# Install dependencies\nnpm ci\n\n# Generate Prisma client\nnpm run prisma:generate\n\n# Run database migrations\nnpm run prisma:migrate:dev\n\n# Start development server\nnpm run dev\n\n# Build for production\nnpm run build\n\n# Start production server\nnpm run start\n```\n\n### Development Features:\n\n- **Hot Reload**: Automatic server restart on file changes\n- **Database Studio**: Prisma Studio for database management\n- **Type Checking**: Real-time TypeScript validation\n- **Error Handling**: Detailed error messages and stack traces\n\n---\n\n## Database \u0026 Migrations\n\n### Schema Overview:\n\n```prisma\n// Core entities\nmodel User {\n  id        String   @id @default(cuid())\n  email     String   @unique\n  password  String\n  role      Role     @default(USER)\n  // ... other fields\n}\n\nmodel Product {\n  id          String   @id @default(cuid())\n  name        String\n  price       Float\n  category    String\n  imageUrl    String?\n  isActive    Boolean  @default(true)\n  // ... other fields\n}\n\nmodel Order {\n  id            String        @id @default(cuid())\n  userId        String\n  total         Float\n  status        OrderStatus   @default(PENDING)\n  paymentStatus PaymentStatus @default(PENDING)\n  // ... other fields\n}\n\nmodel Flavor {\n  id        String   @id @default(cuid())\n  name      String   @unique\n  aliases   String[]\n  active    Boolean  @default(true)\n  imageUrl  String?\n  // ... other fields\n}\n```\n\n### Migration Commands:\n\n```bash\n# Create new migration\nnpx prisma migrate dev --name migration_name\n\n# Deploy migrations\nnpx prisma migrate deploy\n\n# Reset database\nnpx prisma migrate reset\n\n# Generate Prisma client\nnpx prisma generate\n```\n\n---\n\n## API Reference\n\n### Authentication Endpoints:\n\n- `POST /auth/register` - User registration\n- `POST /auth/login` - User login\n- `POST /auth/forgot-password` - Password reset request\n- `POST /auth/reset-password` - Password reset with code\n- `POST /auth/logout` - User logout\n- `GET /auth/me` - Get current user info\n\n### Product Endpoints:\n\n- `GET /products` - Public product catalog\n- `GET /products/:id` - Product details\n- `GET /products/categories` - Available categories\n- `GET /products/admin/all` - Admin product list (paginated)\n- `POST /products/admin/products` - Create product\n- `PUT /products/admin/:id` - Update product\n- `DELETE /products/admin/:id` - Delete product\n\n### Order Endpoints:\n\n- `POST /orders` - Create order\n- `GET /orders` - User orders (paginated)\n- `GET /orders/:id` - Order details\n- `PUT /orders/:id/status` - Update order status\n- `GET /orders/admin/all` - Admin order list (paginated)\n- `PUT /orders/admin/bulk-update` - Bulk order updates\n\n### Payment Endpoints:\n\n- `POST /payments/create-checkout-session` - Create Stripe checkout\n- `POST /payments/retry-payment` - Retry failed payment\n- `POST /payments/webhook` - Stripe webhook handler\n\n### Admin Endpoints:\n\n- `GET /admin/flavors` - Flavor management\n- `POST /admin/flavors` - Create flavor\n- `PUT /admin/flavors/:id` - Update flavor\n- `DELETE /admin/flavors/:id` - Delete flavor\n- `PUT /admin/flavors/bulk-update-images` - Bulk image updates\n- `POST /admin/flavors/cleanup-images` - Cleanup orphaned images\n- `GET /admin/inventory/alerts` - Low stock alerts\n- `PUT /admin/inventory/:flavorId` - Update inventory\n- `GET /admin/config` - System configuration\n\n### Analytics Endpoints:\n\n- `GET /analytics/dashboard` - Real-time analytics dashboard\n\n### 3-Pack Endpoints:\n\n- `GET /3pack/product` - 3-pack variants\n- `GET /3pack/inventory/availability` - Availability checks\n- `POST /3pack/cart/add` - Add to 3-pack cart\n- `GET /3pack/cart` - Get 3-pack cart\n- `PUT /3pack/cart/:id` - Update 3-pack cart item\n- `DELETE /3pack/cart/:id` - Remove from 3-pack cart\n- `DELETE /3pack/cart` - Clear 3-pack cart\n\n---\n\n## Authentication \u0026 Cookies\n\n### JWT Implementation:\n\n- **Token Storage**: HTTP-only cookies for security\n- **Token Expiry**: Configurable expiration times\n- **Refresh Logic**: Automatic token refresh mechanism\n- **Role-based Access**: User and admin role separation\n\n### Security Features:\n\n- **Secure Cookies**: `secure: true`, `sameSite: lax` in production\n- **CORS Protection**: Strict origin validation\n- **Rate Limiting**: Protection against brute force attacks\n- **Input Validation**: Comprehensive input sanitization\n\n---\n\n## File Uploads \u0026 Static Assets\n\n### Upload Configuration:\n\n- **Multer Integration**: File upload handling with validation\n- **File Types**: Image files only (JPEG, PNG, WebP)\n- **Size Limits**: Configurable file size limits (default: 20MB)\n- **Storage**: Local filesystem with organized directory structure\n\n### File Organization:\n\n```\nuploads/\n  flavors/          # Flavor images\n  products/         # Product images\n  temp/            # Temporary uploads\n```\n\n### Security Measures:\n\n- **MIME Type Validation**: Strict file type checking\n- **File Size Limits**: Prevent large file uploads\n- **Directory Traversal Protection**: Secure file paths\n- **Virus Scanning**: Integration points for antivirus scanning\n\n---\n\n## Admin \u0026 Operations\n\n### Product Management:\n\n- **CRUD Operations**: Complete product lifecycle management\n- **Image Management**: Upload, update, and delete product images\n- **Flavor Integration**: Product-flavor relationship management\n- **Bulk Operations**: Mass product updates and batch processing\n- **Search \u0026 Filter**: Advanced filtering and search capabilities\n\n### Inventory Management:\n\n- **Real-time Tracking**: Live inventory updates\n- **Low Stock Alerts**: Automated alert system\n- **Bulk Updates**: Mass inventory adjustments\n- **Safety Stock**: Configurable safety stock levels\n\n### Order Management:\n\n- **Order Processing**: Complete order lifecycle management\n- **Payment Integration**: Stripe payment processing\n- **Status Updates**: Order status management\n- **Bulk Operations**: Mass order updates\n\n### Analytics \u0026 Monitoring:\n\n- **Real-time Metrics**: Live performance monitoring\n- **Risk Assessment**: Automated fraud detection\n- **Performance Analytics**: Conversion and revenue tracking\n- **Automated Verification**: AI-powered order verification\n\n---\n\n## Observability \u0026 Logging\n\n### Logging System:\n\n- **Structured Logging**: JSON-formatted log entries\n- **Log Levels**: Debug, info, warn, error levels\n- **Request Tracking**: Unique request IDs for tracing\n- **Error Tracking**: Comprehensive error logging\n\n### Monitoring Integration:\n\n- **Health Checks**: Endpoint health monitoring\n- **Performance Metrics**: Response time tracking\n- **Error Rates**: Error rate monitoring\n- **Resource Usage**: Memory and CPU monitoring\n\n### Recommended Integrations:\n\n- **Sentry**: Error tracking and performance monitoring\n- **PM2**: Process management and monitoring\n- **Log Aggregation**: ELK stack or similar for log analysis\n\n---\n\n## Security Best Practices\n\n### Implementation:\n\n- **JWT Security**: Strong secrets with regular rotation\n- **CORS Configuration**: Strict origin validation\n- **Input Validation**: Comprehensive input sanitization\n- **SQL Injection Prevention**: Prisma ORM protection\n- **XSS Protection**: Output encoding and sanitization\n\n### File Upload Security:\n\n- **MIME Type Validation**: Strict file type checking\n- **File Size Limits**: Prevent large file uploads\n- **Virus Scanning**: Integration points for antivirus\n- **Directory Traversal Protection**: Secure file paths\n\n### API Security:\n\n- **Rate Limiting**: Protection against abuse\n- **Authentication**: JWT-based authentication\n- **Authorization**: Role-based access control\n- **HTTPS Enforcement**: Required for production\n\n---\n\n## Performance \u0026 Scalability\n\n### Database Optimization:\n\n- **Indexing**: Strategic database indices for performance\n- **Query Optimization**: Efficient Prisma queries\n- **Connection Pooling**: Database connection management\n- **Caching**: Redis integration for hot data\n\n### API Performance:\n\n- **Pagination**: Server-side pagination for large datasets\n- **Compression**: Gzip compression for responses\n- **Caching**: Response caching for static data\n- **Load Balancing**: Horizontal scaling support\n\n### Scalability Features:\n\n- **Stateless Design**: Horizontal scaling capability\n- **Microservices Ready**: Modular architecture\n- **Queue Integration**: Background job processing\n- **CDN Integration**: Global content delivery\n\n---\n\n## Deployment Guide\n\n### Production Setup:\n\n```bash\n# Install dependencies\nnpm ci\n\n# Build application\nnpm run build\n\n# Run database migrations\nnpx prisma migrate deploy\n\n# Start with PM2\npm2 start dist/src/server.js --name nathan-api\n\n# Save PM2 configuration\npm2 save\npm2 startup\n```\n\n### Environment Configuration:\n\n- **Production Environment**: Set `NODE_ENV=production`\n- **Database**: Use production PostgreSQL instance\n- **Secrets**: Use strong, unique secrets for production\n- **HTTPS**: Enable HTTPS for secure cookie transmission\n\n### Reverse Proxy (Nginx):\n\n```nginx\nserver {\n    listen 443 ssl http2;\n    server_name api.example.com;\n\n    ssl_certificate /path/to/cert.pem;\n    ssl_certificate_key /path/to/key.pem;\n\n    location / {\n        proxy_pass http://localhost:4000;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n    }\n\n    location /uploads/ {\n        alias /path/to/uploads/;\n        expires 1y;\n        add_header Cache-Control \"public, immutable\";\n    }\n}\n```\n\n---\n\n## Reverse Proxy \u0026 Networking\n\n### Configuration:\n\n- **TLS Termination**: SSL/TLS handling at proxy level\n- **HTTP/2 Support**: Modern protocol support\n- **Compression**: Gzip/Brotli compression\n- **Static Assets**: Direct serving of uploads\n\n### Best Practices:\n\n- **Same-origin Cookies**: Proxy API under `/api` path\n- **CORS Headers**: Proper CORS configuration\n- **Security Headers**: Security header implementation\n- **Rate Limiting**: API rate limiting at proxy level\n\n---\n\n## Recent Updates \u0026 New Features\n\n### Version 2.0 Features (Latest):\n\n- **Stripe Payment Integration**: Complete payment processing with webhooks\n- **Automated Order Verification**: AI-powered fraud detection and risk scoring\n- **Advanced Analytics**: Real-time metrics and performance monitoring\n- **Bulk Operations**: Mass updates for products, orders, and inventory\n- **Image Management**: Advanced image upload with deduplication and cleanup\n- **Enhanced Admin Dashboard**: Improved product and order management\n- **Retry Payment System**: Failed payment retry functionality\n- **Webhook Handling**: Secure Stripe webhook processing\n- **Performance Optimizations**: Improved query performance and caching\n- **Security Enhancements**: Enhanced authentication and authorization\n\n### Technical Improvements:\n\n- **TypeScript Strict Mode**: Enhanced type safety\n- **Code Refactoring**: Reduced cognitive complexity\n- **Error Handling**: Comprehensive error boundaries and recovery\n- **Database Optimization**: Improved query performance\n- **Build Optimization**: SWC integration for faster builds\n- **Image Deduplication**: Automatic cleanup of orphaned images\n- **Cache Busting**: Improved image caching strategies\n\n---\n\n## Troubleshooting \u0026 FAQ\n\n### Common Issues:\n\n#### Database Connection:\n\n- **P1001 Error**: Verify `DATABASE_URL`, credentials, and SSL mode\n- **Migration Failures**: Check database permissions and connection\n- **Connection Timeouts**: Verify network connectivity and firewall settings\n\n#### Authentication:\n\n- **JWT Errors**: Verify `JWT_SECRET` is set and consistent\n- **Cookie Issues**: Check CORS configuration and HTTPS settings\n- **Session Expiry**: Verify token expiration settings\n\n#### File Uploads:\n\n- **Upload Failures**: Check file size limits and MIME type validation\n- **Image Processing**: Verify Multer configuration and file permissions\n- **Storage Issues**: Check disk space and directory permissions\n\n#### Payment Processing:\n\n- **Stripe Errors**: Verify API keys and webhook configuration\n- **Webhook Failures**: Check webhook secret and endpoint configuration\n- **Payment Failures**: Verify Stripe account status and limits\n\n### Debug Steps:\n\n1. Check application logs for errors\n2. Verify environment variables\n3. Test database connectivity\n4. Check file permissions\n5. Verify external service configurations\n\n---\n\n## Roadmap: Affiliate System\n\n- **Entities**: Affiliate, Referral, Commission, Payout models\n- **Features**: Referral links (UTM), commission ledger, payout cycles\n- **API**: Endpoints for affiliate registration, link generation, reporting\n- **Dashboard**: Affiliate management interface\n\n---\n\n## Roadmap: Mobile Applications\n\n- **React Native**: Mobile app using same auth and API\n- **Deep Linking**: Product, cart, and order detail links\n- **Push Notifications**: Order updates and promotional notifications\n- **Offline Support**: Cached data for offline functionality\n\n---\n\n## Contributing\n\n- Use feature branches and descriptive commit messages\n- Prefer small PRs with focused scope\n- Include tests for new functionality\n- Follow TypeScript strict mode guidelines\n- Ensure security best practices\n\n## License\n\n- Proprietary / All rights reserved (update if open‑sourcing)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffarab-hussain%2Fnathan-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffarab-hussain%2Fnathan-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffarab-hussain%2Fnathan-backend/lists"}