A comprehensive legal case management and office administration platform built with modern web technologies. Version 1.0-Beta
This is the frontend application for a law office management system designed to streamline case tracking, user management, and attorney scheduling. The system supports multiple user roles with granular permission levels, enabling efficient collaboration across administrative, paralegal, and attorney staff.
- Case Management: Create, track, and manage legal cases with file uploads and status tracking
- User Role Management: Support for Admin, Paralegal, Secretary, Partner Attorney, and Attorney roles
- Dashboard: Customized views based on user role with cases, tasks, and calendar integration
- User Approvals: Workflow for approving new users joining the system
- Search: Global case and document search capabilities
- Notifications: Real-time notifications for case updates and approvals
- Calendar Integration: Schedule management with attorney availability tracking
- Admin Panel: User account management, password resets, and deactivation
- Framework: Next.js 16 with TypeScript
- UI Components: Radix UI with Tailwind CSS
- Backend: Supabase (PostgreSQL + Auth)
- Forms: React Hook Form with Zod validation
- State Management: React Context API
- Date Handling: date-fns with timezone support
- Icons: Lucide React
| Role | Level | Permissions |
|---|---|---|
| Super Admin (Test) | GOD_MODE | Full system access for testing |
| Admin | IT_MANAGEMENT | User account management, password resets |
| Paralegal | OPERATIONAL_ADMIN | Case creation, attorney assignment, file uploads, schedule management |
| Partner Attorney | CASE_HANDLER | View/edit own cases, schedule management |
| Secretary | PARTNER_ASSISTANT | Mirror permissions of assigned attorney partner |
| Attorney | CASE_HANDLER | View/edit assigned cases, upload files, manage own schedule |
- Node.js 18+
- npm or yarn
- Environment variables configured (see
.env.exampleor backend documentation)
npm installRun the development server:
npm run devOpen http://localhost:3000 to view the application.
The app will automatically reload as you edit files.
npm run build
npm startnpm run lint├── app/ # Next.js app router pages
│ ├── dashboard/ # Main dashboard and sub-routes
│ ├── admin/ # Admin panel
│ ├── case-tracker/ # Case management
│ ├── search/ # Global search
│ ├── notifications/ # Notifications view
│ ├── (auth)/ # Authentication pages
│ └── test/ # Testing utilities
├── components/ # Reusable React components
│ ├── ui/ # Base UI components
│ ├── admin/ # Admin-specific components
│ ├── dashboard/ # Dashboard components
│ └── [feature]/ # Feature-specific components
├── lib/ # Utility functions and helpers
│ ├── auth/ # Authentication logic
│ ├── permissions.ts # Role-based access control
│ └── validators/ # Form and data validators
├── hooks/ # Custom React hooks
├── types/ # TypeScript type definitions
└── config/ # Application configuration
- Sidebar Navigation: Left and right sidebars for navigation and context
- Case Tracker: Complete case lifecycle management
- Account Settings: User profile and preference management
- Attorney Calendar: Schedule management and availability
- User Approvals: Workflow for new user onboarding
Configure environment variables in your .env.local:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_key
- Use TypeScript for type safety
- Follow the component structure in
components/ - Keep business logic in
lib/utilities - Use React hooks from
hooks/for common patterns - Validate user input with Zod schemas in
lib/validators/
- Create a feature branch from
main - Make your changes following existing code patterns
- Run
npm run lintbefore committing - Test changes across different user roles
- Submit a pull request with clear description
The application is optimized for deployment on Vercel. For other platforms, ensure Node.js 18+ support and configure the appropriate environment variables.
See Next.js deployment documentation for detailed deployment guides.
Internal use for Go Baluyot & Adion Law Office.