A full-stack task management application built with Laravel, Blade, Tailwind CSS, JavaScript, SQLite, and Laravel Sanctum.
TaskFlow was created as a portfolio project to demonstrate practical skills in authentication, CRUD operations, authorization, database design, REST APIs, responsive UI, and Laravel application architecture.
- User registration and authentication
- User-specific tasks
- Create, edit, and delete tasks
- Mark tasks as completed or pending
- Task priorities: Low, Medium, High
- Optional due dates
- Search tasks by title or description
- Filter by status
- Filter by priority
- Responsive dashboard
- Profile management
- Authorization with Laravel Policies
- REST API with Laravel Sanctum
- SQLite database for simple local development
- Tailwind CSS interface
- Vite asset compilation
- Backend: Laravel / PHP
- Frontend: Blade, Tailwind CSS, JavaScript
- Database: SQLite
- Authentication: Laravel Breeze
- API Authentication: Laravel Sanctum
- Build Tool: Vite
- Package Management: Composer / npm
Before running the project, make sure you have installed:
- PHP 8.2+
- Composer
- Node.js and npm
- Git
You can verify your installations with:
php -v
composer -V
node -v
npm -v
git --versiongit clone https://github.com/RamsesJM/task-manager.gitEnter the project directory:
cd task-managercomposer installnpm installWindows:
copy .env.example .envmacOS/Linux:
cp .env.example .envphp artisan key:generateWindows PowerShell:
New-Item database/database.sqlite -ItemType FilemacOS/Linux:
touch database/database.sqliteMake sure the .env database configuration uses SQLite:
DB_CONNECTION=sqlitephp artisan migrateThis creates the required tables for users, tasks, sessions, cache, jobs, and API tokens.
npm run buildphp artisan serveOpen the application in your browser:
http://127.0.0.1:8000
After opening TaskFlow, create an account using the registration page.
Then test the main functionality:
- Register a new account.
- Log in.
- Create a task.
- Set its priority.
- Add an optional due date.
- Mark the task as completed.
- Reopen the task.
- Edit the task.
- Search for the task.
- Filter tasks by status and priority.
- Delete the task.
- Open the profile section.
TaskFlow uses Laravel authentication and authorization features.
Each task belongs to a specific user. Users can only access and modify their own tasks.
Task authorization is handled through Laravel Policies rather than relying only on frontend restrictions.
The application also includes protected API endpoints using Laravel Sanctum.
TaskFlow includes a REST API.
Available API functionality includes:
- User login
- Authenticated user information
- Logout
- Task CRUD operations
Protected API endpoints require a valid Sanctum authentication token.
The API routes are located in:
routes/api.php
Important parts of the project include:
app/
├── Http/
│ └── Controllers/
├── Models/
│ ├── Task.php
│ └── User.php
└── Policies/
└── TaskPolicy.php
database/
├── migrations/
└── database.sqlite
resources/
├── css/
├── js/
└── views/
routes/
├── api.php
├── web.php
└── auth.php
The main entities are:
Stores registered application users.
Each task contains:
- Title
- Description
- Completion status
- Priority
- Due date
- User relationship
- Created and updated timestamps
Tasks are associated with users through a foreign key, ensuring that each user's data remains isolated.
To run the application during development:
Terminal 1:
php artisan serveTerminal 2:
npm run devThen open:
http://127.0.0.1:8000
For a production-style frontend build:
npm run buildTaskFlow was developed as a practical demonstration of modern Laravel development.
The project focuses on building functionality rather than only creating a visual interface. It demonstrates authentication, authorization, relational database design, CRUD operations, API development, validation, filtering, responsive UI, and frontend asset management.
Ramses Jimenez
GitHub: