32 KiB
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:
-
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
-
Request Status: Pending
- Booking enters pending queue
- Admin receives email notification at no-reply@libra.ps
- Client sees "Pending Review" status
-
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
-
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.mdfor 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):
- Welcome Email - Account created with login credentials
- Booking Confirmation - Request submitted successfully
- Booking Approved - With consultation details, payment instructions (if paid), and calendar file
- Booking Rejected - With reason (if provided)
- Consultation Reminder - 24 hours before
- Consultation Reminder - 2 hours before
- Timeline Update - When admin adds update to their case
Admin Emails:
- New Booking Request - With client details and problem summary
- 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:
-
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
-
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
-
timelines
- id, user_id, case_name, case_reference, status (active/archived), created_at, updated_at
-
timeline_updates
- id, timeline_id, admin_id, update_text, created_at, updated_at
-
posts
- id, title (bilingual), body (bilingual), status (draft/published), created_at, updated_at
-
working_hours
- id, day_of_week, start_time, end_time, is_active
-
blocked_times
- id, block_date, start_time, end_time, reason
-
notifications
- id, user_id, type, title, body, read_at, sent_at, created_at
-
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