Skip to content
 
 

Repository files navigation

Go Baluyot & Adion Law Office Management System

A comprehensive legal case management and office administration platform built with modern web technologies. Version 1.0-Beta

System Overview

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.

Core Features

  • 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

Tech Stack

  • 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

User Roles & Permissions

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

Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Environment variables configured (see .env.example or backend documentation)

Installation

npm install

Development

Run the development server:

npm run dev

Open http://localhost:3000 to view the application.

The app will automatically reload as you edit files.

Build

npm run build
npm start

Linting

npm run lint

Project Structure

├── 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

Key Components

  • 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

Environment Configuration

Configure environment variables in your .env.local:

NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_key

Development Guidelines

  • 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/

Contributing

  1. Create a feature branch from main
  2. Make your changes following existing code patterns
  3. Run npm run lint before committing
  4. Test changes across different user roles
  5. Submit a pull request with clear description

Deployment

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.

Resources

License

Internal use for Go Baluyot & Adion Law Office.

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages