Skip to content

UltimateSolution8/helpInMinutes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

HelpInMinutes - On-Demand Service Platform

HelpInMinutes Logo

Documentation β€’ API Reference β€’ Getting Started β€’ Contributing

πŸ“‹ Overview

HelpInMinutes is a microservices-based on-demand service platform connecting customers with local helpers for various tasks including cleaning, delivery, repairs, and more. The platform features real-time matching, secure payments, and seamless communication.

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                              Load Balancer (Nginx)                           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                        β”‚
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β–Ό                   β–Ό                   β–Ό
            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
            β”‚   Identity   β”‚    β”‚    Task      β”‚    β”‚  Matching    β”‚
            β”‚   Service    β”‚    β”‚   Service    β”‚    β”‚   Service    β”‚
            β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                    β”‚                   β”‚                   β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                        β”‚
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β–Ό                   β–Ό                   β–Ό
            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
            β”‚   Payment    β”‚    β”‚ Real-time    β”‚    β”‚   Admin      β”‚
            β”‚   Service    β”‚    β”‚   Service    β”‚    β”‚   Portal     β”‚
            β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                    β”‚
          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
          β–Ό                   β–Ό
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚  Redis    β”‚      β”‚PostgreSQL β”‚
    β”‚  Cache    β”‚      β”‚  Database β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
          β”‚
          β–Ό
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚ RabbitMQ  β”‚  (Event Bus)
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Features

  • User Authentication: JWT-based authentication with refresh tokens
  • Real-time Matching: H3-based geospatial matching algorithm
  • Secure Payments: Razorpay integration with ledger tracking
  • Live Updates: Socket.io for real-time task status updates
  • Admin Dashboard: Complete system monitoring and management
  • Mobile Apps: React Native for iOS and Android

πŸ“¦ Services

Service Port Description
Identity Service 8081 Authentication and user management
Task Service 8082 Task lifecycle management
Matching Service 8083 Helper matching and dispatch
Payment Service 8084 Payment processing and ledger
Real-time Service 3001 WebSocket handling
Admin Portal 3000 Admin dashboard
Mobile App - React Native mobile app

πŸ› οΈ Tech Stack

Backend

  • Java 17 with Spring Boot 3.2
  • PostgreSQL for persistent storage
  • Redis for caching and session management
  • RabbitMQ for event-driven communication
  • JWT for authentication

Frontend

  • React Native for mobile apps
  • Next.js for admin portal
  • Redux Toolkit for state management
  • Socket.io for real-time updates

DevOps

  • Docker for containerization
  • Kubernetes for orchestration
  • Grafana/Prometheus for monitoring
  • JaCoCo for code coverage

πŸ“ Project Structure

helpinminutes/
β”œβ”€β”€ services/
β”‚   β”œβ”€β”€ identity-service/        # Authentication service
β”‚   β”œβ”€β”€ task-service/            # Task management
β”‚   β”œβ”€β”€ matching-service/        # Matching algorithm
β”‚   β”œβ”€β”€ payment-service/         # Payment processing
β”‚   └── realtime-service/        # WebSocket handling
β”œβ”€β”€ admin-portal/                # Admin dashboard
β”œβ”€β”€ mobile-app/                  # React Native app
β”œβ”€β”€ infrastructure/
β”‚   β”œβ”€β”€ docker/                  # Docker configurations
β”‚   β”œβ”€β”€ k8s/                     # Kubernetes manifests
β”‚   └── monitoring/              # Monitoring setup
β”œβ”€β”€ docs/                        # Documentation
└── scripts/                     # Utility scripts

πŸƒβ€β™‚οΈ Quick Start

Prerequisites

  • Docker & Docker Compose
  • Java 17+
  • Node.js 18+
  • Maven or Gradle

Development Setup

  1. Clone the repository
git clone https://github.com/your-org/HelpInMinutes.git
cd HelpInMinutes
  1. Start infrastructure services
cd infrastructure/docker
docker-compose up -d
  1. Configure environment variables
cp .env.example .env
# Edit .env with your configurations
  1. Build and run services
# Backend services
cd services/identity-service
mvn spring-boot:run

# Repeat for other services...

# Frontend
cd admin-portal
npm install
npm run dev

cd mobile-app
npm install
npm start

Running Tests

# Run all tests
./scripts/run-tests.sh

# Run only integration tests
./scripts/run-integration-tests.sh

# Generate coverage report
./scripts/generate-coverage.sh

πŸ“– Documentation

πŸ§ͺ Testing

Unit Tests

  • Backend: JUnit 5 + Mockito
  • Frontend: Jest + React Testing Library

Integration Tests

  • Testcontainers for PostgreSQL, Redis, RabbitMQ
  • API integration tests with RestAssured

Performance Tests

  • JMeter/Gatling for load testing
  • Database query optimization benchmarks

Coverage Targets

  • Backend: 80%+ line coverage
  • Frontend: 70%+ component coverage

πŸ“Š Monitoring

Access monitoring dashboards:

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ“ž Support


Made with ❀️ by the HelpInMinutes Team

About

help in minutes

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors