Skip to content

xavian1996/PHP-OOP-Task-Manager

Repository files navigation

Task Manager Web Application

A comprehensive task management web application built with pure PHP OOP, PDO/MySQL, and responsive frontend design.

Features

User Management

  • User Registration & Login: Secure authentication system
  • Session Management: Persistent login sessions
  • Password Hashing: Secure password storage using PHP's password_hash()

Project Management

  • Create Projects: Users can create new projects and become admins
  • Project Invitations: Unique invitation codes for project joining
  • Admin Roles: Project creators have admin privileges
  • Member Management: Admins can remove members from projects
  • Project Settings: Edit project details and delete projects

Task Management

  • Task Creation: Create tasks within projects
  • Task Status Tracking: Three status levels (Pending, In Progress, Completed)
  • Task Assignment: Tasks assigned to specific users
  • Status Updates: Real-time status updates with visual indicators
  • Task Statistics: Visual progress tracking

Team Collaboration

  • Project Membership: Join projects using invitation codes
  • Team Members: View all project members
  • Role-based Access: Different permissions for admins and members

Technology Stack

Backend

  • PHP 7.4+: Pure Object-Oriented Programming
  • PDO: Secure database access
  • MySQL: Relational database
  • Session Management: PHP sessions for user authentication

Frontend

  • Tailwind CSS: Utility-first CSS framework
  • Font Awesome: Icon library
  • Responsive Design: Mobile-first approach
  • Modern UI: Glass morphism effects and smooth animations

Database Schema

  • Users: User authentication and profiles
  • Projects: Project management and settings
  • Project Members: Team member relationships
  • Tasks: Task management and tracking

File Structure

/
├── classes/
│   ├── Database.php      # Database connection class
│   ├── User.php          # User management class
│   ├── Project.php       # Project management class
│   └── Task.php          # Task management class
├── config/
│   └── config.php        # Application configuration
├── database/
│   └── schema.sql        # Database schema
├── index.php             # Dashboard
├── login.php             # Login page
├── register.php          # Registration page
├── logout.php            # Logout script
├── create-project.php    # Project creation
├── join-project.php      # Project joining
├── project.php           # Project details
├── project-settings.php  # Project settings
├── manage-members.php    # Member management
├── tasks.php             # Task overview
├── setup.php             # Database setup
└── README.md             # Documentation

Installation

Prerequisites

  • PHP 7.4 or higher
  • MySQL 5.7 or higher
  • Web server (Apache/Nginx)

Setup Instructions

  1. Clone or download the project files

  2. Set up the database:

    # Run the setup script
    php setup.php

    Or manually:

    CREATE DATABASE task_manager;
    USE task_manager;
    SOURCE database/schema.sql;
  3. Configure database connection: Edit config/config.php and update database credentials:

    $DB_HOST = 'localhost';
    $DB_NAME = 'task_manager';
    $DB_USER = 'your_username';
    $DB_PASS = 'your_password';
  4. Set up web server:

    • Point your web server to the project directory
    • Ensure PHP is properly configured
  5. Access the application: Navigate to http://localhost/task-manager (or your configured URL)

Default Configuration

  • Database: task_manager
  • Default user: root (empty password)
  • Base URL: http://localhost/task-manager

Usage

Getting Started

  1. Register a new account or login if you already have one
  2. Create a new project or join an existing one using an invitation code
  3. Add tasks to your projects
  4. Track progress using the status indicators
  5. Invite team members using the project invitation code

User Roles

  • Admin: Can manage project settings, remove members, delete projects
  • Member: Can create tasks, update task status, view project details

Task Status

  • Pending: Tasks that haven't been started
  • In Progress: Tasks currently being worked on
  • Completed: Finished tasks

Security Features

  • Password hashing using PHP's built-in functions
  • Prepared statements to prevent SQL injection
  • Session-based authentication
  • Input validation and sanitization
  • Role-based access control

Responsive Design

The application is fully responsive and works on:

  • Desktop computers
  • Tablets
  • Mobile phones
  • Various screen sizes

Browser Support

  • Chrome/Chromium 80+
  • Firefox 75+
  • Safari 13+
  • Edge 80+

Contributing

This is a complete task management solution. Feel free to:

  • Fork the project
  • Submit issues
  • Create pull requests
  • Add new features

License

This project is open source and available under the MIT License.

Support

For issues, questions, or contributions, please refer to the project documentation or create an issue in the repository.


Built with ❤️ using PHP OOP, PDO/MySQL, and modern web technologies

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published