libra/docs/prd.md

1050 lines
32 KiB
Markdown

# Product Requirements Document (PRD)
## Libra Law Firm Website
**Version:** 1.1
**Date:** December 20, 2025
**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
---
### 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
### 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, 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 |
---
**END OF DOCUMENT**