- Overview
- Key Features
- Technology Stack
- System Architecture
- Installation
- Configuration
- Usage
- Module Details
- API Documentation
- Database Schema
- Contributing
- License
- Support
InitCore-CRM-CallCenter is a full-stack, production-ready Customer Relationship Management system built with Django, specifically engineered for call center environments. It provides a complete suite of tools to manage leads, track agent performance, process customer payments, generate invoices, and monitor real-time operations.
The platform supports multi-role access (Team Leaders, Agents, Admins), real-time WebSocket communication, comprehensive reporting, and automated workflows to streamline call center operations.
- Lead Import & Assignment: Bulk import leads and intelligent assignment to agents/teams
- Disposition Tracking: Multi-level disposition system (Fresh, Connected, Not Connected) with sub-dispositions
- Lead History: Complete audit trail of all lead interactions and modifications
- Lead Transfer: Seamless lead transfer between agents with full record-keeping
- Reminder System: Automated follow-up reminders with date/time scheduling
- Duplicate Detection: Unique contact validation to prevent duplicate leads
- Payment Processing: Multi-payment method support with transaction tracking
- Package Management: Flexible package system with start/end date tracking
- GST Calculation: Automated tax computation (18% GST) with amount breakdowns
- Customer Verification: Payment verification workflow with attachment support
- Invoice Generation: Automated PDF invoice generation with company branding
- Customer ID System: Unique customer identification across multiple transactions
- Role-Based Access Control: Three-tier access system (Admin, Team Leader, Agent)
- Team Structure: Hierarchical team organization with leader assignment
- User Profiles: Comprehensive profile management with status tracking
- User Limits: Built-in system for managing user capacity (25-user default limit)
- Status Management: Track employee status (Active, Inactive, On Resign Period, Absconded)
- Automated Attendance: Clock-in/clock-out system with status calculation
- Break Tracking: Multiple break types with duration monitoring
- Working Hours Calculation: Automatic computation of effective working time
- Late Login Detection: Grace period management and late marking
- Half-Day Logic: Intelligent attendance status based on working hours
- Real-Time Status: Live tracking of logged-in users and break status
- Sales Commitments: Agent-level sales targets with tracking
- Sales History: Historical performance data for trend analysis
- Team Performance: Aggregate team statistics and comparisons
- Real-Time Dashboards: Live metrics for monitoring operations
- Custom Reports: Generate detailed reports for various metrics
- Ticket System: Full-featured complaint tracking with priorities
- Status Workflow: Multi-stage resolution process (Pending → In Progress → Resolved → Closed)
- Priority Levels: Four-tier priority system (Low, Medium, High, Urgent)
- Resolution Tracking: Automatic timestamp for resolved complaints
- PDF Invoice Generation: Automated invoice creation with wkhtmltopdf
- Company Branding: Customizable company details, logo, and tagline
- Amount in Words: Automatic numeric-to-text conversion for invoices
- Attachment Support: File upload for payment proofs and documents
- Framework: Django 5.0.6
- Language: Python 3.8+
- ORM: Django ORM
- Database: PostgreSQL (psycopg2-binary)
- Task Queue: Channels 4.1.0 (WebSocket support)
- ASGI Server: Daphne 4.1.2
- Templating: Django Templates
- Styling: HTML5, CSS3
- Interactivity: JavaScript (included in templates)
- Authentication: Django Auth System
- File Storage: Django Storage (Media files)
- Static Files: WhiteNoise 6.7.0
- PDF Generation: pdfkit 1.0.0
- Data Processing: Pandas 2.2.2, NumPy 2.0.0
- Excel Support: openpyxl 3.1.5, xlrd 2.0.1
- Database Backup: django-dbbackup 4.1.0
- Number Conversion: num2words 0.5.13
- Environment Variables: python-decouple 3.8
- WebSockets: Twisted 24.3.0, Autobahn 23.6.2
CallCore-CRM/
│
├── CallCenter_App/ # Main Django application
│ ├── models.py # Database models (Lead, User, Payment, etc.)
│ ├── views.py # Business logic and view handlers
│ ├── urls.py # URL routing
│ ├── forms.py # Form definitions
│ ├── admin.py # Django admin configuration
│ └── migrations/ # Database migrations
│
├── InitCore_CallCenter_CRM/ # Project configuration
│ ├── settings.py # Django settings
│ ├── urls.py # Root URL configuration
│ ├── asgi.py # ASGI configuration
│ └── wsgi.py # WSGI configuration
│
├── template/ # HTML templates
│ ├── base.html
│ ├── dashboard.html
│ ├── leads/
│ ├── sales/
│ └── reports/
│
├── media/ # User-uploaded files
│ ├── attachments/
│ ├── logos/
│ └── invoice_pdfs/
│
├── requirements.txt # Python dependencies
├── manage.py # Django management script
└── wkhtmltopdf.exe # PDF generation binary
- Python 3.8 or higher
- PostgreSQL 12+ (or SQLite for development)
- pip (Python package manager)
- Virtual environment tool (venv/virtualenv)
- Git
-
Clone the Repository
git clone https://github.com/hamzakhan0712/CallCore-CRM.git cd CallCore-CRM -
Create Virtual Environment
# Windows python -m venv venv venv\Scripts\activate # Linux/Mac python3 -m venv venv source venv/bin/activate
-
Install Dependencies
pip install -r requirements.txt
-
Environment Configuration Create a
.envfile in the project root:SECRET_KEY=your-secret-key-here DEBUG=True DATABASE_URL=postgresql://user:password@localhost:5432/callcore_db ALLOWED_HOSTS=localhost,127.0.0.1
-
Database Setup
# Create database migrations python manage.py makemigrations # Apply migrations python manage.py migrate # Create superuser python manage.py createsuperuser
-
Collect Static Files
python manage.py collectstatic
-
Run Development Server
python manage.py runserver
-
Access the Application
- URL:
http://localhost:8000 - Admin Panel:
http://localhost:8000/admin
- URL:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'callcore_db',
'USER': 'your_db_user',
'PASSWORD': 'your_db_password',
'HOST': 'localhost',
'PORT': '5432',
}
}For real-time features, configure ASGI:
# asgi.py
import os
from django.core.asgi import get_asgi_application
from channels.routing import ProtocolTypeRouter, URLRouter
from channels.auth import AuthMiddlewareStack
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'InitCore_CallCenter_CRM.settings')
application = ProtocolTypeRouter({
"http": get_asgi_application(),
"websocket": AuthMiddlewareStack(
URLRouter(
# Your WebSocket URL patterns
)
),
})Configure your company details in the Django admin panel:
- Company Name
- Address
- GSTIN (Tax ID)
- Email & Phone
- Logo (for invoices)
- About & Tagline
-
Initial Setup
- Configure company details in admin panel
- Create break types (Lunch, Tea Break, Personal, etc.)
- Set up packages and pricing
- Add payment methods
- Create sub-dispositions
-
User Management
- Create Team Leader accounts
- Create Agent accounts
- Assign agents to teams
- Set sales commitments
-
Lead Management
- Import leads via CSV/Excel
- Assign leads to agents
- Monitor team performance
- Review lead history
- Transfer leads between agents
-
Sales Tracking
- Review team sales
- Verify payments
- Generate reports
-
Daily Operations
- Clock in/out
- Manage break time
- Call leads
- Update dispositions
- Add remarks and reminders
-
Sales Processing
- Convert leads to customers
- Record payment details
- Upload payment proofs
- Generate invoices
- Fields: Name, Contact, State, Capital, Assignment, Disposition, Reminder
- Features: Auto sub-disposition, history tracking, transfer records
- Validation: Unique contact numbers with regex validation
- Roles: Team Leader, Agent
- Status: Active, Inactive, On Resign Period, Absconded
- Features: Break status, commitment tracking, team relationships
- Customer ID: Auto-generated 12-digit unique ID
- GST Calculation: 18% tax with automatic breakdown
- Invoice Number: 8-digit unique invoice identifier
- PDF Generation: Branded invoice PDFs with company details
- Shift Timing: 9:00 AM - 6:00 PM
- Grace Period: 10 minutes
- Half-Day Threshold: 4.5 hours
- Auto Status: Based on effective working hours
- UserProfile: Extended user information with role and status
- Team: Team structure with leader and agents
- Lead: Lead information with disposition tracking
- LeadHistory: Audit trail for lead changes
- LeadTransferRecord: Transfer history between agents
- PaidCustomer: Customer payment records
- Invoice: Invoice generation records
- InvoicePDF: PDF storage for invoices
- Attendance: Daily attendance tracking
- Break: Break time management
- Complaint: Customer complaint system
- Company: Organization details (singleton)
- Package: Service packages
- PaymentMethod: Payment options
- SubDisposition: Lead sub-categories
- BreakType: Break categories
- AgentSalesHistory: Sales performance tracking
The application uses Django's built-in views. For custom API endpoints, refer to the views.py file in the CallCenter_App directory.
- Session-based authentication
- CSRF protection enabled
- Role-based access control
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch
git checkout -b feature/YourFeatureName
- Commit your changes
git commit -m "Add: Your feature description" - Push to your fork
git push origin feature/YourFeatureName
- Create a Pull Request
- Follow PEP 8 style guide
- Write descriptive commit messages
- Add comments for complex logic
- Update documentation for new features
This project is licensed under the MIT License. See the LICENSE file for details.
- Developer: Hamza Khan
- GitHub: @hamzakhan0712
- Repository: CallCore-CRM
Please report bugs and feature requests through GitHub Issues
- REST API implementation
- Mobile app integration
- Advanced analytics dashboard
- Email notification system
- SMS integration
- Multi-language support
- Dark mode theme
- Export reports to PDF/Excel
- WhatsApp integration
- Call recording integration
Add screenshots of your application here
- Django Software Foundation
- PostgreSQL Global Development Group
- All contributors and users of CallCore CRM
Made with ❤️ for Call Centers Worldwide
⭐ Star this repository if you find it helpful!