feat: Complete Z.CRM system with all 6 modules

 Features:
- Complete authentication system with JWT
- Dashboard with all 6 modules visible
- Contact Management module (Salesforce-style)
- CRM & Sales Pipeline module (Pipedrive-style)
- Inventory & Assets module (SAP-style)
- Tasks & Projects module (Jira/Asana-style)
- HR Management module (BambooHR-style)
- Marketing Management module (HubSpot-style)
- Admin Panel with user management and role matrix
- World-class UI/UX with RTL Arabic support
- Cairo font (headings) + Readex Pro font (body)
- Sample data for all modules
- Protected routes and authentication flow
- Backend API with Prisma + PostgreSQL
- Comprehensive documentation

🎨 Design:
- Color-coded modules
- Professional data tables
- Stats cards with metrics
- Progress bars and status badges
- Search and filters
- Responsive layout

📊 Tech Stack:
- Frontend: Next.js 14, TypeScript, Tailwind CSS
- Backend: Node.js, Express, Prisma
- Database: PostgreSQL
- Auth: JWT with bcrypt

🚀 Production-ready frontend with all features accessible
This commit is contained in:
Talal Sharabi
2026-01-06 18:43:43 +04:00
commit 35daa52767
82 changed files with 29445 additions and 0 deletions

180
setup.sh Executable file
View File

@@ -0,0 +1,180 @@
#!/bin/bash
# Z.CRM - Quick Setup Script
# نظام إدارة علاقات العملاء - نظام إدارة شامل
set -e
echo "╔════════════════════════════════════════════════════════════╗"
echo "║ ║"
echo "║ Z.CRM System - نظام إدارة علاقات العملاء ║"
echo "║ Quick Setup Script ║"
echo "║ ║"
echo "╚════════════════════════════════════════════════════════════╝"
echo ""
# Colors
GREEN='\033[0;32m'
BLUE='\033[0;34m'
RED='\033[0;31m'
NC='\033[0m' # No Color
# Check if Node.js is installed
echo -e "${BLUE}[1/8] Checking prerequisites...${NC}"
if ! command -v node &> /dev/null; then
echo -e "${RED}❌ Node.js is not installed. Please install Node.js v18+ first.${NC}"
exit 1
fi
NODE_VERSION=$(node -v | cut -d'v' -f2 | cut -d'.' -f1)
if [ "$NODE_VERSION" -lt 18 ]; then
echo -e "${RED}❌ Node.js version must be 18 or higher. Current: $(node -v)${NC}"
exit 1
fi
echo -e "${GREEN}✅ Node.js $(node -v) detected${NC}"
# Check if PostgreSQL is installed
if ! command -v psql &> /dev/null; then
echo -e "${RED}❌ PostgreSQL is not installed. Please install PostgreSQL v14+ first.${NC}"
exit 1
fi
echo -e "${GREEN}✅ PostgreSQL detected${NC}"
# Install root dependencies
echo ""
echo -e "${BLUE}[2/8] Installing root dependencies...${NC}"
npm install
echo -e "${GREEN}✅ Root dependencies installed${NC}"
# Install backend dependencies
echo ""
echo -e "${BLUE}[3/8] Installing backend dependencies...${NC}"
cd backend
npm install
echo -e "${GREEN}✅ Backend dependencies installed${NC}"
# Setup backend environment
echo ""
echo -e "${BLUE}[4/8] Setting up backend environment...${NC}"
if [ ! -f .env ]; then
echo "Creating .env file..."
cat > .env << EOL
# Server Configuration
NODE_ENV=development
PORT=5000
API_VERSION=v1
# Database
DATABASE_URL="postgresql://postgres:postgres@localhost:5432/z_crm?schema=public"
# JWT
JWT_SECRET=z-crm-secret-key-change-this-in-production-$(date +%s)
JWT_EXPIRES_IN=7d
JWT_REFRESH_EXPIRES_IN=30d
# CORS
CORS_ORIGIN=http://localhost:3000
# File Upload
MAX_FILE_SIZE=10485760
UPLOAD_PATH=./uploads
# Pagination
DEFAULT_PAGE_SIZE=20
MAX_PAGE_SIZE=100
# Audit Log
AUDIT_LOG_RETENTION_DAYS=2555
# Security
BCRYPT_ROUNDS=10
RATE_LIMIT_WINDOW_MS=900000
RATE_LIMIT_MAX_REQUESTS=100
EOL
echo -e "${GREEN}✅ .env file created${NC}"
else
echo -e "${GREEN}✅ .env file already exists${NC}"
fi
# Database setup
echo ""
echo -e "${BLUE}[5/8] Setting up database...${NC}"
echo "Creating database 'z_crm' (this might fail if it already exists, which is okay)..."
psql -U postgres -c "CREATE DATABASE z_crm;" 2>/dev/null || echo "Database might already exist"
echo "Running Prisma migrations..."
npx prisma generate
npx prisma migrate dev --name init
echo -e "${GREEN}✅ Database migrations completed${NC}"
# Seed database
echo ""
echo -e "${BLUE}[6/8] Seeding database with initial data...${NC}"
npm run prisma:seed
echo -e "${GREEN}✅ Database seeded successfully${NC}"
# Install frontend dependencies
echo ""
echo -e "${BLUE}[7/8] Installing frontend dependencies...${NC}"
cd ../frontend
npm install
echo -e "${GREEN}✅ Frontend dependencies installed${NC}"
# Setup frontend environment
if [ ! -f .env.local ]; then
echo "NEXT_PUBLIC_API_URL=http://localhost:5000/api/v1" > .env.local
echo -e "${GREEN}✅ Frontend .env.local created${NC}"
fi
# Return to root
cd ..
echo ""
echo -e "${BLUE}[8/8] Setup complete!${NC}"
echo ""
echo "╔════════════════════════════════════════════════════════════╗"
echo "║ ║"
echo "║ ✅ Installation Complete! ║"
echo "║ ║"
echo "╚════════════════════════════════════════════════════════════╝"
echo ""
echo -e "${GREEN}📋 Default Login Credentials:${NC}"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
echo "1. General Manager (Full Access)"
echo " Email: gm@atmata.com"
echo " Password: Admin@123"
echo ""
echo "2. Sales Manager"
echo " Email: sales.manager@atmata.com"
echo " Password: Admin@123"
echo ""
echo "3. Sales Representative"
echo " Email: sales.rep@atmata.com"
echo " Password: Admin@123"
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
echo -e "${BLUE}🚀 To start the application:${NC}"
echo ""
echo " npm run dev"
echo ""
echo -e "${BLUE}📖 Access the application:${NC}"
echo ""
echo " Frontend: http://localhost:3000"
echo " Backend API: http://localhost:5000"
echo " Database GUI: npm run prisma:studio (in backend folder)"
echo ""
echo -e "${BLUE}📚 Documentation:${NC}"
echo ""
echo " Installation Guide: INSTALLATION.md"
echo " API Documentation: API_DOCUMENTATION.md"
echo " Main README: README.md"
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
echo -e "${GREEN}Happy coding! مجموعة أتمتة${NC}"
echo ""