Project Title: GoRepair - Fix Fast, Easy Tracking
GoRepair is a full-service digital platform for booking and managing home appliance repairs. It enables real-time communication and service flow among Users, Technicians, Admins, Managers, Partners, Dealers, and Brand Ambassadors via dedicated role-based dashboards. This SRS is intended to guide the frontend, backend, and UI/UX teams in designing and implementing the application with clarity and precision.
The platform streamlines service booking, technician assignment, payment handling, complaint escalation, and subscription management with features like real-time tracking, digital wallets, and role-based access.
- Admin
- User
- Partner
- Technician
- Manager (General, Support, Finance)
- Brand Ambassador
- Dealer
- Frontend: React.js with Redux for state management
- Backend: Node.js with Express.js
- Database: MongoDB with Mongoose ODM
- Authentication: JWT with OAuth 2.0
- Real-time: Socket.IO for live updates
- Mobile: React Native for cross-platform mobile apps
- Hosting: AWS/GCP with containerization (Docker, Kubernetes)
- CI/CD: GitHub Actions/Jenkins
- API Gateway: Single entry point for all client requests
- Authentication Service: Handles user authentication and authorization
- Booking Service: Manages service requests and scheduling
- Payment Service: Processes all financial transactions
- Notification Service: Handles all communications
- Analytics Service: Processes and serves analytics data
- Document Service: Manages file uploads and storage
- User Management: CRUD operations for all user types
- Analytics: System-wide performance metrics
- Content Management: Manage FAQs, help docs, T&Cs
- System Configuration: Application settings and parameters
- Profile Management: Personal information and preferences
- Service Booking: New service requests and history
- Payment: Transaction history and payment methods
- Notifications: In-app alerts and updates
- Job Management: View and update assigned jobs
- Schedule: Availability and calendar management
- Earnings: Payment history and wallet balance
- Performance: Ratings and feedback
- Inventory Management: Product and service catalog
- Order Management: Track service requests
- Financials: Payouts and earnings
- Analytics: Performance metrics
- Response Time: < 2 seconds for API responses
- Concurrent Users: Support for 10,000+ concurrent users
- Uptime: 99.99% availability
- Data Retention: 5 years for financial records
- Authentication: JWT with refresh tokens
- Authorization: Role-based access control (RBAC)
- Data Encryption: AES-256 for data at rest, TLS 1.3 for data in transit
- Compliance: GDPR, CCPA, and local data protection laws
- Audit Logging: All sensitive operations logged
- Horizontal Scaling: Microservices architecture
- Database: Sharding and replication
- Caching: Redis for frequently accessed data
- Load Balancing: Round-robin and least-connections algorithms
POST /api/auth/register- User registrationPOST /api/auth/login- User loginPOST /api/auth/refresh- Refresh access tokenPOST /api/auth/logout- User logout
POST /api/bookings- Create new bookingGET /api/bookings- List bookingsGET /api/bookings/:id- Get booking detailsPUT /api/bookings/:id- Update bookingDELETE /api/bookings/:id- Cancel booking
{
_id: ObjectId,
email: String,
password: String,
role: String, // 'user', 'technician', 'admin', etc.
profile: {
firstName: String,
lastName: String,
phone: String,
avatar: String
},
status: String, // 'active', 'inactive', 'suspended'
lastLogin: Date,
createdAt: Date,
updatedAt: Date
}{
_id: ObjectId,
userId: ObjectId,
technicianId: ObjectId,
serviceId: ObjectId,
status: String, // 'pending', 'confirmed', 'in_progress', 'completed', 'cancelled'
schedule: {
date: Date,
timeSlot: String,
endTime: Date
},
address: {
street: String,
city: String,
state: String,
pincode: String,
location: {
type: { type: String },
coordinates: [Number] // [longitude, latitude]
}
},
payment: {
amount: Number,
status: String, // 'pending', 'paid', 'refunded'
method: String, // 'card', 'wallet', 'cod'
transactionId: String
},
rating: {
value: Number,
review: String,
createdAt: Date
},
createdAt: Date,
updatedAt: Date
}- Test individual components in isolation
- Achieve 80%+ code coverage
- Use Jest for JavaScript/Node.js tests
- Test API endpoints
- Database integration tests
- Third-party service integrations
- User flows across the application
- Cross-browser and cross-device testing
- Performance and load testing
- Development: For active development
- Staging: Mirror of production for testing
- Production: Live environment
- Code commit triggers build
- Run tests
- Build Docker images
- Deploy to staging for review
- Manual approval for production
- Automated deployment to production
- Error tracking (Sentry)
- Performance monitoring (New Relic)
- Uptime monitoring (Pingdom)
- Centralized logging with ELK Stack
- Log levels: error, warn, info, debug
- Retention: 30 days for debug, 1 year for errors
- JWT with short-lived access tokens
- Secure HTTP-only cookies for refresh tokens
- Rate limiting on authentication endpoints
- Encryption at rest and in transit
- Regular security audits
- Penetration testing
- AI-powered service recommendations
- Predictive maintenance scheduling
- IoT device integration for diagnostics
- Voice assistant integration
- AR-based technician assistance
- Payment Gateway: Razorpay/Stripe
- SMS: Twilio
- Email: SendGrid
- Maps: Google Maps/Mapbox
- Storage: AWS S3
- JWT: JSON Web Token
- API: Application Programming Interface
- SLA: Service Level Agreement
- SMS: Short Message Service
Document Version: 1.0
Last Updated: June 24, 2025