Skip to content
usfsam7Public

About

Taskify

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Taskify — Laravel Task Management App

A clean, dark-themed task management web application built with Laravel. Supports task creation with priority levels, drag-and-drop reordering, project filtering, and pagination.

Taskify App


Features

  • Create, edit, and delete tasks
  • Set task priority: High or Low
  • Drag-and-drop to reorder tasks (order is saved to the database)
  • Organize tasks into projects
  • Filter tasks by project using a tab bar
  • Create and delete projects inline on the same page
  • Pagination (5 tasks per page)
  • Tasks without a project are still visible under "ALL"

Requirements

  • PHP 8.1 or higher
  • Composer
  • MySQL or SQLite
  • Node.js (optional, only if you add frontend assets)

Setup & Installation

1. Clone or download the project

git clone https://github.com/your-username/taskify.git
cd taskify

Or unzip the downloaded folder and navigate into it:

cd taskify

2. Install PHP dependencies

composer install

3. Set up environment file

cp .env.example .env
php artisan key:generate

4. Configure your database

Option A — SQLite (easiest, zero config)

touch database/database.sqlite

Make sure your .env has:

DB_CONNECTION=sqlite

Option B — MySQL

Update your .env:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=taskify
DB_USERNAME=your_username
DB_PASSWORD=your_password

Then create the database in MySQL:

CREATE DATABASE taskify;

5. Run migrations

php artisan migrate

This creates the following tables:

Table Description
projects Stores project names
tasks Stores tasks with name, priority, sort_order, project_id, timestamps

6. Start the development server

php artisan serve

Open your browser at http://localhost:8000


Project Structure

app/
  Http/Controllers/
    TaskController.php       # CRUD + reorder logic for tasks
    ProjectController.php    # Create & delete projects
  Models/
    Task.php                 # Task model (name, priority, sort_order, project_id)
    Project.php              # Project model (name)

database/
  migrations/
    ..._create_tasks_table.php
    ..._add_sort_order_to_tasks_table.php
    ..._create_projects_table.php
    ..._add_project_id_to_tasks_table.php

resources/
  views/tasks/
    index.blade.php          # Full UI: project bar, task list, drag-and-drop, pagination

routes/
  web.php                    # All application routes

Routes

Method URL Action
GET / List all tasks (filterable by project)
POST /tasks Create a new task
PUT /tasks/{id} Update task name, priority, project
DELETE /tasks/{id} Delete a task
POST /tasks/reorder Save drag-and-drop order
POST /projects Create a new project
DELETE /projects/{id} Delete a project

Database Schema

projects

Column Type Notes
id bigint Primary key
name varchar Project name
created_at timestamp
updated_at timestamp

tasks

Column Type Notes
id bigint Primary key
project_id bigint (nullable) Foreign key → projects
name varchar Task name
priority enum(high, low) Default: low
sort_order integer Drag-and-drop position
created_at timestamp
updated_at timestamp

Usage Guide

Adding a task

Type a task name, select a priority (↑ High / ↓ Low) and optionally a project, then click + ADD.

Editing a task

Click the ✏️ edit icon on any task. Update the name, priority, or project inline, then click SAVE.

Deleting a task

Click the 🗑 delete icon and confirm the prompt.

Reordering tasks

Drag any task by the ⠿ handle on the left and drop it in the new position. The order saves automatically.

Managing projects

  • Type a project name in the bottom input of the project bar and click + PROJECT to create one.
  • Click the × next to any project tab to delete it. Tasks linked to that project remain but lose their project association.
  • Click a project tab to filter tasks. Click ALL to see every task.

About

Taskify

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages