# Product Requirements Document (PRD)
## Libra Law Firm Website

**Version:** 1.2
**Date:** January 3, 2026
**Domain:** libra.ps
**Prepared for:** Development Team & Client Review

---

## 1. Executive Summary

Libra Law Firm requires a professional, bilingual (Arabic/English) web platform to manage client consultations, appointments, and case tracking. The system will serve as both a public-facing website and an internal management tool for the law firm's operations.

---

## 2. Project Objectives

- Provide a professional online presence for Libra Law Firm
- Streamline consultation booking process
- Manage client accounts and case timelines
- Enable the lawyer to publish legal content/updates
- Maintain professional, detail-oriented design standards
- Ensure easy usability for both admin and clients

---

## 3. Target Audience

### Primary Users:
- General public with legal concerns (all law practice areas)
- Individual clients and corporate/business clients
- Arabic-speaking primary audience with English language support

### Admin User:
- Single lawyer/firm owner
- Manages all aspects of the platform
- Female lawyer with high attention to detail and professional standards

---

## 4. Technical Specifications

### 4.1 Technology Stack
- **Framework:** Laravel 11.x (latest stable version)
- **Frontend:** Blade Templates
- **CSS Framework:** Bootstrap 5.3+ with RTL support
- **Database:** MariaDB (latest stable)
- **Authentication:** Laravel's built-in authentication
- **Server:** Rocky Linux 9 (client-managed infrastructure)
- **Email Server:** SMTP (details to be configured in .env)
- **PHP Version:** PHP 8.2+

### 4.2 Language Support
- **Primary Language:** Arabic (default)
- **Secondary Language:** English
- **Implementation:** Full site language toggle
- **Layout:** RTL (Right-to-Left) for Arabic, LTR for English
- **Content:** All UI elements, notifications, and admin interface in both languages
- **Numerals:** Western numerals (123) for both languages
- **Time Format:** 12-hour format (AM/PM) for both languages
- **Date Format:**
  - Arabic: DD/MM/YYYY (e.g., ٢٠/١٢/٢٠٢٥)
  - English: MM/DD/YYYY (e.g., 12/20/2025)

---

## 5. Core Features & Requirements

### 5.1 Landing Page (About Us)

**Purpose:** Main entry point showcasing the law firm

**Components:**
- Company introduction and overview
- Team/lawyer personal information
- Professional, elegant design reflecting law firm standards
- Embedded simplified booking form
- Call-to-action elements
- Responsive design (mobile, tablet, desktop)

**Design Requirements:**
- Highly professional aesthetic
- Detail-oriented with polished elements
- Clean lines and sophisticated typography
- Color palette: Charcoal with Warm Gray accents (see docs/brand.md)
- Libra scales logo prominently displayed
- Elegant, refined visual elements
- Easy navigation despite sophistication

---

### 5.2 Navigation System

**Structure:**
- Fixed top navigation bar
- Language toggle (Arabic/English)
- Main menu items:
  - Home/About Us
  - Booking/Consultations
  - Posts/Updates
  - Login (for registered clients)
- Responsive mobile menu
- Clear visual hierarchy

---

### 5.3 User Management System

**User Types:**

#### A. Individual Clients
- Full Name
- National ID Number
- Email Address
- Phone Number
- Password (set by admin)

#### B. Company/Corporate Clients
- Company Name
- Company Certificate/Registration Number
- Contact Person Name
- Contact Person ID
- Email Address
- Phone Number
- Password (set by admin)
- **Note:** Unlimited contact persons per company account

**Key Features:**
- **No self-registration** - all accounts created by admin only
- System clearly distinguishes between individual and company accounts
- Admin manually sets passwords for all users
- No password reset functionality for users (admin must reset manually)
- Email notification sent to user upon account creation with login credentials
- User profile management by admin
- Account activation/deactivation by admin
- Admin can convert individual accounts to company accounts and vice versa

**Account Management:**
- **Deactivate Account:** User cannot login, but all data is retained
- **Delete Account:** Permanently removes user and all associated data
- Deactivated accounts can be reactivated by admin
- Deleted accounts cannot be recovered

---

