Skip to content

A basic task management application built with php Laravel. This project demonstrates backend development principles, including database design, authentication, and API development.

Notifications You must be signed in to change notification settings

NourAlllah/GS-task-management-system

Repository files navigation

GS-Task management system

This Laravel-based application allows users to manage tasks efficiently. The system demonstrates backend development practices, robust database handling, and secure authentication mechanisms.


Core Features

Authentication:

  • User login and logout (registration excluded).
  • Middleware for route protection.

Database Models:

  • User: For authentication and task management.
  • Task: Contains task details such as title, description, due date, status, and assignee.
  • Comment: For task-specific user collaboration.
  • Attachment: Handles task-related file uploads.

Data Migrations and Seeders:

  • Migrations to define the schema.
  • Seeders to create:
    • 3 users.
    • 100+ tasks for each user.

Dashboard:

  • Displays tasks:
    • Assigned to the user.
    • Created by the user.

Task Management:

  • Users can:
    • Create tasks.
    • Assign tasks to others.
    • Update task status (Open, In Progress, Completed).

Comments:

  • Users can comment on tasks for real-time collaboration.

Search and Filter:

  • Enables search by title and description.
  • Filters by:
    • Status
    • Assignee
    • Priority

Email Notifications:

  • Notifications for:
    • Task assignments.
    • Status updates.
    • New comments.

Additionally, I have written unit tests for some of the functionalities of the application. Though not all functions are tested, I focused on core operations such as task creation and user authentication to ensure that the critical parts of the system are functioning correctly.


Components Used

Jobs:

  • This project utilizes Laravel Jobs for handling background tasks and asynchronous processing. Jobs are used for tasks such as sending emails of new task created.

Migrations:

  • Database migrations are used to manage database schema changes and ensure consistency across different environments. Migrations are used to create and modify database tables.

Seeds:

  • Database seeding is used to populate the database with initial data. Seeders are used to create sample data for testing purposes.

versions used

  • PHP 8.2.12
  • Laravel Framework 11.13.0
  • Composer version 2.7.2
  • Node js v20.13.1
  • NPM 10.5.2

Setup and Installation

1- Clone the repository:

    git clone https://github.com/NourAlllah/GS-task-management-system.git

2- Install dependencies:

    composer install
    npm install

3- Configure the .env File:

  cp .env.example .env

4- update .env File:

    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=your_database_name
    DB_USERNAME=root
    DB_PASSWORD=

    MAIL_MAILER=smtp
    MAIL_HOST=smtp.gmail.com
    MAIL_PORT=587
    [email protected]
    MAIL_PASSWORD=create this password using google app
    MAIL_ENCRYPTION=tls
    [email protected]
    MAIL_FROM_NAME="${APP_NAME}"

***adding gmail and password is important to push email notification, If the email was not received, check the logs of your email service provider.

5- Generate Application Key:

    php artisan key:generate

6- Run for Vite manifest

    npm run build

7- php artisan migrate:

    php artisan migrate

8- Seed the database:

    php artisan db:seed

9- clearinf config cash:

    php artisan config:clear

    php artisan config:cache 

10- Link Storage to public

    php artisan storage:link

11- Start the development server:

    php artisan serve

12- Ensure that queue workers are running to handle jobs:

    php artisan queue:work

About

A basic task management application built with php Laravel. This project demonstrates backend development principles, including database design, authentication, and API development.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published