Sarva is a comprehensive super app platform that integrates messaging, financial services, e-commerce, on-demand services, productivity tools, and entertainment into a single unified experience.
# Clone the repository
git clone https://github.com/YOUR_ORG/sarva.git
cd sarva
# Install dependencies
./scripts/setup.sh
# Start development environment
docker-compose up -d- Architecture
- Features
- Technology Stack
- Project Structure
- Getting Started
- Development
- Deployment
- Contributing
- License
Sarva follows a modular microservices architecture with the following core components:
- Host App: Main container app that loads mini-apps dynamically
- API Gateway: Central entry point for all API requests
- Service Mesh: Inter-service communication and observability
- Mini-Apps: Independent modules (Messaging, Wallet, Shopping, etc.)
- Microservices: Each feature is an independent service
- Event-Driven: Asynchronous communication via message queues
- API-First: Well-documented REST/GraphQL APIs
- Cloud-Native: Containerized and orchestrated with Kubernetes
- Security-First: End-to-end encryption and zero-trust architecture
- β Microservices infrastructure
- β User authentication & authorization
- β Real-time messaging with E2E encryption
- β Social features and activity feed
- β Push notifications
- π Digital wallet with multi-currency support
- π P2P payments and bill payments
- π E-commerce marketplace
- π Vendor management system
- π Order and inventory tracking
- π Ride-hailing integration
- π Food delivery platform
- π Service booking (salon, repair, etc.)
- π Productivity suite (tasks, calendar, notes)
- π Content streaming and entertainment
- π AI-powered recommendations
- π Chatbot support
- π Advanced fintech (lending, investments)
- π Performance optimization
- π Advanced security and compliance
Legend: β Complete | π In Progress | π Planned
- Mobile: React Native / Flutter
- Web: React.js + TypeScript
- State Management: Redux Toolkit / Zustand
- UI Components: Custom design system
- Languages: Node.js, Python, Go
- Frameworks: Express.js, FastAPI, Gin
- API: REST + GraphQL
- Real-time: WebSocket, gRPC
- Relational: PostgreSQL
- NoSQL: MongoDB
- Cache: Redis
- Search: Elasticsearch
- Storage: AWS S3 / MinIO
- Containerization: Docker
- Orchestration: Kubernetes
- Cloud: AWS / GCP / Azure
- CI/CD: GitHub Actions
- Monitoring: Prometheus, Grafana, ELK Stack
- APM: DataDog / New Relic
- IaC: Terraform
- Service Mesh: Istio / Linkerd
- API Gateway: Kong / AWS API Gateway
- Message Queue: RabbitMQ / Apache Kafka
sarva/
βββ .github/
β βββ workflows/ # GitHub Actions CI/CD
β βββ ISSUE_TEMPLATE/ # Issue templates
β βββ PULL_REQUEST_TEMPLATE.md
βββ apps/
β βββ mobile/ # React Native mobile app
β βββ web/ # React web app
β βββ admin/ # Admin dashboard
βββ services/
β βββ api-gateway/ # API Gateway service
β βββ auth-service/ # Authentication service
β βββ messaging-service/ # Messaging microservice
β βββ wallet-service/ # Digital wallet service
β βββ marketplace-service/ # E-commerce service
β βββ ride-service/ # Ride-hailing service
β βββ ... # Other microservices
βββ packages/
β βββ shared-sdk/ # Shared SDK for mini-apps
β βββ ui-components/ # Shared UI components
β βββ utils/ # Shared utilities
βββ infrastructure/
β βββ terraform/ # Infrastructure as Code
β βββ kubernetes/ # K8s manifests
β βββ docker/ # Dockerfiles
βββ docs/
β βββ architecture/ # Architecture documentation
β βββ api/ # API documentation
β βββ guides/ # Development guides
βββ scripts/
β βββ setup.sh # Initial setup script
β βββ deploy.sh # Deployment script
β βββ test.sh # Testing script
βββ docker-compose.yml # Local development setup
βββ package.json # Monorepo root package
βββ README.md
- Node.js >= 18.x
- Docker >= 24.x
- Kubernetes (Minikube or Docker Desktop)
- Python >= 3.11
- Go >= 1.21
-
Clone the repository
git clone https://github.com/YOUR_ORG/sarva.git cd sarva -
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env # Edit .env with your configuration -
Start local infrastructure
docker-compose up -d postgres redis mongodb rabbitmq
-
Run database migrations
npm run migrate
-
Start development servers
npm run dev
The app will be available at:
- Web: http://localhost:3000
- API Gateway: http://localhost:8000
- Admin: http://localhost:3001
# Start all services
npm run dev
# Start specific service
npm run dev:auth
npm run dev:messaging
npm run dev:wallet
# Start mobile app
cd apps/mobile
npm run android # or npm run ios# Run all tests
npm test
# Run unit tests
npm run test:unit
# Run integration tests
npm run test:integration
# Run e2e tests
npm run test:e2e
# Test coverage
npm run test:coverage# Lint code
npm run lint
# Format code
npm run format
# Type check
npm run typecheck# Create migration
npm run migration:create <name>
# Run migrations
npm run migrate
# Rollback migration
npm run migrate:rollback
# Seed database
npm run seed- All API endpoints require authentication
- End-to-end encryption for messaging
- PCI DSS compliant payment processing
- Regular security audits and penetration testing
- Bug bounty program: security@sarva.app
We welcome contributions! Please see our Contributing Guide for details.
- Create a feature branch from
develop - Make your changes following our coding standards
- Write tests for new functionality
- Ensure all tests pass and code is linted
- Submit a pull request to
develop
main- Production-ready codedevelop- Integration branch for featuresfeature/*- Feature developmentbugfix/*- Bug fixeshotfix/*- Production hotfixesrelease/*- Release preparation
# Deploy to staging
npm run deploy:staging# Create release
npm run release
# Deploy to production
npm run deploy:productionSee Deployment Guide for detailed instructions.
- APM: DataDog dashboard at https://app.datadoghq.com
- Logs: ELK Stack at https://logs.sarva.app
- Metrics: Grafana at https://metrics.sarva.app
- Status: https://status.sarva.app
This project is licensed under the MIT License - see the LICENSE file for details.
- Product: Linear Board
- Development: GitHub Projects
- Communication: Slack workspace
Made with β€οΈ by the Sarva Team