### 5.4 Booking & Consultation System

**Consultation Details:**
- **Actual Duration:** 45 minutes per session
- **Booking Slot:** 1 hour (45 min consultation + 15 min buffer)
- **Types:** Free or Paid (determined by admin after submission)
- **Working Hours:** Configurable by admin via dashboard
- **Payment:** No online payment gateway (handled offline)
- **Client Limit:** Maximum 1 consultation per client per day
- **Advance Booking:** Clients can book without payment confirmation
- **Admin Flexibility:** Admin decides how to handle no-shows and missed appointments

**Booking Flow:**

1. **Client Initiates Booking:**
   - Logs into their account
   - Views available dates/times in calendar
   - Selects preferred date and time
   - System checks: no more than 1 booking per day for this client
   - Provides detailed problem summary (text field)
   - Submits booking request

2. **Request Status: Pending**
   - Booking enters pending queue
   - Admin receives email notification at no-reply@libra.ps
   - Client sees "Pending Review" status

3. **Admin Reviews:**
   - Reviews problem summary
   - Determines if consultation is Free or Paid
   - Sets consultation type
   - If paid, admin can specify amount/payment instructions
   - Approves or rejects booking

4. **Booking Confirmed:**
   - Client receives approval email notification
   - If paid: email includes payment instructions (offline)
   - Calendar event automatically generated
   - Downloadable .ics calendar file provided
   - Admin can mark payment as received (for paid consultations)
   - Payment confirmation not required before appointment

**Calendar System Features:**
- Real-time availability display
- Admin sets working hours per day of week
- Admin can block time slots for personal events
- Shows booked appointments (blocks those times for other clients)
- 15-minute automatic buffer time between appointments
- Visual indicator for availability
- System prevents double-booking
- System prevents client from booking more than 1 consultation per day

**Admin Controls:**
- View all bookings (pending, approved, completed, cancelled, no-show)
- Filter by consultation type (free/paid)
- Filter by date range
- Mark consultations as completed
- Mark consultations as no-show
- Cancel bookings on behalf of clients
- Reschedule appointments
- Flexible handling of no-shows (admin decides action)
- Mark payment as received/pending for paid consultations

**Client Restrictions:**
- Cannot cancel their own bookings (must contact admin)
- Cannot reschedule directly (must contact admin)
- Maximum 1 consultation per day
- Cannot book if payment is marked as required but not confirmed (admin discretion)

**Email Notifications:**

*To Client (from no-reply@libra.ps):*
- Account created with login credentials
- Booking submitted confirmation
- Booking approved/rejected notification
- Consultation reminder (24 hours before)
- Consultation reminder (2 hours before)
- Timeline update notification
- All notification emails are mandatory (no opt-out)

*To Admin:*
- New booking request submitted
- New user registration (if applicable in future)
- System notifications - critical system events

#### Guest Booking Flow

In addition to client bookings, the system supports guest bookings for visitors without accounts.

**Guest Booking Process:**

1. **Guest Visits /booking:**
   - Views available dates/times in calendar
   - Selects preferred date and time
   - Enters contact information (name, email, phone)
   - Provides problem summary
   - Completes captcha verification
   - Submits booking request

2. **Spam Protection:**
   - Custom math-based captcha (no third-party services)
   - 1 booking request per email per day
   - 5 booking requests per IP per 24 hours

3. **Guest Booking Status:**
   - Booking enters pending queue (same as client bookings)
   - Admin receives notification with guest contact info
   - Guest receives email confirmation

4. **Admin Reviews Guest Booking:**
   - Guest bookings appear in pending queue with "Guest" indicator
   - Admin sees guest name, email, phone
   - Same approval/rejection workflow as client bookings

5. **Guest Notifications:**
   - Confirmation email on submission
   - Approval email with calendar file on approval
   - Rejection email with reason on rejection

**Guest vs Client Comparison:**

| Feature | Client Booking | Guest Booking |
|---------|---------------|---------------|
| Account Required | Yes | No |
| 1-per-day Limit | By user_id | By email |
| Contact Info | From user profile | Entered at booking |
| Email Notifications | To user email | To guest_email |
| View Past Bookings | In dashboard | N/A |
| Captcha | Not required | Required |

