A comprehensive Customer Relationship Management (CRM) and Service Management platform built with React, TypeScript, and Supabase. ACRMS provides role-based access control for different user types including administrators, technicians, sales staff, and customers.
- Multi-role Authentication System - Support for Admin, Technician, Sales, and User roles
- Service Request Management - Complete workflow from request creation to completion
- Asset Management - Track and manage company and customer assets with image uploads
- Inventory Management - Comprehensive inventory tracking with stock alerts
- Staff Management - Role-based user management with specialty assignments
- Calendar Integration - View and manage all requests by month
- Activity Logging - Complete audit trail of all system activities
- Contact Management - Comprehensive customer contact management
- Sales Pipeline - Track deals and sales opportunities
- Notification System - Real-time notifications for all users
- Full system access and configuration
- User and staff management
- Complete service request oversight
- Inventory and asset management
- Reports and analytics
- System notifications management
- Restricted from: My Assets, My Requests, Job Requests (focused on management)
- Technician-specific dashboard
- Job request management
- Asset access for assigned jobs
- Calendar view of assignments
- Activity logging for completed work
- Specialty-based job assignments
- Inventory access
- CRM functionality access
- Contact and pipeline management
- Product catalog access
- Reports and analytics
- Activity tracking
- Restricted from staff management
- Personal dashboard
- Asset management (own assets only)
- Service request creation and tracking
- Personal notifications
- Request status monitoring
- Real-time Updates - Live data synchronization across all users
- Image Upload - Asset image management with Supabase storage
- Responsive Design - Full mobile and desktop compatibility
- Dark/Light Mode - Complete theme switching with glassmorphism effects
- Search & Filtering - Advanced search across all modules
- Data Export - Export functionality for reports
- Currency Support - Nigerian Naira (β¦) formatting
- Contact Information Collection - Comprehensive user profile management
- Frontend: React 18, TypeScript, Vite
- UI Framework: Tailwind CSS, shadcn/ui components
- Backend: Supabase (PostgreSQL, Auth, Storage, Edge Functions)
- State Management: React Context, Custom Hooks
- Authentication: Supabase Auth with Row Level Security (RLS)
- Routing: React Router v6
- Forms: React Hook Form with Zod validation
- Icons: Lucide React
- Charts: Recharts
- Notifications: Sonner toast library
The system follows a modern client-server architecture:
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β React Client β β Supabase API β β PostgreSQL β
β β β β β Database β
βββββββββββββββββββ€ ββββββββββββββββββββ€ βββββββββββββββββββ€
β β’ Components βββββΊβ β’ Authentication βββββΊβ β’ Tables β
β β’ Hooks β β β’ REST API β β β’ RLS Policies β
β β’ Context β β β’ Real-time β β β’ Functions β
β β’ Utils β β β’ Storage β β β’ Triggers β
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
profiles- User profile information with contact detailsuser_roles- Role assignments and specialtiesservice_requests- Service request management with full lifecycleassets- Asset tracking and management with image supportactivity_logs- System audit trailnotifications- User notifications
- Users have profiles and roles with specialties
- Service requests belong to users and can be assigned to technicians
- Assets belong to users with image storage
- Activity logs track all system changes
- Notifications are user-specific with read status
- Node.js 18+ and npm/yarn
- Supabase account and project
-
Clone the repository
git clone <YOUR_GIT_URL> cd <YOUR_PROJECT_NAME>
-
Install dependencies
npm install # or yarn install -
Environment Setup
- The project is pre-configured with Supabase credentials
- Database URL:
https://ybsojrimjnczipcghsie.supabase.co - All environment variables are embedded in the client
-
Database Setup
- The database schema is automatically managed through Supabase migrations
- All tables, RLS policies, and functions are pre-configured
- Row Level Security (RLS) is enabled for all tables
-
Run the development server
npm run dev # or yarn dev -
Access the application
- Open http://localhost:5173 in your browser
- Create an account or sign in with existing credentials
npm run build
# or
yarn build- Register a new account through the authentication system
- Your role will be automatically assigned (default: user)
- Admin users can manage roles through Staff Management
- Complete your profile with contact information
- Navigate to "Service Request" from the sidebar
- Fill in request details including title, description, and priority
- Select appropriate job type and required specialty
- Submit and track progress through "My Requests"
- Go to "My Assets" to view your assets
- Add new assets with detailed specifications
- Upload images for better asset identification
- Track warranty and maintenance information
- Access "Inventory" from the sidebar
- View all company assets and supplies
- Monitor stock levels and low-stock alerts
- Add new inventory items as needed
- Navigate to "Staff Management"
- Create new user accounts with role assignments
- Assign specialties to technicians
- Manage user permissions and access levels
- Roles are managed through the
user_rolestable - Available roles:
admin,technician,sales,user,ceo,manager - Technicians can have specialties for automatic assignment
- RLS policies enforce role-based access control
- All prices displayed in Nigerian Naira (β¦)
- Currency formatting handled by
formatCurrencyutility - Supports large number formatting with proper separators
- Light/Dark mode support with theme toggle
- Glassmorphism effects in dark mode
- Semantic color system with HSL values
- Responsive design across all breakpoints
- Row Level Security (RLS) - All database access is secured
- Role-based Access Control - Features restricted by user role
- Secure Authentication - Supabase Auth integration
- Data Validation - Zod schema validation throughout
- XSS Protection - Sanitized inputs and outputs
- Image Upload Security - Secure file storage with Supabase Storage
- Activity Logging - Complete audit trail of all actions
- User Activity - Track user engagement and usage patterns
- System Performance - Monitor request completion times
- Inventory Tracking - Stock level monitoring and alerts
- Request Analytics - Service request lifecycle metrics
The project includes comprehensive system diagrams located in src/assets/diagrams/:
- ERD Diagram (
erd-diagram.png) - Database entity relationships - System Architecture (
system-architecture.png) - Overall system design - Use Case Diagram (
use-case-diagram.png) - User role interactions - Workflow Diagram (
workflow-diagram.png) - Service request lifecycle
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
For support and questions:
- Create an issue in the repository
- Check the documentation
- Review the component code for implementation details
- Open Lovable Project
- Click on Share β Publish
- Your app will be deployed automatically
- Navigate to Project > Settings > Domains
- Click Connect Domain
- Follow the setup instructions
This project is proprietary software. All rights reserved.
Built with β€οΈ using React, TypeScript, and Supabase for comprehensive business management.