Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sashka11111/task-management-system


https://github.com/sashka11111/task-management-system

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

        

# Task Management System

Цей проект реалізує систему управління завданнями для користувачів, яка дозволяє створювати, оновлювати, призначати та змінювати статус завдань. Проект побудований з використанням PHP, PDO для роботи з базою даних та принципів MVC (Model-View-Controller).

## Зміст

- [Опис](#Опис)
- [Встановлення](#Встановлення)
- [Доступ до маршрутів](#Доступ-до-маршрутів)

## Опис

Ця система дозволяє користувачам створювати та призначати завдання, змінювати їх статус, оновлювати та видаляти їх з бази даних.
Користувач може зареєструватися, увійти в систему, змінити свій пароль та вийти з системи.

### Основні функції:
- Створення завдань
- Оновлення завдань
- Призначення завдань користувачам
- Зміна статусу завдань
- Редагування завдань
- Видалення завдань

## Встановлення

Щоб розгорнути проект локально, виконайте наступні кроки:

1. Клонувати репозиторій:

```bash
git clone https://github.com/Sashka11111/task-management-system
```

2. Встановити залежності за допомогою Composer (якщо вони є):

```bash
composer install
```

Налаштуйте файл .env для вашого середовища (наприклад, бази даних) і переконайтесь, що база даних налаштована правильно.

Імпортуйте SQL схему в базу даних. Використовуйте наступні SQL запити для створення таблиць:

```sql
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL
);

CREATE TABLE tasks (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
description TEXT,
status ENUM('Pending', 'In Progress', 'Completed') NOT NULL,
creator_id INT,
assigned_to_id INT,
created_at DATETIME,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (creator_id) REFERENCES users(id),
FOREIGN KEY (assigned_to_id) REFERENCES users(id)
);
```
## Доступ до маршрутів
Після того як сервер запущений, ви матимете доступ до наступних маршрутів:

- **Головна сторінка**:
- Шлях: `/`
- Опис: Виводить повідомлення "Головна сторінка".

- **Вхід в систему**:
- Шлях: `/login`
- Опис: Сторінка для входу в систему користувача.

- **Реєстрація користувача**:
- Шлях: `/register`
- Опис: Сторінка для реєстрації нового користувача.

- **Список завдань**:
- Шлях: `/tasks`
- Опис: Виводить список всіх завдань.

- **Створення нового завдання**:
- Шлях: `/tasks/create`
- Опис: Сторінка для створення нового завдання.

- **Оновлення завдання**:
- Шлях: `/tasks/update/{id}`
- Опис: Оновлення завдання з певним `id`. Замість `{id}` вставте реальний ID завдання.

- **Видалення завдання**:
- Шлях: `/tasks/delete/{id}`
- Опис: Видалення завдання з певним `id`. Замість `{id}` вставте реальний ID завдання.

- **Призначення завдання користувачу**:
- Шлях: `/tasks/{taskId}/assign/{userId}`
- Опис: Призначення завдання з `taskId` користувачу з `userId`.

- **Зміна статусу завдання**:
- Шлях: `/tasks/{taskId}/status/{status}`
- Опис: Зміна статусу завдання на вказаний в `status`. Замість `{taskId}` вставте ID завдання, а в `{status}` — новий статус.

- **Вихід з системи**:
- Шлях: `/logout`
- Опис: Вихід з системи.

- **Зміна пароля**:
- Шлях: `/change-password`
- Опис: Сторінка для зміни пароля користувача.

### Приклад запитів

1. Для отримання списку всіх завдань, перейдіть за адресою:

```bash
http://task-management-system.test/tasks
```

2. Для оновлення завдання з ID 1, перейдіть за адресою:

```bash
http://task-management-system.test/tasks/update/1
```

3. Для видалення завдання з ID 2, перейдіть за адресою:

```bash
http://task-management-system.test/tasks/delete/2
```

4. Для зміни статусу завдання з ID 3 на "Completed", перейдіть за адресою:

```bash
http://task-management-system.test/tasks/3/status/Completed
```