Минималистичный менеджер задач для тех, кто ценит скорость и ясность.
FLOWLIST помогает фокусироваться на важном - без лишних кликов, всплывающих окон и перегруженного интерфейса. Создан для русскоязычных пользователей, с продуманным UX и мгновенным редактированием.
| Десктопная версия | Мобильная версия |
|---|---|
![]() |
![]() |
git clone https://github.com/nonsess/flowlist.git
cd flowlistdocker-compose up --buildПриложение: 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 управляет всем стеком.
-
Оптимистичные обновления + умная сортировка
При отметке задачи как выполненной - она мгновенно уходит в самый низ списка, без ожидания ответа от сервера. При удалении - задача исчезает сразу, но при ошибке - список перезагружается. Сортировка: новые задачи сверху, выполненные - снизу, причём самые новые выполненные - самые последние.
💡 Это улучшает UX и делает работу с задачами «живой».
-
Безопасная аутентификация «из коробки»
Пароли хэшируются с bcrypt. Токены - JWT с HS256, сроком 30 минут. CORS разрешён только для localhost:3000. Docker-образы запускаются от непривилегированного пользователя.
🔒 Никаких «дыр» даже в MVP - безопасность заложена с самого начала.
-
Единая точка управления состоянием
Все данные задач - через 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 © Даниил Петров

