Skip to content

[Feature] Audit Logging System for Administrative Actions #198

Description

@shreeyasriram10

Problem Statement

Currently, the application does not maintain an audit trail for critical administrative operations such as creating, updating, or deleting notices, managing teachers, uploading study materials, or modifying user accounts. This makes it difficult to trace changes, investigate issues, and maintain accountability.

Proposed Solution

Implement a centralized audit logging system that automatically records important administrative actions across the application.

Each audit log should include:

User ID and role
Action performed (Create, Update, Delete, Login, Logout, etc.)
Resource affected (Notice, Teacher, User, Resource, etc.)
Resource ID
Timestamp
IP address (if available)
Success/Failure status
Optional metadata describing the change
Suggested Implementation
Backend
Create an AuditLog MongoDB model.
Build a reusable audit logging utility/service.
Automatically log actions from controllers using middleware or helper functions.
Store logs efficiently with pagination support.
API

Create secure admin-only endpoints:

GET /api/audit-logs
Filter by user
Filter by action
Filter by date range
Pagination and sorting
Frontend
Add an Audit Logs page to the admin dashboard.
Display logs in a searchable and paginated table.
Support filtering by user, action, and date.
Benefits
Improves security and accountability.
Helps debug production issues.
Makes administrative activities traceable.
Provides better monitoring and compliance.
Enhances maintainability of the application.
Acceptance Criteria
Audit logs are automatically created for all critical admin actions.
Admin-only API endpoints are protected.
Filtering, pagination, and sorting work correctly.
Audit logging does not impact normal application performance.
Proper documentation and tests are included where applicable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions