Skip to content

MMansy19/Gheras-Manager

Repository files navigation

Ghras Task Manager

Version React TypeScript Tailwind CSS License

Advanced Task Management System for Volunteer Teams at Ghras Al-Ilm Academy

Quick StartFeaturesDocumentationSupport


📖 Overview

Ghras Task Manager is a professional SaaS platform built with modern technologies to manage volunteer team tasks at Ghras Al-Ilm Academy. The system provides an interactive Kanban board, comprehensive user management, and advanced analytics - all in Arabic with first-class RTL support.

🎯 Why This System?

Replaces manual processes (such as Google Sheets and WhatsApp groups) with a centralized system that provides:

  • ✅ Accurate tracking of tasks and accomplishments
  • ✅ Fair distribution of work among teams
  • ✅ Real-time reports and analytics
  • ✅ Complete transparency in performance
  • ✅ Visual achievements to motivate volunteers

✨ Key Features

🎯 Kanban Task System

New → Scheduled → In Progress → Issue → Completed → Documentation
  • Drag & Drop with full RTL support
  • Automatic logging of start and completion dates
  • Interactive cards with priorities and deadlines
  • Real-time updates with Optimistic UI

👥 User Management

  • Interactive table with search and filtering
  • Add and edit users
  • Multiple roles (Admin, Supervisor, Volunteer)
  • Team assignment and volunteer hours tracking

📊 Analytics Dashboard

  • Pie and bar charts
  • Volunteer ranking by achievement
  • Quick summaries of key metrics
  • Export-ready reports

🎨 Superior User Experience

  • Dark/Light mode automatic switching
  • Responsive design (Mobile-First)
  • Full RTL in every detail
  • Instant notifications for every action
  • Smooth animations

🚀 Quick Start

Prerequisites

  • Node.js 18+ and pnpm

Installation

# 1. Clone the project
git clone https://github.com/your-repo/ghras-admin.git
cd ghras-admin

# 2. Install packages
pnpm install

# 3. Setup environment
Copy-Item .env.example .env

# 4. Run the application
pnpm run dev

The application will run on http://localhost:3000 🎉

Additional Commands

pnpm run build      # Build production version
pnpm run preview    # Preview production build
pnpm run test       # Run tests
pnpm run lint       # Code quality check

📘 For more details: Read the Quick Start Guide


🛠️ Technology Stack

Category Technology Version
Frontend React + TypeScript 18.2 / 5.3
Build Tool Vite 5.0
Styling Tailwind CSS 3.4
State TanStack Query 5.0
Routing React Router 6.21
DnD @hello-pangea/dnd 16.5
Charts Recharts 2.10
Validation Zod 3.22
Notifications React Hot Toast 2.4
Testing Vitest + Testing Library Latest

📁 Project Structure

ghras-admin/
├── 📄 index.html              # RTL entry point
├── 📦 package.json            # Dependencies
├── ⚙️  vite.config.ts         # Vite configuration
├── 🎨 tailwind.config.js     # Design system
├── 📝 tsconfig.json          # TypeScript strict mode
├── 📚 src/
│   ├── 🚀 main.tsx           # Entry point + React Query
│   ├── 🎨 index.css          # Complete design system
│   ├── 📋 types.ts           # Zod Schemas + Types
│   │
│   ├── 📡 api/
│   │   └── mockApi.ts        # Mock API (ready for replacement)
│   │
│   ├── 🎣 hooks/
│   │   ├── useRole.ts        # Role management
│   │   └── useDarkMode.ts    # Dark mode
│   │
│   ├── 🧩 components/
│   │   ├── ErrorBoundary.tsx # Error handling
│   │   ├── ToastProvider.tsx # Notifications
│   │   ├── Modal.tsx         # Modal dialogs
│   │   ├── LoadingSpinner.tsx
│   │   └── EmptyState.tsx
│   │
│   ├── 🏗️  layouts/
│   │   └── AppLayout.tsx     # Main layout
│   │
│   └── 📄 pages/
│       ├── Home.tsx           # Role selection
│       ├── TeamDashboard.tsx  # Kanban Board
│       ├── UsersManagement.tsx
│       └── Statistics.tsx
│
├── 📖 README.md              # This file
├── 📘 docs/SETUP.md          # Setup guide
└── 📊 docs/PROJECT_SUMMARY.md # Comprehensive summary

🎯 Usage Guide

1️⃣ Select Your Role

  • Admin → Full permissions
  • Supervisor → Task and user management
  • Volunteer → Personal task management

2️⃣ Task Management (Kanban)

  • Select your team from the sidebar
  • Drag tasks between columns
  • Click ➕ to add a task (Admin/Supervisor)
  • Click ✏️ to edit or 🗑️ to delete

3️⃣ User Management (Admin/Supervisor)

  • Use search to find users
  • Add new accounts with specific roles
  • Enable or disable accounts with one click

