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 install
Create .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:3000
pnpm 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