Skip to content

SharCRM is a modern React + Vite frontend paired with an Express 5 backend that unifies customer data, AI-assisted campaigns, and health insights into one lime-themed CRM experience.

Notifications You must be signed in to change notification settings

luxmikant/SharCRM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

40 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SharCRM Logo

SharCRM

πŸš€ A Next-Generation AI-Powered CRM Platform

Live at https://www.sharcrm.app/ β€’ Updated Nov 2025

Motivation β€’ Features β€’ AI β€’ Tech Stack β€’ Quick Start β€’ Roadmap

React Vite Express MongoDB Tailwind


πŸ’‘ Motivation

Modern businesses struggle with fragmented customer data, inefficient campaign management, and lack of actionable insights. SharCRM was born from the need to:

  • Unify customer data across touchpoints into a single source of truth
  • Democratize AI by making intelligent insights accessible without data science expertise
  • Accelerate campaigns from days to minutes with smart segmentation and AI-generated content
  • Visualize health scores to proactively identify at-risk customers before churn
  • Scale personalization without scaling headcount

"We built SharCRM because we believe every business deserves enterprise-grade CRM intelligence, not just Fortune 500 companies."


✨ Features

πŸ“Š Intelligent Dashboard

Real-time KPIs with animated counters, sparkline trends, and AI-powered anomaly detection. Glass-morphic design with smooth Framer Motion animations.

πŸ‘₯ Smart Customer Segmentation

  • Drag-and-drop segment builder with AND/OR logic
  • AI-generated segment suggestions based on behavior patterns
  • Real-time preview with audience size estimates
  • Health score tracking (0-100) with predictive churn indicators

πŸ“’ Campaign Management

  • Multi-channel campaigns (Email, SMS, Push)
  • Template library with variable interpolation
  • A/B testing with statistical significance tracking
  • Delivery status monitoring with retry logic

πŸ” Customer 360Β° View

Complete customer profiles with purchase history, communication timeline, health trends, and predicted lifetime value.

πŸ“ˆ Sales Pipeline

Kanban-style deal tracking, revenue forecasting, and team performance analytics.


πŸ€– AI Capabilities

SharCRM integrates AI throughout the platform using Google Gemini with graceful fallbacks:

Feature Endpoint Description
Message Suggestions /api/ai/suggest-message Generate 3 campaign message variants with tone/channel awareness
Segment Generation /api/segments/ai/generate AI-proposed segments based on business goals
Email Composer /api/ai/generate-email Full email generation (subject, preheader, body)
Smart Insights Dashboard widgets Anomaly detection and trend analysis

AI Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Frontend UI    │────▢│  API Layer   │────▢│  AI Service     β”‚
β”‚  (React + Vite) β”‚     β”‚  (Express)   β”‚     β”‚  (Gemini/GPT)   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚                      β”‚
                              β–Ό                      β–Ό
                        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                        β”‚ MongoDB  β”‚          β”‚ Fallback Gen  β”‚
                        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Configuration

# AI Provider (Google Gemini recommended)
GOOGLE_API_KEY=your-gemini-api-key
GEMINI_MODEL=gemini-1.5-flash

# Fallback: OpenAI
OPENAI_API_KEY=your-openai-key

Key Design Decisions:

  • Lazy-load AI SDKs to prevent cold-start crashes
  • All AI responses annotated with usedAI: true flag
  • 10-second timeout with automatic fallback
  • Rate limiting (100 req/15min) to prevent abuse

πŸ›  Tech Stack

Frontend

Technology Purpose Version
React UI Framework 18.x
Vite Build Tool 5.x
TypeScript Type Safety 5.x
Tailwind CSS Styling 3.x
Framer Motion Animations 10.x
Recharts Data Visualization 2.x
React Router Navigation 6.x
CVA Variant Management 0.7.x

Backend

Technology Purpose Version
Express API Framework 5.x
MongoDB Database 7.x
Mongoose ODM 8.x
JWT Authentication -
Sentry Error Tracking -
Helmet Security -

Infrastructure

  • Hosting: Render (Web Service + Static Site)
  • Database: MongoDB Atlas
  • CDN: Render Edge
  • Monitoring: Sentry + Custom Logging

πŸš€ Quick Start

Prerequisites

  • Node.js 18+
  • MongoDB (local or Atlas)
  • Google Cloud API Key (for AI features)

Local Development

# Clone repository
git clone https://github.com/luxmikant/MSKJ_crm.git
cd MSKJ_crm

# Install dependencies
cd ma-sharvari-ki-jai/server && npm install
cd ../client && npm install

# Configure environment
cp server/.env.example server/.env
# Edit .env with your MONGO_URI, JWT_SECRET, GOOGLE_API_KEY

# Start development servers
# Terminal 1: Backend
cd server
npm run dev

# Terminal 2: Frontend  
cd client
npm run dev

Environment Variables

Server (.env)

MONGO_URI=mongodb://localhost:27017/sharcrm
JWT_SECRET=your-secret-key
CORS_ORIGIN=http://localhost:5173
GOOGLE_API_KEY=your-gemini-key

