TaskFlow is a modern and comprehensive Project and Task Management System built with CodeIgniter 3. I developed this application to provide teams with an efficient way to organize their workflow, manage assignments, and track project progress through an intuitive Kanban-style interface.
This project demonstrates a full-stack MVC architecture with secure authentication, role-based access control, AJAX-driven dynamic UI components, and a robust REST API for seamless external integrations.
- Authentication & Role Management: Secure login system with Admin and Standard User roles. Passwords are encrypted using modern hashing algorithms (
password_hash), preventing any double-hashing vulnerabilities. - Project Management: Full CRUD operations for projects. Admins can assign specific active users to each project, ensuring secure boundaries.
- Kanban Task Board: Interactive, AJAX-powered task management board. Users can easily move tasks between states (Pending, In Progress, Completed) without reloading the page.
- REST API Integration: Built a fully functional RESTful API authenticated via JSON Web Tokens (JWT/Bearer tokens) with proper CORS headers to allow headless frontend consumption.
- Security Implementations:
- CSRF Protection enabled for all web forms to prevent cross-site request forgery.
- XSS Filtering (
html_escape) applied across all views to sanitize user inputs and prevent cross-site scripting. - Secure endpoints enforcing role-based permissions at the controller and API level.
- Modern UI/UX: Developed a responsive, "Glassmorphism" styled interface using Bootstrap 5, featuring real-time feedback via AJAX toasts and modals.
- PHP 8.x
- CodeIgniter 3.1.13 (MVC Framework)
- MySQL / MariaDB (Relational Database)
- Bootstrap 5.3 & Bootstrap Icons (Frontend Framework)
- Vanilla JavaScript (ES6+) (AJAX & DOM Manipulation)
- PHP >= 7.4 (Recommended 8.0+)
- MySQL/MariaDB
- Apache/Nginx (with
mod_rewriteenabled for clean URLs)
-
Clone the repository:
git clone https://github.com/apermar-dev/taskflow.git cd taskflow -
Database Setup:
- Create a new database named
taskflow. - Import the provided SQL schema.
- Create a new database named
-
Configuration:
- Open
application/config/database.phpand configure your database credentials (hostname, username, password, database). - Open
application/config/config.phpand set yourbase_url.
- Open
-
Run the application: Access the application via your local server (e.g.,
http://localhost/taskflow).- Default Admin Account:
- Username: admin
- Password: admin123
- Default Admin Account:
Distributed under the MIT License. See LICENSE for more information.
Álvaro Pérez
- GitHub: @apermar-dev