Skip to main content

Introduction to Mantis

Mantis is a comprehensive project management system designed for managing field operations, equipment tracking, and technical resource allocation. Built on a modern web stack, Mantis provides robust tools for managing projects from initiation through completion.

System Overview

Mantis is built on a powerful technology stack that combines:
  • Backend: Django 4.2.14 with Django REST Framework for robust API services
  • Frontend: Vue.js 3.5 with Vite build system for a modern, reactive user interface
  • Database: PostgreSQL for reliable data persistence
  • Additional Technologies:
    • Grappelli for enhanced Django admin interface
    • Simple History for audit trail functionality
    • Pinia for state management
    • TailwindCSS with DaisyUI for styling

Key Features

Mantis provides comprehensive functionality for field operations management:

Project Management

  • Create and manage projects with client (partner) associations
  • Track project locations with cardinal point references
  • Manage contact information and project timelines
  • Support for project lifecycle from start to closure

Resource Management

  • Allocate equipment and service resources to projects
  • Track resource costs (rental and maintenance)
  • Flexible maintenance scheduling with multiple frequency types:
    • Day intervals (every N days)
    • Specific weekdays
    • Specific days of the month
  • Resource retirement tracking with documentation

Technical Personnel Management

  • Comprehensive technician profiles with work area assignments
  • Certificate and license tracking with expiration monitoring:
    • Driver’s licenses
    • Defensive driving certificates
    • MAE (environmental) certificates
    • Medical certificates
  • Vaccination record management
  • Document attachment support (PDFs)

Field Operations

  • Custody chain management for tracking equipment and samples
  • Sheet project workflows for field documentation
  • Maintenance sheet tracking
  • Shipping guide generation
  • Final disposition certificate management

Administrative Features

  • Audit trail with django-simple-history
  • User session management
  • Email-based authentication system
  • Data export/import capabilities (JSON format)
  • Multi-environment support (Development, Test, Production)

Architecture Overview

Mantis follows a modern client-server architecture:
┌─────────────────────────────────────────────┐
│           Vue.js Frontend Client            │
│  (Vite + Vue Router + Pinia + TailwindCSS)  │
└─────────────────┬───────────────────────────┘
                  │ HTTP/REST API

┌─────────────────────────────────────────────┐
│         Django Backend API Server           │
│    (Django REST Framework + Grappelli)      │
└─────────────────┬───────────────────────────┘


┌─────────────────────────────────────────────┐
│          PostgreSQL Database                │
│     (Relational data with audit trails)     │
└─────────────────────────────────────────────┘

Backend Structure

The Django backend is organized into modular applications:
  • accounts: User authentication and technical personnel management
  • projects: Project lifecycle, resource allocation, and field operations
  • equipment: Equipment catalog and resource item management
  • api: RESTful API endpoints for all modules
  • reports: PDF report generation
  • workorders: Work order management

Frontend Structure

The Vue.js frontend provides:
  • Single Page Application (SPA) architecture
  • Component-based UI development
  • Centralized state management with Pinia
  • Responsive design with TailwindCSS
  • Hot module replacement for rapid development

Data Model Highlights

Core Entities:
  • CustomUserModel: Email-based authentication with role assignments
  • Project: Client projects with location and timeline tracking
  • ProjectResourceItem: Equipment/service allocation to projects
  • Technical: Field technician profiles with certification tracking
  • CustodyChain: Equipment and sample tracking workflows
  • SheetProject: Field work documentation

User Roles

Mantis supports two primary user roles defined in accounts/models/CustomUserModel.py:11:

ADMINISTRATIVO (Administrative)

Administrative users have full system access including:
  • Project creation and management
  • Resource allocation and tracking
  • Technical personnel administration
  • System configuration
  • Report generation
  • Data export/import operations
Typical Use Cases:
  • Office managers creating new projects
  • Administrators assigning resources to projects
  • HR personnel managing technician records
  • Supervisors reviewing custody chains and field documentation

TECNICO (Technical)

Technical users have field-focused access including:
  • View assigned projects
  • Update field work sheets
  • Manage custody chains
  • Record maintenance activities
  • Upload field documentation
  • View their personal certificates and schedules
Typical Use Cases:
  • Field technicians completing work sheets
  • Technicians recording equipment maintenance
  • Field personnel documenting custody chain transfers
  • Mobile workers accessing project details on-site

Localization

Mantis is configured for Spanish (Ecuador) locale:
  • Language: es-ec
  • Timezone: America/Guayaquil
  • Date and time formats follow Ecuadorian standards

Next Steps

Quick Start

Get Mantis up and running in minutes with our quick start guide.

Installation

Detailed installation instructions for production deployment.

Build docs developers (and LLMs) love