Skip to content

Минималистичный менеджер задач с умной сортировкой и мгновенным редактированием.

Notifications You must be signed in to change notification settings

nonsess/flowlist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FLOWLIST - ваши задачи в движении

Next.js FastAPI PostgreSQL Docker TypeScript Python

Минималистичный менеджер задач для тех, кто ценит скорость и ясность.
FLOWLIST помогает фокусироваться на важном - без лишних кликов, всплывающих окон и перегруженного интерфейса. Создан для русскоязычных пользователей, с продуманным UX и мгновенным редактированием.


🖼️ Скриншоты

Десктопная версия Мобильная версия
Десктоп Мобилка

🚀 Быстрый старт

Требования

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

git clone https://github.com/nonsess/flowlist.git
cd flowlist

2. Запусти проект

docker-compose up --build

3. Открой в браузере

Приложение: http://localhost:3000
API Docs: http://localhost:8000/docs

> При первом запуске автоматически создаются таблицы в базе данных.

⏱️ Всё готово за 2 минуты - миграции применяются автоматически, БД создаётся при первом запуске.


🏗️ Архитектура

┌─────────────┐     HTTP     ┌─────────────┐     Asyncpg      ┌──────────────┐
│             │◄────────────►│             │◄────────────────►│              │
│   Next.js   │   (CORS)     │   FastAPI   │   (SQLAlchemy)   │  PostgreSQL  │
│  (Frontend) │              │  (Backend)  │                  │    (DB)      │
│             │─────────────►│             │                  │              │
└─────────────┘   JWT Auth   └─────────────┘                  └──────────────┘

Фронтенд (Next.js): клиентская логика, React Context для состояния, прямые запросы к API.

Бэкенд (FastAPI): REST API, аутентификация через JWT, асинхронная работа с БД.

База данных: PostgreSQL с отношениями user → tasks.

Инфраструктура: всё в Docker - один docker-compose.yml управляет всем стеком.


🔧 Ключевые технические решения

  1. Оптимистичные обновления + умная сортировка

    При отметке задачи как выполненной - она мгновенно уходит в самый низ списка, без ожидания ответа от сервера. При удалении - задача исчезает сразу, но при ошибке - список перезагружается. Сортировка: новые задачи сверху, выполненные - снизу, причём самые новые выполненные - самые последние.

    💡 Это улучшает UX и делает работу с задачами «живой».

  2. Безопасная аутентификация «из коробки»

    Пароли хэшируются с bcrypt. Токены - JWT с HS256, сроком 30 минут. CORS разрешён только для localhost:3000. Docker-образы запускаются от непривилегированного пользователя.

    🔒 Никаких «дыр» даже в MVP - безопасность заложена с самого начала.

  3. Единая точка управления состоянием

    Все данные задач - через TaskContext. Авторизация - через AuthContext. Нет «проброса пропсов» через 5 уровней компонентов. Компоненты (вроде TaskCard) полностью переиспользуемы.


⚙️ Что я бы улучшил

Добавить retry-логику для сетевых запросов с экспоненциальной задержкой.
Использовать httpOnly cookies вместо localStorage для хранения JWT (защита от XSS).
Внедрить ESLint + Prettier на бэкенде (сейчас только фронтенд типизирован строго).
Сделать dark mode - Tailwind легко позволяет это реализовать.

> Эти решения я применил бы в продакшен-продукте, но для MVP сосредоточился на core-функционале.

👤 Мой вклад

Этот проект - полностью моё соло-требование, реализованное за 5 дней:

- ✍️ Проектирование UX: фокус на минимализм, скорость и интуитивность для русскоязычной аудитории.
- 💻 Fullstack-разработка: от FastAPI-роутов до React Context и Tailwind-стилей.
- 🐳 Docker-оркестрация: настройка multi-service окружения с PostgreSQL, миграциями и healthcheck’ами.
- 🛡️ Безопасность: JWT, bcrypt, CORS, валидация на фронтенде и бэкенде.
- 🧪 Отладка сложных кейсов: CORS при проксировании, ошибки Alembic, проблемы с Poetry в Docker.

FLOWLIST - не просто «таск-менеджер», а демонстрация моего подхода к разработке: чистый код, продуманный UX и внимание к деталям.


📄 Лицензия

MIT © Даниил Петров

About

Минималистичный менеджер задач с умной сортировкой и мгновенным редактированием.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published