4️⃣ View Analytics

  • Task distribution by status
  • Team and volunteer performance
  • Key metrics summaries

🎨 Design System

Colors

  • Primary: #059669 (Emerald green)
  • Background: #f8fafc / #1e293b (Light/Dark)
  • Task States: 6 distinct colors
  • Priorities: 4 color-coded levels

Typography

  • Cairo - Professional Arabic font from Google Fonts
  • Scales from xs to 6xl

Components

  • Buttons (btn, btn-primary, btn-secondary, btn-danger)
  • Cards (card, card-hover)
  • Badges (badge with state variants)
  • RTL-formatted tables
  • Modal dialogs (Modal with Portal)

📘 For full details: Read the Project Summary


🔐 Permission System (RBAC)

Admin

✅ All permissions
✅ User management
✅ Task management
✅ View analytics
✅ All teams

Supervisor

✅ User management
✅ Task management
✅ View analytics
✅ All teams

Volunteer

✅ View team tasks
✅ Move tasks
✅ Log work hours
❌ Cannot create/delete tasks
❌ No management access


📱 Responsive Design

Device Size Features
📱 Mobile < 768px Dropdown menu, vertical columns
📲 Tablet 768-1024px Fixed sidebar, medium grid
💻 Desktop > 1024px Full layout, 6 columns

🔄 Backend Integration

The application is ready for integration with a Laravel backend:

Integration Steps

  1. Update environment variables
# In .env
VITE_API_URL=http://localhost:8000/api
  1. Replace Mock API
// Before (Mock)
export const fetchTasks = async () => {
  await delay();
  return MOCK_TASKS;
};

// After (Real API)
export const fetchTasks = async () => {
  const response = await fetch(`${API_URL}/tasks`);
  const data = await response.json();
  return data.map(task => TaskSchema.parse(task));
};
  1. Add Authentication
// Add JWT tokens
const token = localStorage.getItem('token');
headers: { 'Authorization': `Bearer ${token}` }

Laravel API Requirements

  • Laravel 11+ with Sanctum
  • MySQL database
  • RESTful API endpoints
  • Zod schema validation

📘 For more details: See Project Documentation


🧪 Testing

# Run all tests
pnpm run test

# With coverage
pnpm run test -- --coverage

# Watch mode
pnpm run test -- --watch

Test Coverage

  • ✅ Core React components
  • ✅ Custom hooks
  • ✅ API functions
  • ✅ Zod validation
  • ⏳ E2E tests (in development)

📚 Documentation


🤝 Contributing

Contributions are welcome! To get started:

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

Contribution Guidelines

  • ✅ Strict TypeScript code
  • ✅ Tests for every new feature
  • ✅ Arabic documentation
  • ✅ RTL everywhere
  • ✅ Follow existing code style

🔍 SEO & Performance

Optimizations Included

Meta Tags

  • Comprehensive title and description
  • Open Graph tags for social sharing
  • Twitter Card metadata
  • Keywords and language tags

PWA Support

  • Manifest.json for installability
  • Service worker ready
  • Offline-first architecture

Performance

  • Image optimization (WebP format)
  • Font preloading (Cairo)
  • Code splitting with Vite
  • Lazy loading components
  • Optimized bundle size

SEO Files

  • robots.txt for search engines
  • sitemap.xml for indexing
  • Structured data (JSON-LD)
  • Canonical URLs
  • _headers for security and caching

Accessibility

  • ARIA labels throughout
  • Semantic HTML
  • Keyboard navigation
  • Screen reader support
  • High contrast ratios

Performance Metrics Target

  • First Contentful Paint: < 1.8s
  • Largest Contentful Paint: < 2.5s
  • Time to Interactive: < 3.8s
  • Cumulative Layout Shift: < 0.1
  • First Input Delay: < 100ms

📄 License

This project is developed for Ghras Al-Ilm Academy.
All rights reserved © 2025


🙏 Acknowledgments

  • Ghras Al-Ilm Academy Team - Vision and guidance
  • React Team - Amazing framework
  • Tailwind Labs - Outstanding design system
  • TanStack - Powerful state management tools
  • Open Source Community - All libraries used

💬 Support

For assistance:

  1. 📖 Read the Quick Start Guide
  2. 📊 Review the Project Summary
  3. 🐛 Open an Issue on GitHub
  4. 💬 Contact via Telegram: @ghras_support

Quick Links


Made with ❤️ for Ghras Al-Ilm Academy

Version: 1.0.0 | Last Updated: November 2025

⬆ Back to Top

About

Ghras Task Manager is a professional SaaS platform built with modern technologies to manage volunteer team tasks at Ghras Al-Ilm Academy. The system provides an interactive Kanban board, comprehensive user management, and advanced analytics - all in Arabic with first-class RTL support.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors