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

https://github.com/adamanr/taskmanager

TaskManager — гибкое приложение для управления задачами на Elixir 🚀 Создавайте, группируйте, фильтруйте и отслеживайте задачи с легкостью 📝📂🔍📊
https://github.com/adamanr/taskmanager

bandit ecto eex elixir elixir-lang task-manager

Last synced: 11 months ago
JSON representation

TaskManager — гибкое приложение для управления задачами на Elixir 🚀 Создавайте, группируйте, фильтруйте и отслеживайте задачи с легкостью 📝📂🔍📊

Awesome Lists containing this project

README

          

# TaskManager 🖥

**TaskManager** — это гибкое приложение для управления задачами, разработанное на языке Elixir. 🚀 Оно помогает эффективно организовывать рабочие процессы, управлять сроками и контролировать выполнение задач. С помощью TaskManager вы можете:
- **Создавать задачи**: Добавляйте задачи с указанием названия, описания, статуса, приоритета и дедлайна 📝
- **Группировать задачи**: Организуйте задачи в группы для удобного управления проектами, командами или категориями 📂
- **Фильтровать и сортировать**: Легко находите нужные задачи с помощью фильтров по статусу (например, "в процессе", "завершено"), приоритету (например, "высокий", "низкий") и дедлайну (например, "просроченные задачи") 🔍
- **Отслеживать прогресс**: Просматривайте задачи, которые уже выполнены, и те, что требуют внимания 📊


![ 📸](priv/static/image.png)

## Основные функции 🛠️

- **Создание задач**: Добавление новых задач с указанием названия, описания, статуса, приоритета и дедлайна 📅
- **Объединение задач в группы**: Добавление новых задач с указанием названия, описания, статуса, приоритета и дедлайна 🗂️
- **Редактирование задач**: Обновление существующих задач ✏️
- **Удаление задач**: Удаление задач из системы 🗑️
- **Фильтрация задач**:
- По статусу (например, "в процессе", "завершено") 🚦
- По приоритету (например, "высокий", "низкий") ⚡
- По дедлайну (например, "просроченные задачи") ⏳

## Технологии 💻

- **Язык**: Elixir 🧪
- **База данных**: SQLite3 🗄️
- **Библиотеки**:
- ecto_sql {3.12} 📚
- ecto_sqlite3 {0.18.0} 📚
- bandit {1.6.2} 📚
- ex_doc {0.30} 📚
- credo {1.7} 📚
- exsync {0.4.1} 📚
- **ORM**: Ecto 🛠️
- **Шаблонизатор**: EEx 📝

## Установка и запуск 🚀

### 1. Установите зависимости

Убедитесь, что у вас установлены:
- Elixir (версия 1.14 или выше) 🧪
- npm (версия 11.0.0 или выше) 📦

### 2. Клонируйте репозиторий

```bash
git clone https://github.com/adamanr/TaskManager.git
cd task_manager
```

### 3. Установите зависимости проекта

```bash
mix deps.get
```

### 4. Настройте базу данных

Создайте базу данных и настройте подключение в файле `config/config.exs`:

```elixir
config :task_manager, TaskManager.Repo,
adapter: Ecto.Adapters.SQLite3,
database: "./database.db", # Или другой любой удобный путь
pool_size: 10
```

Создайте и выполните миграции:

```bash
mix ecto.create
mix ecto.migrate
```

### 5. Подтяните npm зависимости (Нужно для tailwind)
```
npm i
```

### 6. Запустите приложение

```bash
mix run --no-halt
```

### 7. В случае, если нужно будет пересобрать tailwind
```bash
npx tailwindcss -i ./assets/css/app.css -o ./priv/static/css/app.css --watch
```

Приложение будет доступно по адресу: [http://localhost:4000](http://localhost:4000). 🌐

## Использование 📖

## Структура проекта 🗂️

- **lib/task_manager** — Основной код приложения
- **repo.exs** — Настройки репозитория Ecto 🗄️
- **router.exs** — Маршруты и обработчики запросов 🛣️
- **tasks.exs** — Контекст для работы с задачами 📝
- **groups.exs** — Контекст для работы с группами 📂
- **tasks_groups.exs** — Контекст для связи задач с группами 🔗
- **templates.exs** — Модуль для работы с html.eex шаблонами 📄
- **priv/repo/migrations** — Миграции базы данных 🗄️
- **templates** — Шаблоны для рендеринга HTML 📄
- **config** — Конфигурационные файлы ⚙️

## Лицензия 📜

Этот проект распространяется под лицензией MIT. Подробнее см. в файле [LICENSE](LICENSE).

## Автор 👤

- [Adamanr](https://github.com/adamanr) 🧑‍💻

## Как внести вклад 🤝
Данный проект является больше учебным пет-проектом нежели чем-то продуктовым, но его всегда можно улучшить. Если же у вас появились данные намерения, то

1. Форкните репозиторий. 🍴
2. Создайте ветку для вашей функции (`git checkout -b feature/AmazingFeature`) 🌿
3. Зафиксируйте изменения (`git commit -m 'Add some AmazingFeature'`) 💾
4. Отправьте изменения в ваш форк (`git push origin feature/AmazingFeature`) 🚀
5. Создайте Pull Request 📥

Если у вас есть вопросы или предложения, создайте [Issue](https://github.com/adamanr/TaskManager/issues) или свяжитесь со мной! 📩