Skip to main content

Get Started in 5 Minutes

This guide will walk you through logging into Hive, creating your first project, and adding your first task. You’ll be managing your team’s work in no time!
This quickstart assumes you already have access to a Hive instance. If you need to deploy your own, see the Installation Guide.

Prerequisites

Before you begin, make sure you have:
  • A Hive account (username/email and password)
  • A modern web browser (Chrome, Firefox, Safari, or Edge)
  • Internet connection for real-time synchronization
1
Step 1: Log Into Hive
2
Navigate to your Hive instance URL and enter your credentials. You can log in using either your username or email address.
3
// Hive supports login with username or email
async function handleSupabaseLoginMain() {
  const usernameOrEmail = document.getElementById('loginUsernameMain')?.value.trim();
  const password = document.getElementById('loginPasswordMain')?.value.trim();
  
  if (!usernameOrEmail || !password) {
    alert('Por favor completa todos los campos');
    return;
  }
  
  // If input is not an email, resolve username to email
  let correo = usernameOrEmail;
  if (!correo.includes('@')) {
    const { data: rec } = await supabase
      .from('usuarios')
      .select('correo')
      .eq('nombre_usuario', usernameOrEmail)
      .maybeSingle();
    
    if (!rec || !rec.correo) {
      throw new Error('Usuario o contraseña incorrectos');
    }
    correo = rec.correo;
  }
  
  // Authenticate with Supabase Auth
  const { data, error } = await supabase.auth.signInWithPassword({ 
    email: correo, 
    password 
  });
  
  if (error) throw error;
  
  // Navigate to projects view
  navigateTo('projects');
}
4
Hive automatically resolves usernames to email addresses during login, so users can log in with their preferred identifier.
5
After successful login, you’ll see the main Hive interface with the sidebar navigation on the left.
6
Step 2: Explore the Interface
7
Once logged in, you’ll see the main Hive workspace:
8
  • Sidebar - Navigate between Dashboard, Projects, Tasks, People, and Calendar views
  • Main Area - Where your projects and tasks are displayed
  • User Avatar - Access your profile and settings in the sidebar footer
  • 9
    The default view after login is Projects, where you can see all active projects.
    10
    Step 3: Create Your First Project
    11
    Projects in Hive organize related tasks together. Let’s create one:
    12
  • Click the “Crear Proyecto” (Create Project) button in the Projects view
  • Fill in the project details:
    • Name - Give your project a descriptive name
    • Description - Add context about what this project is for
    • Start Date - When the project begins
    • End Date - Target completion date
    • Color - Choose a color to visually identify this project
  • 13
    async function createProject() {
      const projectName = document.getElementById('newProjectName')?.value.trim();
      const projectDescription = document.getElementById('newProjectDescription')?.value;
      const projectStartDate = document.getElementById('newProjectStartDate')?.value;
      const projectEndDate = document.getElementById('newProjectEndDate')?.value;
      
      // Validate required fields
      if (!projectName) {
        alert('Por favor ingrese un nombre para el proyecto');
        return;
      }
      
      if (!projectStartDate || !projectEndDate) {
        alert('Por favor introduzca Fecha de Inicio y Fecha de Fin');
        return;
      }
      
      // Validate dates
      const startDate = new Date(projectStartDate);
      const endDate = new Date(projectEndDate);
      
      if (startDate > endDate) {
        alert('La Fecha de Inicio no puede ser posterior a la Fecha de Fin');
        return;
      }
      
      // Create project in database
      const projectData = {
        nombre: projectName,
        descripcion: projectDescription,
        estado: 'activo',
        fecha_inicio: projectStartDate,
        fecha_fin: projectEndDate,
        creador_id: getCurrentUsuariosIdInt()
      };
      
      const { data, error } = await supabase
        .from('proyectos')
        .insert([projectData])
        .select()
        .single();
      
      if (error) {
        console.error('Error creating project:', error);
        alert('Error al crear el proyecto');
        return;
      }
      
      // Update local state and UI
      projects.push(data);
      renderProjects();
      closeCreateProjectModal();
    }
    
    14
    Project names must be unique within your Hive instance. If you try to create a project with a duplicate name, you’ll see an error message.
    15
  • Click “Crear” (Create) to save your project
  • 16
    Your new project will appear in the Projects view as a column with your chosen color.
    17
    Step 4: Add Your First Task
    18
    Now let’s add a task to your new project:
    19
  • Find your project column in the Projects view
  • Click the ”+” button at the top of the project column
  • Fill in the task details:
    • Title - Short, descriptive name for the task
    • Description - Detailed information about what needs to be done
    • Due Date - When this task should be completed
    • Priority - Low, Medium, or High
    • Assignees - Select team members to work on this task
    • Tags - Add labels to categorize the task
  • 20
    async function createTaskFromForm() {
      // Gather form data
      const title = document.getElementById('taskTitle')?.value.trim();
      const description = document.getElementById('taskDescription')?.value;
      const dueDate = document.getElementById('taskDueDate')?.value;
      const priority = document.getElementById('taskPriority')?.value || 'media';
      const projectId = document.getElementById('taskProjectSelect')?.value;
      
      // Validate required fields
      if (!title) {
        alert('El título es obligatorio');
        return;
      }
      
      if (!projectId) {
        alert('Debe seleccionar un proyecto');
        return;
      }
      
      // Create task data
      const taskData = {
        titulo: title,
        descripcion: description,
        fecha_vencimiento: dueDate,
        prioridad: priority,
        proyecto_id: parseInt(projectId),
        estado: 'pendiente',
        porcentaje_completado: 0,
        fecha_creacion: new Date().toISOString()
      };
      
      // Insert into database
      const { data: newArr, error: createErr } = await supabase
        .from('tareas')
        .insert([taskData])
        .select()
        .limit(1);
      
      if (createErr) {
        console.error('Error creating task:', createErr);
        alert('Error creando tarea');
        return;
      }
      
      const newTask = newArr[0];
      
      // Update local state
      tasks.push(newTask);
      
      // Refresh UI
      renderTasks();
      closeCreateTaskModal();
      
      alert('Tarea creada exitosamente');
    }
    
    21
    You can assign multiple team members to a single task. Hive will show all assigned members’ avatars on the task card.
    22
  • Click “Crear” (Create) to save your task
  • 23
    Your new task will appear in the project column!
    24
    Step 5: Manage Your Task
    25
    Now that you have a task, try these common actions:
    26
    Update Task Progress:
    27
    Click on the task card to open the task details modal. You’ll see a progress slider—drag it to update the completion percentage.
    28
    async function updateTaskProgress(taskId, percentage) {
      const percent = Math.max(0, Math.min(100, parseInt(percentage) || 0));
      
      const { data, error } = await supabase
        .from('tareas')
        .update({ porcentaje_completado: percent })
        .eq('id', taskId)
        .select()
        .single();
      
      if (error) {
        console.error('Error updating progress:', error);
        return;
      }
      
      // Update local state
      const task = tasks.find(t => t.id === taskId);
      if (task) {
        task.porcentaje_completado = percent;
      }
      
      // Refresh UI
      renderTasks();
    }
    
    29
    Move Task Between Projects:
    30
    Drag and drop the task card to a different project column. Hive will automatically update the task’s project assignment.
    31
    async function handleTaskDrop(containerEl, projectId, taskId) {
      const { data, error } = await supabase
        .from('tareas')
        .update({ proyecto_id: projectId })
        .eq('id', taskId)
        .select()
        .single();
      
      if (error) {
        console.error('Error moving task:', error);
        return;
      }
      
      // Update local state
      const task = tasks.find(t => t.id === taskId);
      if (task) {
        task.proyecto_id = projectId;
      }
      
      // Refresh UI
      renderProjects();
    }
    
    32
    Change Task Status:
    33
    Click the status indicator (colored dot) on the task card to cycle through: Pendiente → En Progreso → Completada.
    34
    Step 6: Explore Real-time Updates
    35
    Hive’s real-time synchronization means changes are instantly visible to all team members:
    36
  • Open Hive in a second browser window or tab (or have a teammate open it)
  • Make a change in one window (e.g., update task progress)
  • Watch the change appear automatically in the other window
  • 37
    Real-time updates use WebSocket connections through Supabase Realtime. No polling or manual refreshing required!
    38
    // Realtime subscription for task changes
    const ch = client.channel('rt-pmh-tareas-global');
    
    ch.on('postgres_changes', { 
      event: 'UPDATE', 
      schema: 'public', 
      table: 'tareas' 
    }, async (payload) => {
      const taskId = payload.new.id;
      
      // Skip if this was a local change (avoid double-update)
      if (isTaskMuted(taskId)) {
        console.log('Skipping realtime update for local change');
        return;
      }
      
      // Fetch fresh task data and update UI
      await refreshTaskData(taskId);
      
      // Show subtle notification
      const task = tasks.find(t => t.id === taskId);
      createToast(`${task.titulo} actualizada`, 'info', 1600);
    });
    
    ch.subscribe();
    

    What’s Next?

    Congratulations! You’ve created your first project and task in Hive. Here are some next steps:

    Explore Features

    Learn about advanced features like tags, calendar view, and analytics

    Team Collaboration

    Invite team members and manage permissions

    Profile Setup

    Customize your profile with a photo and contact information

    Dashboard Analytics

    View project progress and team workload metrics

    Tips for Success

    Use descriptive task titles: Make titles specific and actionable (e.g., “Design login page mockup” instead of “Design stuff”).
    Set realistic due dates: Hive will highlight overdue tasks, so set dates you can actually meet.
    Leverage tags: Create tags for categories like “bug”, “feature”, “urgent” to quickly filter and find tasks.
    Check the Dashboard: The dashboard gives you a bird’s-eye view of all projects and helps identify bottlenecks.

    Need Help?

    If you encounter any issues:
    • Check the browser console (F12) for error messages
    • Verify your internet connection for real-time sync
    • Contact your Hive administrator through the “Contactar al administrador” button
    • Review the User Guide for detailed instructions

    Build docs developers (and LLMs) love