Skip to content

mnasikin/fltask

Repository files navigation

fltask

Client-facing task progress tracker.

fltask is a minimal, focused task tracker designed for freelancers, small agencies, and consultants who need to share project progress with clients without the overhead of full project management tools.

Usage Guide cPanel Installation

Table of Contents

Screenshots

Admin Project List

Admin Project Detail

Admin Task Edit

Client Project View

Client Task View

Shareable Project View

Features

Core Features

  • Simple Authentication - Single login for admin and client users with rate limiting
  • Projects & Tasks - Admin creates and manages projects with tasks
  • Task Statuses - Simple status tracking: Pending, In Progress, Done
  • Comments - Both admin and client can comment on tasks
  • Shareable Links - Admin-controlled token-based public links for read-only project views
  • Role-Based Access - Clear separation between admin and client capabilities

Project Management

  • Project Lifecycle - Create, edit, archive, and restore projects
  • External Description - Client-facing project descriptions
  • Internal Notes - Admin-only private notes for each project
  • Project Status - Track overall project status

User Management

  • Admin-Only User Creation - No public registration
  • Auto-Generated Passwords - Secure password generation for new users
  • Role Management - Promote/demote users with password confirmation for sensitive actions
  • User Details - View user information, assigned projects, and admin notes

Enhanced UX

  • Search & Pagination - Quick search and customizable pagination (10, 25, 50, 100 items)
  • Task Sorting - Tasks sorted by creation date (oldest first) for stable ordering
  • Overdue Indicators - Visual badges for overdue tasks
  • Collapsible Text - Read More/Less functionality for long descriptions
  • Keep me on this page - Quick successive task/project creation option
  • Change Attribution - Track who last updated projects and tasks

Security

  • Token-Based Share Links - 10-character random tokens for secure sharing
  • Password Confirmation - Required for admin role changes
  • Rate Limiting - Login attempts limited to prevent brute force
  • Logout Confirmation - Prevent accidental logouts

What fltask is NOT

fltask intentionally excludes:

  • Kanban boards or drag-and-drop workflows
  • Sprints, backlogs, or roadmaps
  • Complex permission systems
  • Custom workflows or automation
  • Real-time notifications or chat
  • File attachments
  • Analytics or reporting dashboards
  • Public user registration

If you need these features, fltask is not the right tool.

Requirements

  • PHP 8.2+
  • Composer
  • Node.js & NPM (for asset compilation)
  • MySQL / MariaDB / SQLite
  • Laravel 12.x

Installation

  1. Clone the repository

    git clone https://github.com/mnasikin/fltask.git
    cd fltask
  2. Install PHP dependencies

    composer install
  3. Install NPM dependencies

    npm install
  4. Configure environment

    cp .env.example .env
    php artisan key:generate
  5. Configure database

    Edit .env with your database credentials:

    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=fltask
    DB_USERNAME=your_username
    DB_PASSWORD=your_password
    
  6. Run migrations

    php artisan migrate
  7. Build assets

    npm run build
  8. Seed default users (optional)

    php artisan db:seed

    Default users:

    • Admin: admin@fltask.test / password
    • Client: client@fltask.test / password
  9. Start the server

    php artisan serve

    Visit http://127.0.0.1:8000

URL Structure

Authentication

  • /login - Login page
  • /logout - Logout (POST)

Admin Area

  • /admin - Admin dashboard (redirects to projects)
  • /admin/projects - List all projects (with search & pagination)
  • /admin/projects/create - Create new project
  • /admin/projects/{project} - View project with tasks
  • /admin/projects/{project}/edit - Edit project
  • /admin/tasks/{task} - View task with comments
  • /admin/tasks/{task}/edit - Edit task
  • /admin/share/{project} - Manage shareable link
  • /admin/users - List all users (with search & pagination)
  • /admin/users/create - Create new user
  • /admin/users/{user} - View user details and assigned projects

Client Area

  • /client - Client dashboard (redirects to projects)
  • /client/projects - List assigned projects
  • /client/projects/{project} - View project tasks
  • /client/tasks/{task} - View task and add comments

Shareable Links (Public)

  • /task/{user}/{project}/{token} - Read-only public project view

Shareable links are:

  • Generated and controlled by admin only
  • Secured with random 10-character tokens
  • Read-only (no comments, no interaction)
  • Can be enabled/disabled by admin

Database Schema

All tables use the fltask_ prefix:

Table Description
fltask_users Admin and client users with roles and admin notes
fltask_projects Client-facing projects with internal notes and descriptions
fltask_tasks Tasks within projects with status and due dates
fltask_comments Comments on tasks from admin and clients
fltask_share_links Controls tokenized public access to projects

Key Columns

  • Projects: fltask_external_description (client-facing), fltask_internal_note (admin-only), fltask_is_archived, fltask_updated_by
  • Tasks: fltask_status, fltask_due_date, fltask_updated_by
  • Users: fltask_role (admin/client/inactive), fltask_admin_notes
  • Share Links: fltask_token (10-char random), fltask_enabled

Task Statuses (Fixed)

  • pending
  • in_progress
  • done

Custom statuses are not supported by design.

User Roles

Role Capabilities
Admin Full access: create/edit/archive projects, create/edit tasks, manage all comments, generate share links, create/manage users
Client View assigned projects, view tasks, add comments on tasks
Inactive No access (soft delete state)

User Management Rules

  • No public user registration
  • Clients are created by admin only
  • Passwords are auto-generated and shown once
  • Admin can promote/demote users (with password confirmation for sensitive changes)
  • Admin can reset passwords

Workflow

Admin Workflow

  1. Create a client user (system generates secure password)
  2. Create a project and assign it to the client
  3. Add tasks to the project
  4. Update task statuses as work progresses
  5. Optionally enable shareable link for external stakeholders
  6. Archive projects when complete

Client Workflow

  1. Login with credentials provided by admin
  2. View assigned projects
  3. See task progress and statuses
  4. Add comments on tasks
  5. Receive project updates from admin

Branding

fltask branding is hardcoded by design:

  • Application name: fltask
  • Tagline: Client-facing task progress tracker.

Custom branding requires forking the project.

Technical Stack

  • Framework: Laravel 12.x
  • Frontend: Blade templates with Tailwind CSS
  • JavaScript: Alpine.js for interactive components (collapsible text)
  • CSS: Tailwind CSS utility-first framework
  • Build Tool: Vite
  • Database: MySQL/MariaDB/SQLite compatible

Development

Running in Development Mode

# Run dev server with hot reload
npm run dev

# In another terminal, run Laravel server
php artisan serve

Building for Production

npm run build

Code Naming Convention

All custom code must use the fltask prefix:

  • Variables: fltaskTask, fltask_status
  • Functions: fltaskCreateTask()
  • Database tables: fltask_tasks
  • Columns: fltask_status
  • Routes: /fltask/projects
  • Events/jobs/services: FltaskTaskUpdated

No exceptions.

Contributing

Contributions must respect the project scope. Feature requests outside the defined scope may be declined.

Guidelines:

  • Keep solutions simple and clear
  • Preserve backward compatibility
  • Follow the fltask_ naming convention for all custom code
  • Do not add features listed in "What fltask is NOT"
  • Match exact design when converting to Tailwind (no modernization)
  • Write concise, focused code

License

fltask is licensed under AGPL-3.0.

This ensures:

  • Modifications remain open-source
  • Network-deployed changes must be shared
  • Closed-source SaaS reuse is discouraged

See LICENSE for details.


fltask values focus over expansion. The project aims to remain small, purpose-driven, predictable, and sustainable long-term.

About

Client-facing task progress tracker. a lightweight tool to show task progress and workflow status to clients without the complexity of full project management systems.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages