Files
libra/docs/prd.md
T

40 KiB

Product Requirements Document (PRD)

Libra Law Firm Website

Version: 1.4 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: Dark Forest Green with Warm Gold 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
  • Dark Forest Green and Warm Gold 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
  • Dark Forest Green and Warm Gold 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 12 (Dark Charcoal & Warm Gold refresh). See docs/brand.md for complete and current brand guidelines.

Primary Colors:

  • Dark Forest Green: #2D3624

    • Usage: Header/Footer backgrounds
    • Creates professional, grounded atmosphere
  • Warm Gold: #A68966

    • Usage: CTA buttons, links, accents
    • Represents sophistication, balance, legal authority
  • Forest Green: #2D322A

    • Usage: Headings, body text
    • Creates refined, professional tone

Supporting Colors:

  • Warm Cream: #F4F1EA (main page background)
  • Pure White: #FFFFFF (card backgrounds)
  • Olive Green: #4A5D23 (active states)
  • Primary Light: #3D4634 (primary hover states)
  • Gold Hover: #8A7555 (button hover states)
  • Gold Light: #C4A882 (light accents)
  • Deep Black: #1A1A1A (logo artwork, headlines)
  • 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:
    • Forest Green on Warm Cream - primary use
    • Warm Cream on Dark Forest Green - 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 Warm Gold background)
  • Secondary buttons (Dark Forest Green outline)
  • Links and hover states (Warm Gold)
  • Decorative dividers between sections
  • Icon highlights
  • Active state indicators (Olive Green)
  • 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: Pure White (#FFFFFF) on Warm Cream page background
  • Padding: 24px standard internal padding

Icons:

  • Style: Line-based, minimalist (e.g., Feather Icons or Bootstrap Icons)
  • Color: Forest Green for primary actions, Warm Gold for accents
  • Size: 24px standard, 32px for featured icons

Buttons:

  • Primary Button:

    • Background: Warm Gold (#A68966)
    • Text: Pure White (#FFFFFF)
    • Hover: Gold Hover (#8A7555)
    • Border-radius: 6px
    • Padding: 12px 24px
  • Secondary Button:

    • Background: Transparent
    • Border: 2px solid Dark Forest Green (#2D3624)
    • Text: Forest Green (#2D322A)
    • Hover: Primary Light (#3D4634) background with white text
  • Disabled State:

    • Background: #CCCCCC
    • Text: #666666
    • No hover effect

Background Patterns (Optional):

  • Subtle texture or geometric pattern on Warm Cream 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 (Dark Forest Green & Warm Gold)
  • 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 (Warm Gold) 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.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 (Dark Forest Green & Warm Gold 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 Dark Forest Green and Warm Gold 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
1.3 Sep 27, 2026 Added standalone Nablus workshop registration form (unlinked page at /forms/nablus-workshop) — see Update below Development Team
1.4 Oct 31, 2026 Public-site redesign approved by the client (mockup v3): new visual system for the public pages, compact booking card on the home page — see Update below Development Team

Update — Version 1.3

Date: 2026-09-27

New Features Added

Nablus workshop registration form. Libra's client is co-hosting a one-off entrepreneurship workshop ("ورشة متخصصة: القانون، التسويق الرقمي، وإدارة المتاجر الإلكترونية") on 2026-09-30 with "Smart Business Center." They previously used a generic ClickUp form to collect registrations and asked for their own branded version instead. Scope, per Naser:

  • A single standalone page at /forms/nablus-workshop, reachable only by direct link (Naser sends the URL to the client to forward to attendees) — not added to the site's header/nav/footer.
  • Replicates the ClickUp form's content and 3 fields: الاسم الكامل (full name, required), رقم التواصل (contact number, required), ايميلك للتواصل (email, optional).
  • Page carries the workshop's own copy (title, description, full agenda paragraph — same text as the event flyer) and uses Libra's real branding: the current logo (public/images/logo.png) and the workshop flyer image (client-supplied, to be added to the project as a static asset). Arabic RTL only — no English variant needed for this page. Page is RTL Arabic, standalone (no site nav/footer chrome), matching Libra's Warm Cream / Dark Forest Green / Warm Gold palette.
  • On submit: send an email containing the submitted values to info@libra.adv.ps, then redirect the visitor to the existing /about page. No database storage required — this is a short-lived, few-days-only registration page for one event; emailing the submission is the only durable record needed.
  • No captcha, no admin UI, no listing of past submissions — intentionally minimal scope.

Scope Changes

None to existing features. This is additive only.

Open Questions

None outstanding — all decisions confirmed directly with Naser in the same session.


Update — Version 1.4

Date: 2026-10-31

New Features Added

Public-site redesign. ElenosLabs proposed a redesign of Libra's public website (mockup v3, docs/ux-mockup.html); the client approved it on 2026-10-31. Scope answers given by Naser on 2026-10-31: scope "Public site" (home, about, posts, booking, auth); brand "Keep logo, evolve rest" (the logo and the forest/gold/cream palette stay; type, layout and motion change); driver "Our pitch". Naser's constraint on content: "we dont need to promice smth we wont deliver" — every claim on the new pages is backed by existing behaviour. The full visual specification is docs/ux-design.md Part A.

  • New visual system on every public page — /, /about, /posts, /posts/{post}, /booking, /booking/success, /page/{slug}: Markazi Text (display) and IBM Plex Sans Arabic (body); the brand palette used in full-bleed forest bands, gold rules and a linen cream ground; sections numbered as articles; a sticky translucent navigation with a reading-progress rule; a four-column forest footer.
  • Signature balance — an engraved-gold scales-of-justice graphic over olive-tree photography in the home hero, settling into balance on load and responding to the pointer; a second balance in the booking card comes level as the reader arrives. All motion respects prefers-reduced-motion.
  • Redesigned home page — hero, pillars (Justice, Dignity, Advocacy), founder, services docket, vision with photography, values, latest three articles (text-only cards), and an embedded booking card.
  • Compact booking on the home page — the home page embeds the existing guest-booking form as one screen (name, phone, email, a 14-day strip of days with free slots, slot buttons, case summary, captcha), with the same rules as /booking (required fields, 20-character minimum summary, captcha, one booking per email per day, slots from the availability settings, the confirm step, the success page). This realises §5.1's "Embedded simplified booking form".
  • Auth pages — the new type and form controls; the split layout is unchanged.
  • Production photography — four licensed Unsplash photographs (olive tree, embroidery hoop, olives, hills) and the founder's existing portrait.

Scope Changes

  • §5.1 and §7 (Design Requirements) are superseded for the public pages by docs/ux-design.md Part A. §7's typography (Cairo/Montserrat), button radius and card specs continue to apply to the admin and client dashboards, which are unchanged.
  • §5.2 navigation gains a "Services" link (to the home page's services section); the menu labels on the public site read Home, About, Services, Articles, Booking.
  • Out of scope: admin and client dashboards, emails, PDF exports, /forms/nablus-workshop, any backend or database change, post images or categories, new content beyond the redesign's section labels and short lines approved in the mockup.

Open Questions

None blocking. Rulings recorded in the project ledger (2026-10-31): the mockup's Unsplash photos ship to production (replaceable by the client's own later); the home day strip covers the next 14 days with free slots; pages not shown in the mockup are composed from its components with their existing content; auth pages change type and controls only. The build price is not yet set (a commercial matter, not a product requirement).


END OF DOCUMENT