Bu loyiha Markaziy Bank va vazirliklar o'rtasidagi integratsiyalarni boshqarish uchun backend API hisoblanadi.
- Backend: Fastify (Node.js framework)
- Database: PostgreSQL 15
- File Storage: MinIO (AWS S3 compatible)
- Authentication: JWT + bcrypt
- Documentation: Swagger/OpenAPI 3.0
- Containerization: Docker + Docker Compose
- Language: TypeScript
- Node.js 18+
- Docker & Docker Compose
- PostgreSQL 15+ (agar Docker ishlatmasangiz)
- MinIO (agar Docker ishlatmasangiz)
- Repository ni klonlang:
git clone <repository-url>
cd backend
- Environment faylini sozlang:
cp env.example .env
# .env faylini o'z ehtiyojlaringizga mos ravishda tahrirlang
- Docker Compose orqali ishga tushiring:
docker-compose up -d
- Database ni migrate qiling:
docker-compose exec backend npm run migrate
- Sample ma'lumotlarni yuklang:
docker-compose exec backend npm run seed
- Dependencies ni o'rnating:
npm install
- Environment faylini sozlang:
cp env.example .env
# .env faylini tahrirlang
- Database ni yarating va migrate qiling:
npm run migrate
- Sample ma'lumotlarni yuklang:
npm run seed
- Development server ni ishga tushiring:
npm run dev
# Server Configuration
NODE_ENV=development
PORT=3001
HOST=0.0.0.0
# Database Configuration
DATABASE_URL=postgresql://postgres:postgres123@localhost:5432/integrations_db
DB_HOST=localhost
DB_PORT=5432
DB_NAME=integrations_db
DB_USER=postgres
DB_PASSWORD=postgres123
# MinIO Configuration
MINIO_ENDPOINT=localhost
MINIO_PORT=9000
MINIO_USE_SSL=false
MINIO_ACCESS_KEY=minioadmin
MINIO_SECRET_KEY=minioadmin123
MINIO_BUCKET_NAME=integrations-files
# JWT Configuration
JWT_SECRET=your-super-secret-jwt-key-change-in-production
JWT_EXPIRES_IN=7d
# CORS Configuration
CORS_ORIGIN=http://localhost:3000
# File Upload Configuration
MAX_FILE_SIZE=10485760
ALLOWED_FILE_TYPES=pdf,doc,docx,xls,xlsx,txt,jpg,jpeg,png
# Rate Limiting
RATE_LIMIT_MAX=100
RATE_LIMIT_TIME_WINDOW=60000
Server ishga tushgandan so'ng, API dokumentatsiyasini quyidagi manzilda ko'rishingiz mumkin:
- Swagger UI: http://localhost:3001/docs
- OpenAPI JSON: http://localhost:3001/docs/json
Seeding jarayonidan so'ng quyidagi ma'lumotlar bilan kirishingiz mumkin:
- Email: admin@cbu.uz
- Password: admin123
- Role: Administrator
POST /api/auth/login
- LoginPOST /api/auth/register
- Register (admin only)POST /api/auth/refresh
- Refresh tokenPOST /api/auth/logout
- LogoutGET /api/auth/profile
- Get user profilePUT /api/auth/profile
- Update profile
GET /api/integrations
- List integrations with filtersGET /api/integrations/:id
- Get single integrationPOST /api/integrations
- Create integrationPUT /api/integrations/:id
- Update integrationDELETE /api/integrations/:id
- Delete integrationGET /api/integrations/export
- Export to ExcelGET /api/integrations/stats
- Get statistics
POST /api/integrations/:id/files
- Upload fileGET /api/integrations/:id/files
- Get filesGET /api/integrations/files/:fileId/download
- Download fileDELETE /api/integrations/files/:fileId
- Delete file
GET /api/users
- List usersPOST /api/users
- Create userPUT /api/users/:id
- Update userDELETE /api/users/:id
- Delete userGET /api/users/stats
- Get user statisticsGET /api/users/roles
- Get available roles
GET /api/audit/logs
- Get audit logsGET /api/audit/recent
- Get recent activityGET /api/audit/stats
- Get audit statisticsGET /api/audit/integrations/:id/versions
- Get integration versionsPOST /api/audit/cleanup
- Cleanup old logs (admin only)
GET /api/settings
- Get all settingsGET /api/settings/:key
- Get specific settingPUT /api/settings
- Update multiple settingsPUT /api/settings/:key
- Update specific settingDELETE /api/settings/:key
- Delete settingPOST /api/settings/reset
- Reset to defaultsGET /api/settings/export
- Export settings
# Run tests
npm test
# Run tests with coverage
npm run test:coverage
# Build for production
npm run build
# Start production server
npm start
# Build image
docker build -t integrations-backend .
# Run container
docker run -p 3001:3001 integrations-backend
# View logs
docker-compose logs -f backend
# Stop services
docker-compose down
# Stop and remove volumes
docker-compose down -v
- Endpoint:
GET /health
- Response: Server va database holati
- Development: Console logs
- Production: Structured JSON logs
-
Database connection error
- PostgreSQL server ishlab turganligini tekshiring
- Connection string to'g'riligini tekshiring
-
MinIO connection error
- MinIO server ishlab turganligini tekshiring
- Credentials to'g'riligini tekshiring
-
Port already in use
- Boshqa port ishlatish yoki jarayonni to'xtatish
-
Permission denied
- Docker volumes permissions ni tekshiring
# Enable debug logging
DEBUG=* npm run dev
# Docker debug
docker-compose logs -f backend
src/
βββ config/ # Configuration files
βββ controllers/ # Request handlers
βββ middleware/ # Custom middleware
βββ migrations/ # Database migrations
βββ routes/ # API routes
βββ services/ # Business logic
βββ types/ # TypeScript types
βββ utils/ # Utility functions
βββ server.ts # Main server file
- Types: Add interfaces to
src/types/
- Services: Add business logic to
src/services/
- Controllers: Add request handlers to
src/controllers/
- Routes: Add API routes to
src/routes/
- Validation: Add schemas to
src/utils/validation.ts
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature
) - Commit changes (
git commit -m 'Add amazing feature'
) - Push to branch (
git push origin feature/amazing-feature
) - Open Pull Request
This project is licensed under the MIT License.
Agar savollar bo'lsa, quyidagi manzilga murojaat qiling:
- Email: admin@cbu.uz
- Documentation: http://localhost:3001/docs