Skip to content

Simple task manager application built with Laravel Filament.

Notifications You must be signed in to change notification settings

rezwanul7/task-management

Repository files navigation

Intro


Task Management System

This is a simple task management system that allows users to create, read, update, and delete tasks. The system is built using Laravel Filament.


Filament Demo

🔥 Core Features & Best Practices

  • Tech Stack – PHP, Laravel, Filament, SQLite/MySQL/PostgreSQL
  • Filament Admin Panel – Modern UI for managing tasks
  • REST API – Task CRUD operations
  • API Documentation – Auto-generated with Scribe
  • Task CRUD with Soft Delete – Full task lifecycle support
  • Task Status & Priority Enums – Clean, maintainable enums
  • TaskObserver – Automatically assigns assign_by_id
  • Reusable TaskForm – Efficient form management
  • Form Validations – Enforces business rules
  • Task Assignment – Assign tasks to users

🚀 Code Quality & Deployment

  • Code Styling Check – Used Laravel Pint for automated code styling
  • Static Code Analysis – Used Larastan (PHPStan for Laravel)
  • Unit & Feature Tests – Written using Pest, ensuring application reliability
  • Security Considerations – CSRF protection, validation, authentication
  • Performance Optimizations – Query optimization, caching, eager loading
  • CI/CD Integration – Automated testing & deployment

Todos

  • Task CRUD with SoftDelete
  • Assign a task to a user
  • Reuseable TaskForm
  • Form Validation
    • Ensure due time is not in the past
    • Ensure start time is before due time
    • Ensure end time is after start time
    • Ensure user exists in the database
  • Enum for TaskStatus, TaskPriority.
  • HasDisplayAttributes Trait for Enum to work with the label and color of the Task Status, Task Priority
  • Manage Label and Colors for Task Status, Task Priority mapping inside the Enum
  • Create TaskObserver to assign authenticated user id to assign_by_id field when creating a task

Installation

Clone the repo locally:

git clone https://github.com/rezwanul7/task-management.git task-management && cd task-management

Install PHP dependencies:

composer install

Setup configuration:

cp .env.example .env

Generate application key:

php artisan key:generate

Create an SQLite database. You can also use another database (MySQL, Postgres), simply update your configuration accordingly.

touch database/database.sqlite

Run database migrations:

php artisan migrate

Run database seeder:

php artisan db:seed

Create a symlink to the storage:

php artisan storage:link

Run the dev server (the output will give the address):

php artisan serve

You're ready to go! Visit the url in your browser, and login with:

Generate Api Documentation:

php artisan scribe:generate

Preview the documentation by visiting the url displayed in the terminal.

Code Styling

Check for linting issues:

./vendor/bin/pint --test

Automatically Fix linting issues :

./vendor/bin/pint -v

Static Analysis

Run static code analysis:

./vendor/bin/phpstan analyse

Testing

Run the tests:

php artisan test --env=testing

About

Simple task manager application built with Laravel Filament.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages