Skip to content

Latest commit

 

History

History
144 lines (105 loc) · 7.73 KB

File metadata and controls

144 lines (105 loc) · 7.73 KB

InsightOS — সম্পূর্ণ উন্নতির সারসংক্ষেপ

Phase 1: জটিল বাগ + নিরাপত্তা + Validate Middleware একত্রিকরণ

✅ Validate Middleware একত্রিকরণ

  • নতুন ফাইল: backend/src/middleware/validate.js — সব module থেকে duplicate validate middleware সরিয়ে এখানে আনা হয়েছে
  • পরিবর্তিত: auth.validation.js, product.validation.js, sale.validation.js, expense.validation.js — থেকে validate ফাংশন ও ApiError import সরানো হয়েছে
  • পরিবর্তিত: সকল controller — থেকে validate re-export সরানো হয়েছে, shared middleware ইম্পোর্ট করা হয়েছে
  • পরিবর্তিত: সকল route files — shared middleware থেকে validate ইম্পোর্ট করে

✅ user.service.js — MongoDB Transaction

  • deleteAccount এখন MongoDB session + transaction এর মধ্যে চলে — partial failure হলে সব rollback হয়

✅ Avatar File Cleanup

  • auth.service.js — নতুন avatar upload বা delete করার আগে পুরনো avatar ফাইল disk থেকে মুছে ফেলা হয়

✅ gemini.config.js — Logger

  • console.errorlogger.error (Pino logger)

✅ Access Token httpOnly Cookie

  • auth.controller.js — register, login, refresh এ accessToken এখন httpOnly cookie হিসেবেও সেট হয়
  • auth.middleware.js — Authorization header না থাকলে cookie থেকে token পড়ে
  • logout, account delete — accessToken cookie clear করে
  • Frontend: authStore.js — localStorage সরানো হয়েছে (token আর localStorage এ রাখা হয় না)
  • Frontend: axios.config.js — request interceptor থেকে Bearer header logic সরানো হয়েছে (cookie automatic)

✅ অন্যান্য

  • Rate limit: 200/hr → 1000/hr
  • Destructive DELETE: /api/user/data/api/user/account এ এখন { "confirm": true } body প্রয়োজন
  • user.controller.js — accessToken cookie clear যোগ করা হয়েছে

Phase 2: Architecture Improvements

✅ auth.controller → authService layer

  • getCurrentUser আর সরাসরি authRepository কল করে না — এখন authService.getUserById() এর মাধ্যমে যায়
  • auth.controller থেকে authRepository import সরানো হয়েছে

✅ Expense Categories — Shared Constants

  • নতুন ফাইল: backend/src/constants/expenseCategories.js
  • expense.model.jsexpense.validation.js এখন এক জায়গা থেকে categories ইম্পোর্ট করে

✅ Business Data Service — Cross-module coupling fix

  • নতুন ফাইল: backend/src/services/businessData.service.js
  • prompt.builder.js আর সরাসরি saleService/expenseService ইম্পোর্ট করে না

✅ authorizeRole — Implemented

  • নতুন এন্ডপয়েন্ট: GET /api/auth/users — admin-only, সব user লিস্ট করে
  • auth.repository.jsfindAll() method
  • auth.service.jsgetAllUsers() method
  • auth.controller.jsgetAllUsers handler

✅ Unused Exports Cleanup

  • সকল controller থেকে schema re-exports সরানো হয়েছে (routes এখন validation files থেকে সরাসরি ইম্পোর্ট করে)

Phase 3: Testing

✅ Backend Tests (46 tests, 4 files)

ফাইল টেস্ট কী টেস্ট করা হয়েছে
utils.test.js 10 ApiError, ApiResponse, asyncHandler
token.test.js 6 JWT generate/verify — access + refresh tokens
validate.test.js 4 Validation middleware — body, query, error handling
validation-schemas.test.js 26 Auth, Product, Sale, Expense — সব Zod schema

✅ Frontend Tests (30 tests, 4 files)

ফাইল টেস্ট কী টেস্ট করা হয়েছে
cn.test.js 5 Tailwind class merge
formatCurrency.test.js 8 Currency formatting, edge cases
formatDate.test.js 11 Date format, relative time
authStore.test.js 6 Zustand auth state management

🆕 Frontend Testing Infrastructure

  • vitest + jsdom + @testing-library/react + @testing-library/jest-dom ইন্সটল
  • vite.config.js এ test config যোগ
  • package.json"test": "vitest run" স্ক্রিপ্ট যোগ

Phase 4: Missing Features

✅ Dashboard API — GET /api/dashboard

  • নতুন: dashboard.service.js, dashboard.controller.js, dashboard.routes.js
  • রিটার্ন করে: summary (revenue, expense, profit, margin, transactions, products, low stock), revenueByDay, expenseByDay, topProducts, categoryBreakdown, recentSales, recentExpenses, lowStockProducts

✅ Email Verification

  • নতুন: services/email.service.js — nodemailerベース (SMTP কনফিগার না থাকলে dev mode-এ console-এ log করে)
  • আপডেট: auth.model.jsisVerified, verificationToken, verificationTokenExpires ফিল্ড
  • নতুন এন্ডপয়েন্ট: POST /auth/send-verification, GET /auth/verify-email?token=xxx

✅ Password Reset

  • আপডেট: auth.model.jsresetPasswordToken, resetPasswordExpires ফিল্ড
  • নতুন এন্ডপয়েন্ট: POST /auth/forgot-password, POST /auth/reset-password
  • আপডেট: .env.example — SMTP সেটিংস, APP_URL
  • আপডেট: env.js — SMTP ও APP_URL ভ্যালিডেশন

Phase 5: Frontend Polish + Performance

✅ Low-stock পেজিনেশন

  • GET /api/products/low-stock?page=1&limit=20 — এখন paginated response দেয় { products, total, page, totalPages }
  • Repository, Service, Controller, Dashboard, BusinessData — সব জায়গায় আপডেট

✅ Configurable Currency

  • VITE_CURRENCY_CODE (default USD) via .env
  • VITE_CURRENCY_LOCALE (default en-US) via .env
  • formatCurrency.js এখন Intl.NumberFormat ব্যবহার করে — locale-aware

✅ ARIA Improvements

  • Table: scope="col" on headers, role="status" + aria-live="polite" on loading, aria-label on pagination buttons
  • Modal, Input, Sidebar: আগে থেকেই proper ARIA attributes ছিল

ফাইনাল টেস্ট রিপোর্ট

মোট ৭৬টি টেস্ট — সব পাস ✅

প্রকল্প ফাইল টেস্ট
Backend 4 46
Frontend 4 30
মোট 8 76

মোট ফাইল পরিবর্তন: ~৭১টি

পর্যায় বিবরণ ফাইল সংখ্যা
Phase 1 জটিল বাগ + নিরাপত্তা 20
Phase 2 Architecture উন্নতি 16
Phase 3 Testing 12
Phase 4 নতুন ফিচার 14
Phase 5 Frontend polish 9

জুলাই ২০২৬ • InsightOS Improvement Plan অনুযায়ী