# 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**