Skip to main content
The admin dashboard provides administrators with a comprehensive view of platform activity, statistics, and management tools.

Dashboard Access

Administrators can access dashboard features through dedicated admin routes:

User Management

GET /admin/usersAccess the user management interface to view and manage all platform users.Reference: AdminController.java:17

Statistics & Metrics

GET /admin/statsView platform-wide statistics, metrics, and analytics.Reference: AdminController.java:25

Admin Controller Structure

The AdminController (AdminController.java:12) manages all administrative pages:
@Controller
@RequestMapping("/admin")
public class AdminController {

    // User management page
    @GetMapping({ "/users" })
    public String mostrarGestionUsuarios() {
        return "admin/users";
    }

    // Statistics and metrics page
    @GetMapping({ "/stats" })
    public String mostrarEstadisticas() {
        return "admin/stats";
    }
}

Dashboard Features

User Management

The user management section provides tools to:

View All Users

Display comprehensive lists of all registered users with filtering and search capabilities.

User Details

Access detailed information about each user including:
  • Registration date
  • Last login timestamp
  • Assigned role
  • Account status (active/inactive)

Access Monitoring

Track user login activity through AccessLog entries including timestamps, IP addresses, and success status.

Role Management

Assign and modify user roles (ADMIN, USER, PROFESSIONAL, MODERATOR) to control access permissions.

Platform Statistics

The statistics page displays key metrics about platform activity:
Track user-related metrics:
  • Total registered users
  • Active vs inactive accounts
  • Users by role (Admin, Professional, User, Moderator)
  • New registrations over time
  • Last login activity
Monitor category usage:
  • Total categories
  • Active vs inactive categories
  • Categories by service request volume
  • Popular service categories
Analyze service request data:
  • Total service requests
  • Requests by status
  • Requests by category
  • Request completion rates
Track professional activity:
  • Total professional profiles
  • Professionals by category
  • Service completion rates
  • Professional ratings and reviews

Key Entities for Dashboard Data

The dashboard aggregates data from multiple entities:

User Data (AppUser.java:22)

@Entity
public class AppUser extends BaseEntity {
    private Long id;
    private String firstName;
    private String lastName;
    private String username;  // Email address
    private Boolean active;
    private LocalDateTime registeredAt;
    private LocalDateTime lastLoginAt;
    private UserRole role;
    // ...
}

Role Information (UserRole.java:20)

@Entity
public class UserRole extends BaseEntity {
    public enum RoleName {
        ADMIN, USER, PROFESSIONAL, MODERATOR
    }
    
    private Long id;
    private RoleName name;
    private Boolean active;
    
    public int getUsersCount() {
        return users != null ? users.size() : 0;
    }
}

Category Metrics (Category.java:22)

@Entity
public class Category extends BaseEntity {
    private Long id;
    private String name;
    private String description;
    private Boolean active;
    private List<ServiceRequest> requests;
    private Set<ProfessionalProfile> professionals;
}

Access Logs (AccessLog.java:18)

@Entity
public class AccessLog {
    private Long id;
    private LocalDateTime accessedAt;
    private String sourceIp;
    private boolean success;
    private AppUser user;
}

Dashboard Capabilities

Real-time Activity Tracking
  • Monitor user login attempts through AccessLog entries
  • Track failed login attempts for security analysis
  • View recent user registrations
  • Monitor active user sessions
The admin dashboard provides seamless navigation between different administrative functions:
/admin/
├── /users          - User management interface
├── /stats          - Statistics and metrics
├── /categories     - Category management
├── /edit/{id}      - Edit specific category
├── /delete/{id}    - Delete category
└── /toggle/{id}    - Toggle category status

Best Practices

1

Regular Monitoring

Check the statistics page regularly to stay informed about platform activity and identify trends or issues early.
2

Security Audits

Review access logs frequently to detect suspicious activity, such as multiple failed login attempts or unusual access patterns.
3

User Management

Keep user accounts up to date by deactivating unused accounts and ensuring roles are appropriately assigned.
4

Category Optimization

Analyze category usage statistics to optimize your category structure and ensure categories align with user needs.
5

Performance Tracking

Monitor key metrics over time to measure platform growth and identify areas for improvement.
The dashboard leverages database indexes on key fields (user ID, timestamps, category names) to ensure fast query performance even with large datasets.

Build docs developers (and LLMs) love