ProConnect is a modern marketplace application connecting clients with service providers. This repository hosts the robust and scalable Backend Service, built using TypeScript, Express, and MongoDB.
| Name | Type | Link |
|---|---|---|
| Live Application | Frontend Deployment | Frontend Live |
| Backend API | API Deployment | Backend Live |
| Frontend Source | GitHub Repository | ProConnect-Frontend |
| Backend Source | GitHub Repository | ProConnect-Backend |
| Category | Technology | Version | Purpose |
|---|---|---|---|
| Language | TypeScript | 5.8.3 | Type safety & scalability |
| Runtime | Node.js | - | JavaScript runtime |
| Framework | Express.js | 5.1.0 | Web framework |
| Database | MongoDB | - | NoSQL document DB |
| ORM | Mongoose | 8.16.1 | MongoDB modeling |
| Validation | Zod | 3.25.74 | Schema validation |
| Authentication | JWT & Bcryptjs | 9.0.2 & 3.0.3 | Secure login & hashing |
| Payment Gateway | SSLCommerz | - | Payment processing |
| File Upload | Cloudinary & Multer | 2.8.0 & 2.0.2 | File storage & upload |
| Email Service | Nodemailer | 7.0.11 | Email sending |
| HTTP Client | Axios | 1.13.2 | API requests |
| Utilities | CORS, Cookie-Parser | - | Security & cookie management |
- 🔐 User Authentication & Authorization: JWT-based login, registration, role-based access (Admin, Seller, Client)
- 🛠️ Service Management: Full CRUD operations for services with validation & error handling
- 📦 Order Processing: Place, track, and manage orders
- 💳 Payment Gateway Integration: SSLCommerz support, transaction tracking & status management
- ⭐ Review & Rating System: Leave reviews, ratings with moderation support
- 📊 Admin Dashboard: Analytics, user & transaction management, report oversight
- 💰 Wallet & Withdrawal: Wallet tracking, earnings withdrawal with transaction history
- ✉️ Messaging System: User-to-user messaging for communication and support
- 📑 Transaction Tracking: Complete financial audit trail
- ⚡ Robust Error Handling: Global error handler, custom AppError, Mongoose & Zod validation support
- 🧩 Custom Middleware: Authentication checks, request validation, error & CORS handling
src/
├── app.ts # Express app setup
├── server.ts # DB connection & server start
├── app/
│ ├── config/ # Environment & upload configs
│ ├── errorHelpers/ # Custom error handling
│ ├── helpers/ # Error response helpers
│ ├── interfaces/ # TypeScript interfaces
│ ├── middlewares/ # Authentication, validation, error & 404 handlers
│ ├── modules/ # Feature modules (M-C-S)
│ │ ├── admin/ # Dashboard & analytics
│ │ ├── auth/ # Authentication
│ │ ├── order/ # Orders
│ │ ├── payment/ # Payment processing
│ │ ├── service/ # Services
│ │ ├── review/ # Ratings & reviews
│ │ ├── transaction/ # Transactions
│ │ ├── user/ # Users
│ │ ├── wallet/ # Wallet
│ │ ├── withdrawal/ # Withdrawals
│ │ ├── utility-messages/ # Messaging
│ │ ├── report/ # Reports
│ │ └── ssl/ # SSLCommerz integration
│ ├── routes/ # Routes
│ └── utils/ # Utility functions
├── tsconfig.json # TypeScript config
└── vercel.json # Vercel deployment config
- Node.js v18+
- npm or pnpm
- MongoDB server or MongoDB Atlas
git clone https://github.com/arman-miaa/ProConnect-Backend.git
cd ProConnect-Backend
pnpm install # or npm installCreate .env in root:
PORT=5000
NODE_ENV=development
DATABASE_URL=<mongodb_connection_string>
JWT_SECRET=<your_jwt_secret>
JWT_EXPIRES_IN=7d
CLOUDINARY_CLOUD_NAME=<name>
CLOUDINARY_API_KEY=<key>
CLOUDINARY_API_SECRET=<secret>
SSL_STORE_ID=<ssl_id>
SSL_STORE_PASSWORD=<ssl_password>
EMAIL_USER=<email>
EMAIL_PASSWORD=<password>
EMAIL_FROM=noreply@proconnect.com
FRONTEND_URL=http://localhost:3000pnpm run dev # or npm run devpnpm run build
pnpm start| Script | Description | Command |
|---|---|---|
| dev | Run development server with live reload | pnpm run dev |
| build | Compile TS to JS (/dist) |
pnpm run build |
| start | Run production build | pnpm start |
| lint | ESLint check | pnpm run lint |
| test | Run tests (not configured) | pnpm run test |
- Express.js: RESTful APIs & middleware
- Mongoose: MongoDB modeling
- TypeScript: Type safety
- JWT & Bcryptjs: Secure auth
- Zod: Runtime validation
- Cloudinary & Multer: File uploads
- Nodemailer: Email sending
- Axios: API requests
- CORS & Cookie-Parser: Security & session
- Fork repository
git checkout -b feature/awesome-feature- Commit changes
git commit -m "feat: Added awesome feature" - Push
git push origin feature/awesome-feature - Open Pull Request
Arman Mia - GitHub
ISC License – See LICENSE file