Client (.env)

VITE_API_BASE_URL=http://localhost:5000
VITE_GOOGLE_CLIENT_ID=your-oauth-client-id

πŸ“ Repository Layout

  • client/ – React + Vite frontend housed inside ma-sharvari-ki-jai/client.
  • server/ – Express 5 backend powering APIs, AI services, and the MongoDB models.
  • docs/, .vscode/, .semgrep.yml, render.yaml – Tooling/configuration for documentation, IDE helpers, CI, and deployments (kept for compatibility but not featured in the product surface).

Focus on the client/ + server/ apps for active development; the other entries stay in-tree only for historical or tooling reasons.

πŸ— Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                         SharCRM Platform                         β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚   Landing Page  β”‚  β”‚   Dashboard     β”‚  β”‚   Campaigns     β”‚  β”‚
β”‚  β”‚   (Public)      β”‚  β”‚   (Protected)   β”‚  β”‚   (Protected)   β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚           β”‚                    β”‚                    β”‚           β”‚
β”‚           β–Ό                    β–Ό                    β–Ό           β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚                    React Router (v6)                      β”‚   β”‚
β”‚  β”‚              + Auth Context + Toast Provider              β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                              β”‚                                   β”‚
β”‚                              β–Ό                                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚                     API Layer (api.ts)                    β”‚   β”‚
β”‚  β”‚                  Fetch wrapper + Error handling           β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                               β”‚
                               β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                       Express Backend (5.x)                      β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚   Auth     β”‚  β”‚  Segments  β”‚  β”‚  Campaigns β”‚  β”‚    AI     β”‚  β”‚
β”‚  β”‚  Routes    β”‚  β”‚   Routes   β”‚  β”‚   Routes   β”‚  β”‚  Service  β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜  β”‚
β”‚        β”‚               β”‚               β”‚               β”‚        β”‚
β”‚        β–Ό               β–Ό               β–Ό               β–Ό        β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚                    Mongoose ODM (v8)                      β”‚   β”‚
β”‚  β”‚              Models: Customer, Segment, Campaign          β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                               β”‚
                               β–Ό
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚   MongoDB Atlas     β”‚
                    β”‚   (Cloud Database)  β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“‹ Technical Considerations

Performance Optimizations

  • Code Splitting: React lazy loading for route-based chunks
  • Virtual Scrolling: Large customer lists use windowing
  • Debounced Search: 300ms debounce on filter inputs
  • Skeleton Loading: Perceived performance with loading states
  • Image Optimization: WebP with fallbacks, lazy loading

Security Measures

  • Helmet.js: HTTP security headers
  • Rate Limiting: 100 requests per 15 minutes per IP
  • JWT Authentication: HttpOnly cookies, short expiry
  • Input Validation: Mongoose schema validation + sanitization
  • CORS: Strict origin whitelisting
  • XSS Prevention: React's built-in escaping + CSP headers

Scalability

  • Horizontal Scaling: Stateless API design
  • Database Indexing: Compound indexes on frequently queried fields
  • Connection Pooling: Mongoose connection optimization
  • Caching Strategy: (Planned) Redis for session and query caching

πŸ—Ί Roadmap

βœ… Completed (v2.0)

  • Modern UI with lime/yellow branding
  • AI-powered message suggestions
  • Customer health scoring
  • Sales pipeline management
  • Animated cursor effects
  • Glass-morphic design system

πŸ”„ In Progress (v2.1)

  • Real-time collaboration
  • Webhook integrations
  • Advanced analytics dashboard
  • Mobile-responsive improvements

πŸ“… Planned (v3.0)

  • Predictive Analytics: ML-powered churn prediction
  • Workflow Automation: Visual automation builder
  • Multi-tenant SaaS: Organization management
  • Native Mobile Apps: React Native iOS/Android
  • GraphQL API: Flexible data fetching
  • Plugin Ecosystem: Third-party integrations

🌟 Future Vision

  • Conversational AI: Chat-based CRM interactions
  • Voice Commands: Hands-free data entry
  • AR Customer Insights: Spatial data visualization
  • Blockchain Audit Trail: Immutable activity logs

🚒 Deployment

Render (Recommended)

  1. Push to GitHub
  2. Create Blueprint from render.yaml
  3. Configure environment variables:
    • MONGO_URI (MongoDB Atlas)
    • VITE_GOOGLE_CLIENT_ID (OAuth)
    • GOOGLE_API_KEY (AI features)

Docker (Alternative)

# Build
docker build -t sharcrm-server ./server
docker build -t sharcrm-client ./client

# Run
docker-compose up -d

🀝 Contributing

Contributions welcome! Please read our contributing guidelines and submit PRs.

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

πŸ“„ License

MIT Β© 2025 SharCRM Team


Built with ❀️ for modern businesses

⭐ Star us on GitHub

About

SharCRM is a modern React + Vite frontend paired with an Express 5 backend that unifies customer data, AI-assisted campaigns, and health insights into one lime-themed CRM experience.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published