Skip to content

apermar-dev/TaskFlow-Project-Task-Management-System

Repository files navigation

TaskFlow - Project & Task Management System

📌 About The Project

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.

✨ Key Features Developed:

  • 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.

🛠️ Built With

  • 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)

🚀 Getting Started

Prerequisites

  • PHP >= 7.4 (Recommended 8.0+)
  • MySQL/MariaDB
  • Apache/Nginx (with mod_rewrite enabled for clean URLs)

Installation

  1. Clone the repository:

    git clone https://github.com/apermar-dev/taskflow.git
    cd taskflow
  2. Database Setup:

    • Create a new database named taskflow.
    • Import the provided SQL schema.
  3. Configuration:

    • Open application/config/database.php and configure your database credentials (hostname, username, password, database).
    • Open application/config/config.php and set your base_url.
  4. Run the application: Access the application via your local server (e.g., http://localhost/taskflow).

    • Default Admin Account:
      • Username: admin
      • Password: admin123

📝 License

Distributed under the MIT License. See LICENSE for more information.

👨‍💻 Author

Álvaro Pérez

About

No description, website, or topics provided.

Resources

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
license.txt

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages