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.
- Features
- Screenshots
- What fltask is NOT
- Requirements
- Installation
- cPanel Deployment
- Usage Guide
- URL Structure
- Database Schema
- User Roles
- Workflow
- Branding
- Technical Stack
- Development
- Contributing
- License
|
|
|
|
|
|
- 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 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
- 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
- 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
- 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
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.
- PHP 8.2+
- Composer
- Node.js & NPM (for asset compilation)
- MySQL / MariaDB / SQLite
- Laravel 12.x
-
Clone the repository
git clone https://github.com/mnasikin/fltask.git cd fltask -
Install PHP dependencies
composer install
-
Install NPM dependencies
npm install
-
Configure environment
cp .env.example .env php artisan key:generate
-
Configure database
Edit
.envwith 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 -
Run migrations
php artisan migrate
-
Build assets
npm run build
-
Seed default users (optional)
php artisan db:seed
Default users:
- Admin:
admin@fltask.test/password - Client:
client@fltask.test/password
- Admin:
-
Start the server
php artisan serve
Visit
http://127.0.0.1:8000
/login- Login page/logout- Logout (POST)
/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- Client dashboard (redirects to projects)/client/projects- List assigned projects/client/projects/{project}- View project tasks/client/tasks/{task}- View task and add comments
/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
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 |
- 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
pendingin_progressdone
Custom statuses are not supported by design.
| 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) |
- 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
- Create a client user (system generates secure password)
- Create a project and assign it to the client
- Add tasks to the project
- Update task statuses as work progresses
- Optionally enable shareable link for external stakeholders
- Archive projects when complete
- Login with credentials provided by admin
- View assigned projects
- See task progress and statuses
- Add comments on tasks
- Receive project updates from admin
fltask branding is hardcoded by design:
- Application name:
fltask - Tagline:
Client-facing task progress tracker.
Custom branding requires forking the project.
- 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
# Run dev server with hot reload
npm run dev
# In another terminal, run Laravel server
php artisan servenpm run buildAll 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.
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
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.