**Note:** Logged-in users visiting `/booking` are redirected to the client booking page.

---

### 5.5 Case Tracking Timeline System

**Overview:**
Each client can have multiple case timelines to track progress on different legal matters.

**Timeline Structure:**
- **Case Name/Reference:** Set by admin when creating timeline
- **Creation Date:** Automatically recorded
- **Status:** Active or Archived
- **Updates:** Text-based entries added by admin

**Features:**

**Admin Capabilities:**
- Create new timeline for any client
- Create unlimited timelines per client
- Assign case name/reference number
- Add text-based updates/milestones
- Edit existing timeline entries
- Archive/close timelines when cases are resolved
- View all timelines across all clients

**Client View:**
- See list of all their timelines/cases (both active and archived)
- View detailed timeline for each case
- Read admin updates in chronological order
- Receive email notification when timeline is updated
- Cannot add comments or respond to timeline updates
- Cannot edit timeline entries
- Archived timelines remain visible to clients

**Timeline Entry Components:**
- Date/timestamp (automatic)
- Admin name (automatic)
- Update text (entered by admin)
- Entry edit history

**Note:** 
- No document upload functionality - text updates only
- Strictly one-way communication (admin to client)
- Clients cannot interact with timelines beyond viewing

---

### 5.6 Posts/Blog Section

**Purpose:** Admin-only content publishing for legal updates, articles, news

**Features:**

**Content Management:**
- Admin creates posts with title and body content
- Text content only (no media uploads for now)
- Rich text editor for formatting
- Immediate publishing (no scheduling)
- Edit published posts
- Delete posts
- Posts display in reverse chronological order
- Simple search functionality (title and body)
- No categories or tags at this time
- No SEO optimization (meta descriptions, custom slugs) at this time

**Public Display:**
- Posts visible to all website visitors (no login required)
- Clean, readable layout
- Responsive design
- No comments functionality
- No user interaction (read-only)
- Search bar to find posts

**Admin Interface:**
- List view of all posts
- Quick edit/delete actions
- Post preview before publishing
- Draft saving capability
- Search through existing posts

---

### 5.7 Admin Dashboard

**Overview:**
Central control panel for lawyer to manage all platform operations

**Dashboard Components:**

#### A. Overview/Statistics (Main Dashboard):
- **User Metrics:**
  - Total active clients (individual vs company breakdown)
  - Total deactivated clients
  - New clients this month
  
- **Booking Metrics:**
  - Pending booking requests count
  - Today's consultations count
  - This week's consultations count
  - This month's consultations count
  - Total consultations (all time)
  - Free vs Paid consultations breakdown
  - No-show rate percentage
  
- **Timeline Metrics:**
  - Total active case timelines
  - Total archived timelines
  - Updates added this week
  
- **Posts Metrics:**
  - Total published posts
  - Posts published this month

**Visual Representation:**
- Clean card-based layout
- Charts for monthly trends (line/bar charts)
- Color-coded status indicators
- Quick stats at a glance

#### B. Booking Management:
- List of pending booking requests
- Today's approved consultations
- Upcoming consultations calendar view
- Filter by: consultation type, date range, status, payment status
- Quick approve/reject actions
- Mark as completed/no-show
- Mark payment as received

#### C. User Management:
- List all users (individual and company separate views)
- Search users by name, email, ID
- Create new user account
- Edit user information
- Convert individual to company or vice versa
- Reset user password
- Deactivate user account (data retained)
- Delete user account (permanent removal)
- View user's consultation history
- View user's case timelines

#### D. Working Hours Configuration:
- Set available days of the week
- Set start/end times for each day
- Set different hours for different days
- Block specific dates/times
- 15-minute buffer time automatically applied between appointments

#### E. Timeline Management:
- View all active timelines
- Create new timeline for client
- Create multiple timelines per client
- Add updates to existing timelines
- Archive completed timelines
- Filter by client or case status

#### F. Posts Management:
- Create new post
- Edit/delete existing posts
- View all posts
- Search posts
- Simple list interface

#### G. Reports & Exports:
- **Export Options:**
  - User list (CSV, PDF)
  - Consultation records (CSV, PDF)
  - Timeline reports (CSV, PDF)
  - Monthly statistics summary (PDF)
  
- **Date Range Filters:**
  - Custom date range selection
  - Preset ranges (This Month, Last Month, This Quarter, This Year)

#### H. Settings:
- Profile information
- Email notification preferences
- System configurations
- Terms of Service page editor
- Privacy Policy page editor

**Design Requirements:**
- Clean, professional interface
- Easy navigation between sections
- Quick action buttons for common tasks
- Responsive design for tablet use
- Arabic-first with English toggle
- Clear visual hierarchy
- Charcoal and Warm Gray color scheme (see docs/brand.md)

---

### 5.8 Client Dashboard

**Purpose:** Client portal to access their information and services

**Dashboard Components:**

#### A. Overview:
- Upcoming consultations
- Active case timelines count
- Recent timeline updates (last 3)
- Booking limit status (1 per day indicator)

#### B. My Consultations:
- Upcoming consultations with details
- Past consultation history
- Pending booking requests status
- Download calendar files (.ics)
- Payment status for paid consultations
- Consultation type indicator (Free/Paid)

#### C. My Cases/Timelines:
- List of all timelines (active and archived clearly separated)
- Click to view detailed timeline
- See updates in chronological order
- Status indicators (active/archived)
- Visual distinction between active and archived

#### D. Profile:
- View personal/company information
- Contact details
- Account type (individual/company)
- Cannot edit (admin only)

#### E. New Booking:
- Quick access to booking form
- Calendar view of availability
- Submit new consultation request
- Warning if already booked for selected day

**Design Requirements:**
- Simple, intuitive interface
- Professional yet accessible design
- Clear status indicators
- Mobile-friendly
- Consistent with main site design
- Charcoal and Warm Gray color scheme (see docs/brand.md)

---

## 6. User Roles & Permissions

### 6.1 Admin Role
**Full Access:**
- All CRUD operations on users
- Convert user types (individual ↔ company)
- Deactivate and delete accounts
- All booking management functions
- All timeline management
- All post management
- System configuration
- Working hours management
- View all data and reports
- Export data (CSV, PDF)
- Edit Terms of Service and Privacy Policy

### 6.2 Client Role
**Limited Access:**
- View own profile (cannot edit)
- Submit booking requests (max 1 per day)
- View own consultations
- View own timelines (read-only, including archived)
- Cannot cancel/modify bookings
- Cannot reset own password
- Cannot comment on timelines
- Cannot opt-out of email notifications

---

## 7. Design Requirements

### 7.1 Brand Identity & Visual Guidelines

#### A. Color Palette

> **Note:** The color palette was updated in Epic 10 (Brand Color Refresh).
> See `docs/brand.md` for complete and current brand guidelines.

**Primary Colors:**
- **Charcoal:** #4A4A42
  - Usage: Primary brand color, buttons, links, headings
  - Creates professional, grounded atmosphere

- **Warm Gray:** #C9C4BA
  - Usage: Accent elements, secondary buttons, borders, dividers
  - Represents sophistication, balance, legal authority

**Supporting Colors:**
- **Off-White:** #E8E4DC (backgrounds, card backgrounds, hover states)
- **Deep Black:** #1A1A1A (text, footer, high-contrast elements)
- **Success Green:** #27AE60 (approved status, success messages)
- **Warning Red:** #E74C3C (rejected status, error messages)
- **Pending Yellow:** #F39C12 (pending status indicators)

**Accessibility Compliance:**
- All text/background combinations meet WCAG AA standards
- Minimum contrast ratio of 4.5:1 for body text
- Minimum contrast ratio of 3:1 for large text and UI elements

#### B. Logo Usage

**Botanical/Wheat Libra Symbol:**
- Primary logo featuring botanical wheat stalks forming Libra scales
- Symbol represents growth, balance, and natural justice
- Logo placement:
  - Top left corner of navigation (desktop)
  - Centered in mobile navigation
  - Footer (smaller version)

**Logo Specifications:**
- Minimum size: 120px width (desktop), 80px width (mobile)
- Clear space: Minimum 20px padding on all sides
- Acceptable formats: SVG (primary), PNG (fallback)
- Color variations:
  - Charcoal on Off-White - primary use
  - Off-White on Charcoal - for dark sections
  - Monochrome Deep Black - for special applications

#### C. Typography

**Arabic Font:**
- **Primary:** Cairo or Tajawal (Google Fonts)
- **Characteristics:** Modern, professional, highly legible
- **Weights:** Light (300), Regular (400), SemiBold (600), Bold (700)

**English Font:**
- **Primary:** Montserrat or Lato
- **Characteristics:** Clean, professional, pairs well with Arabic fonts
- **Weights:** Light (300), Regular (400), SemiBold (600), Bold (700)

**Font Hierarchy:**
- **H1 (Page Titles):** Bold, 2.5rem (40px)
- **H2 (Section Headings):** SemiBold, 2rem (32px)
- **H3 (Subsection Headings):** SemiBold, 1.5rem (24px)
- **Body Text:** Regular, 1rem (16px)
- **Small Text/Captions:** Regular, 0.875rem (14px)
- **Line Height:** 1.6 for body text, 1.3 for headings

#### D. Visual Elements

**Accent Usage:**
- Primary action buttons (solid Charcoal background)
- Secondary buttons (Warm Gray outline)
- Links and hover states
- Decorative dividers between sections
- Icon highlights
- Active state indicators
- Border highlights on cards

**Cards & Containers:**
- Subtle box-shadow: 0 2px 8px rgba(0,0,0,0.1)
- Border-radius: 8px for consistency
- Card backgrounds: Off-White (#E8E4DC) on page background
- Padding: 24px standard internal padding

**Icons:**
- Style: Line-based, minimalist (e.g., Feather Icons or Bootstrap Icons)
- Color: Charcoal for primary actions, Warm Gray for secondary
- Size: 24px standard, 32px for featured icons

**Buttons:**
- **Primary Button:**
  - Background: Charcoal (#4A4A42)
  - Text: Off-White (#E8E4DC)
  - Hover: Deep Black (#1A1A1A)
  - Border-radius: 6px
  - Padding: 12px 24px

- **Secondary Button:**
  - Background: Transparent
  - Border: 2px solid Warm Gray (#C9C4BA)
  - Text: Charcoal (#4A4A42)
  - Hover: Warm Gray background with Charcoal text

- **Disabled State:**
  - Background: #CCCCCC
  - Text: #666666
  - No hover effect

**Background Patterns (Optional):**
- Subtle texture or geometric pattern on Off-White backgrounds
- Very low opacity (5-10%) to add depth without distraction
- Botanical/wheat motif integrated subtly if desired

#### E. Spacing & Layout

**Grid System:**
- Bootstrap 5 12-column grid
- Container max-width: 1200px
- Gutter width: 24px

**Spacing Scale:**
- xs: 4px
- sm: 8px
- md: 16px
- lg: 24px
- xl: 32px
- xxl: 48px

**Section Padding:**
- Desktop: 64px vertical, 24px horizontal
- Tablet: 48px vertical, 20px horizontal
- Mobile: 32px vertical, 16px horizontal

### 7.2 Design Principles
- **Professional:** High-end law firm standard
- **Elegant:** Subtle, refined touches throughout
- **Accessible:** Easy to use despite sophistication
- **Responsive:** Perfect display on all devices
- **Consistent:** Unified design language across all pages
- **Attention to Detail:** Polished micro-interactions and transitions

### 7.3 UI/UX Requirements
- Intuitive navigation
- Clear call-to-action buttons with gold accents
- Proper form validation with helpful error messages
- Loading states for async operations
- Success/error notifications (toast messages or modal)
- Consistent spacing and alignment
- Accessible color contrast ratios
- Clear visual feedback for user actions
- Smooth transitions and animations (subtle, professional)
- Mobile-first responsive design

### 7.4 Responsive Breakpoints
- **Mobile:** < 576px
- **Tablet:** 576px - 991px
- **Desktop:** 992px - 1199px
- **Large Desktop:** ≥ 1200px

---

## 8. Email System

### 8.1 Email Server
- SMTP configuration provided by client team
- Configuration via .env file
- **Sender Email:** no-reply@libra.ps
- **Sender Name:** Libra Law Firm / مكتب ليبرا للمحاماة

### 8.2 Email Templates
All emails in both Arabic and English based on user preference:

**Client Emails (Mandatory - No Opt-out):**
1. **Welcome Email** - Account created with login credentials
2. **Booking Confirmation** - Request submitted successfully
3. **Booking Approved** - With consultation details, payment instructions (if paid), and calendar file
4. **Booking Rejected** - With reason (if provided)
5. **Consultation Reminder** - 24 hours before
6. **Consultation Reminder** - 2 hours before
7. **Timeline Update** - When admin adds update to their case

**Admin Emails:**
1. **New Booking Request** - With client details and problem summary
2. **System Notifications** - Critical system events

**Guest Emails:**
1. **Guest Booking Confirmation** - Request submitted successfully
2. **Guest Booking Approved** - With consultation details and calendar file
3. **Guest Booking Rejected** - With reason (if provided)

### 8.3 Email Requirements
- Professional email templates matching brand design (Charcoal & Warm Gray)
- Mobile-responsive email layout
- Plain text fallback
- Clear subject lines (bilingual based on user preference)
- Logo and branding elements in header
- Consistent typography and spacing
- Call-to-action buttons (Charcoal) where applicable
- Footer with firm contact information

---

## 9. Security & Data Privacy

### 9.1 Authentication & Authorization
- Secure password hashing (Laravel default: bcrypt)
- Session management with timeout (2 hours inactivity)
- Role-based access control (admin vs client)
- CSRF protection on all forms
- XSS prevention
- Rate limiting on login attempts

### 9.2 Data Protection
- All sensitive client data encrypted in database
- Secure HTTPS connection (SSL certificate required)
- Regular backup schedule (managed by client infrastructure team)
- Audit logs for admin actions (user edits, account deletions, booking modifications)
- Secure password storage (hashed, never plain text)

### 9.3 User Privacy
- No public display of client information
- Case timelines private to assigned client
- Secure login required for all client data access
- Admin-only access to user management
- Clear deactivation vs deletion policies
- **Terms of Service page** (admin editable)
- **Privacy Policy page** (admin editable)

### 9.4 Data Retention
- **Deactivated Accounts:** All data retained indefinitely until admin deletes
- **Deleted Accounts:** Permanent removal of all associated data (consultations, timelines, bookings)
- **Backups:** Follow client infrastructure backup schedule

---

## 10. Legal & Compliance

### 10.1 Required Pages
- **Terms of Service:** Admin-editable page, accessible from footer
- **Privacy Policy:** Admin-editable page, accessible from footer
- Both pages available in Arabic and English

### 10.2 Compliance Notes
- No specific Palestinian legal requirements identified at this time
- Standard best practices for data privacy applied
- Client consent implied through account usage
- Cookie consent: To be determined (not specified in requirements)

---

## 11. Analytics & Reporting

### 11.1 Admin Dashboard Analytics

**Real-time Metrics:**
- Active users online
- Pending booking requests
- Today's consultations

**Historical Metrics:**
- New clients per month (chart)
- Consultations per month (chart)
- Free vs Paid consultations trend (chart)
- No-show rate over time (chart)

**Visualization:**
- Simple line/bar charts
- Color-coded cards for quick stats
- Percentage indicators for growth/decline
- No complex analytics tools required

### 11.2 Export Functionality

**Export Formats:**
- CSV (for data analysis)
- PDF (for presentation/printing)

**Exportable Data:**
- **User Lists:**
  - All users with details
  - Individual clients only
  - Company clients only
  - Filterable by date range, status (active/deactivated)
  
- **Consultation Records:**
  - All consultations with client details
  - Filter by date range, consultation type, status, payment status
  - Include client problem summaries
  
- **Timeline Reports:**
  - All timelines for a specific client
  - All timelines across all clients
  - Filter by active/archived status
  
- **Monthly Statistics Summary (PDF):**
  - Overview of all key metrics for selected month
  - Charts and graphs included
  - Professional PDF template with branding

**Export Location:**
- Button in each management section
- Admin dashboard has "Generate Monthly Report" button
- Exports download directly to admin's device

---

## 12. Development Phases

### Phase 1: Core Setup (Week 1)
- Laravel 11.x project setup
- Database schema design and migration
- Authentication system implementation
- Admin and client role implementation
- Bilingual support infrastructure (Arabic/English)
- RTL/LTR layout switching
- Base UI/UX framework with brand colors

### Phase 2: User Management (Week 1-2)
- Admin creates user accounts (individual/company)
- User type conversion functionality
- User profile views
- Password management by admin
- Account deactivation/deletion logic
- Email notifications for account creation
- User search and filtering

### Phase 3: Booking System (Week 2-3)
- Calendar interface with availability display
- Working hours configuration
- Booking request flow
- Admin approval workflow
- Consultation type assignment (free/paid)
- Email notifications (booking confirmations, reminders)
- Calendar file generation (.ics)
- Payment status tracking (offline)
- 1 consultation per day per client validation
- 15-minute buffer time implementation

### Phase 4: Timeline System (Week 3-4)
- Create timelines for clients
- Add/edit timeline updates
- Client timeline view (read-only)
- Archive/unarchive functionality
- Email notifications for updates
- Multiple timelines per client support

### Phase 5: Posts System (Week 4)
- Admin post creation with rich text editor
- Public posts display
- Edit/delete functionality
- Search functionality
- Draft saving

### Phase 6: Dashboards (Week 5)
- Admin dashboard with overview and analytics
- Client dashboard with overview
- Statistics and charts
- Quick action interfaces
- Export functionality (CSV, PDF)

### Phase 7: Design & Branding (Week 5-6)
- Logo integration and brand identity implementation
- Professional design implementation (Charcoal & Warm Gray palette)
- UI/UX refinement
- Responsive design testing
- RTL/LTR layout perfection
- Email template design
- Terms of Service and Privacy Policy pages

### Phase 8: Testing & Deployment (Week 6-7)
- Functional testing
- Security testing
- Cross-browser testing (Chrome, Firefox, Safari, Edge)
- Mobile responsiveness testing (iOS, Android)
- Email template testing
- Export functionality testing
- User acceptance testing (UAT) with client
- Production deployment on Rocky Linux 9
- SSL certificate configuration
- Final review and adjustments

---

## 13. Success Criteria

### 13.1 Functional Success
- Admin can manage all users efficiently
- User type conversion works seamlessly
- Account deactivation/deletion functions correctly
- Booking system handles appointments smoothly with 1-per-day limit
- Clients can easily request consultations
- Timeline system tracks cases effectively (multiple per client)
- Email notifications delivered reliably from no-reply@libra.ps
- Both languages work flawlessly with proper RTL/LTR
- Posts are searchable and manageable
- Analytics display accurate data
- Exports generate correctly (CSV, PDF)

### 13.2 Design Success
- Professional, polished appearance with Charcoal and Warm Gray branding
- Logo properly integrated throughout
- Easy to use for non-technical users
- Positive feedback from lawyer/admin
- Mobile experience is seamless
- Brand identity properly reflected in all elements

### 13.3 Technical Success
- Stable performance under normal load
- Secure data handling with encryption
- No critical bugs
- Fast page load times (< 3 seconds)
- Compatible with major browsers
- Proper RTL/LTR functionality
- Email delivery is reliable
- Exports complete within reasonable time

---

## 14. Open Items / Future Discussion

### 14.1 Timeline System Enhancements (Future)
- Private admin notes feature (not visible to client)
- Timeline status types beyond active/archived
- Document attachment capability

### 14.2 Post-Launch Items
- Admin training on dashboard usage
- User documentation (client guide)
- Maintenance and update plan
- Feature enhancements based on usage feedback
- Cookie consent implementation (if needed)
- Advanced SEO for posts (meta tags, custom URLs)

### 14.3 Potential Future Features
- Native mobile apps (iOS/Android)
- Online payment gateway integration
- Post categories and tagging
- Advanced analytics and business intelligence
- Multi-admin support
- Client self-service password reset (with admin approval)
- SMS notifications
- Video consultation integration

---

## 15. Assumptions & Constraints

### 15.1 Assumptions
- Client will provide logo in vector format (SVG preferred)
- Email server configuration will be provided with working credentials
- Rocky Linux 9 server infrastructure is ready and accessible
- Domain (libra.ps) is registered and DNS configured
- SSL certificate will be obtained and configured by client team
- Server has sufficient resources for MariaDB, PHP 8.2+, and Laravel 11
- Admin has basic computer literacy for dashboard usage

### 15.2 Constraints
- Single admin user (no multi-admin support needed)
- No online payment processing
- Text-only content in timelines and posts (no document uploads)
- Client-managed hosting infrastructure
- No self-registration for clients
- No password reset for clients (admin only)
- Simple analytics (no complex BI tools)
- Web-only platform (no native mobile apps)
- Maximum 1 consultation per client per day
- All email notifications are mandatory (no opt-out)

---

## 16. Appendices

### 16.1 Database Schema Overview

**Key Tables:**

1. **users**
   - id, user_type (individual/company), full_name, national_id, company_name, company_cert_number, contact_person_name, contact_person_id, email, phone, password, status (active/deactivated), preferred_language, created_at, updated_at

2. **consultations (bookings)**
   - id, user_id (nullable for guests), guest_name, guest_email, guest_phone, booking_date, booking_time, duration (45 min), problem_summary, consultation_type (free/paid), payment_amount, payment_status (pending/received), status (pending/approved/rejected/completed/no-show/cancelled), admin_notes, created_at, updated_at

3. **timelines**
   - id, user_id, case_name, case_reference, status (active/archived), created_at, updated_at

4. **timeline_updates**
   - id, timeline_id, admin_id, update_text, created_at, updated_at

5. **posts**
   - id, title (bilingual), body (bilingual), status (draft/published), created_at, updated_at

6. **working_hours**
   - id, day_of_week, start_time, end_time, is_active

7. **blocked_times**
   - id, block_date, start_time, end_time, reason

8. **notifications**
   - id, user_id, type, title, body, read_at, sent_at, created_at

9. **admin_logs (audit trail)**
   - id, admin_id, action, target_type, target_id, old_values, new_values, ip_address, created_at

### 16.2 API Endpoints (Internal)
- Not applicable (Blade-based application, not API-driven)
- All interactions server-side through Laravel routes and controllers

### 16.3 Third-Party Dependencies

**Frontend:**
- Bootstrap 5.3+ (CSS framework with RTL support)
- Chart.js (for analytics charts)
- FullCalendar.js or similar (for booking calendar)
- Rich text editor (e.g., TinyMCE or Quill)

**Backend:**
- Laravel 11.x framework
- Laravel Mail (email sending)
- Laravel Notifications
- maennchen/zipstream-php (for generating ICS calendar files)
- barryvdh/laravel-dompdf (for PDF exports)
- league/csv (for CSV exports)

**Fonts:**
- Google Fonts: Cairo/Tajawal (Arabic), Montserrat/Lato (English)

**Icons:**
- Bootstrap Icons or Feather Icons

---

## 17. Approval & Sign-off

**Document Prepared By:** Development Team  
**Version:** 1.1  
**Last Updated:** December 20, 2025  

**Review Date:** _________________________  
**Client Approval:** _________________________  
**Development Team Lead:** _________________________  

---

## 18. Change Log

| Version | Date | Changes | Author |
|---------|------|---------|--------|
| 1.0 | Nov 26, 2025 | Initial PRD creation | Development Team |
| 1.1 | Dec 20, 2025 | Added brand identity section, clarified booking rules (1/day, 45min), multiple timelines, account management (deactivate/delete), exports, analytics, Terms/Privacy pages | Development Team |
| 1.2 | Jan 3, 2026 | Added guest booking functionality: public booking form at /booking, custom captcha, 1-per-day limit, guest email notifications, admin guest booking management | Development Team |

---

**END OF DOCUMENT**
