CRM Pro26 is a comprehensive, enterprise-grade Customer Relationship Management system. It is built with a Flutter frontend, a Node.js backend, and is powered by Appwrite for its database and authentication.

Here's a summary of its key aspects:

Key Features:

Core CRM Modules: Includes user, company, product, and customer management, a sales pipeline (Enquiry โ†’ Validation โ†’ Lead), activity tracking (visits, calls, workshops), and analytics/reports.

Advanced Features: Offers real-time data sync, an audit trail, soft delete and recovery, Excel export, timeline tracking, smart validation for lead qualification, dynamic field validation, and cross-platform support.

Security & Authentication: Utilizes Appwrite authentication, role-based permissions (Admin, Moderator, Employee), and data encryption.

Technology Stack:

Frontend: Flutter 3.8.0+, Dart 3.8.0+, Appwrite SDK, GetX (state management).

Backend: Node.js 18.0+, Appwrite (Backend-as-a-Service), node-appwrite SDK.

Architecture:

The system has a Flutter frontend that interacts with the Appwrite Server via the Appwrite SDK.

The Appwrite Server then communicates with Node.js Backend Functions, which in turn interact with the Appwrite Database and Appwrite Authentication services.

It supports web, mobile (Android, iOS - Beta), and desktop (Windows, macOS, Linux - under development) applications.

Workflow and Access Control:

Sales Pipeline: Features a structured flow from "Enquiry Created" through "Validation" (including an 11-question assessment) to "Qualified Lead Created" or "Bad Lead Created."

Role-Based Access Control: Differentiates permissions for Admins, Moderators, and Employees across various operations like creating, viewing, updating, and deleting records, and user management.

API:

Provides a RESTful API with endpoints for authentication, core business modules (users, companies, products, customers, enquiries, leads, activities), and utility operations (bulk delete, history management, trash management).

Development & Contribution:

The project encourages contributions and provides detailed setup instructions for both frontend and backend development, including prerequisites, environment configuration, and testing procedures.

It adheres to code standards for Flutter/Dart, uses camelCase for naming, GetX for state management, and follows RESTful API design principles.