Laravel Task Management Application

This is a Laravel application for managing tasks. It includes features for task creation, updating, assigning, importing/exporting tasks to/from CSV, and sending real-time alerts via WebSockets when a task passes its due date.

Prerequisites

Before you begin, ensure you have met the following requirements:

  • PHP >= 8.2
  • Composer
  • MySQL

Installation

Follow these steps to set up and run the application:

  1. Clone the repository

    git clone https://github.com/muhammedjafer/task-management-api.git
    cd task-management-api
  2. Update composer

    composer update
  3. Generate app key

    php artisan key:generate
  4. Create the env file

    cp .env.example .env
    
  5. Configure the env file for database and email in env

  6. Run the migration

    php artisan migrate
  7. Seed the database

    php artisan db:seed
  8. Run the queue

    php artisan queue:work
  9. Running the websocket

    php artisan reverb:start
  10. Running the schedule for checking overdue task using websocket

    php artisan schedule:run
  11. Start the app

    php artisan serve

Default users

  1. Product owner email and password where APP_ENV is not production
    email: productowner@system.com
    password: productowner2024staging

  2. Product owner email and password where APP_ENV is production
    email: productowner@system.com
    password: productowner2024production

  3. Developer
    email: developer@system.com
    password: developer2024system

  4. Tester
    email: tester@system.com
    password: tester2024system

Commands

  1. To export tasks run the command below
    php artisan export:tasks exported_tasks.csv
  2. To import tasks run the command below
    php artisan import:tasks "exported_tasks.csv"
  3. Create user
    php artisan user:create