Современное веб-приложение для создания и редактирования заметок в формате Markdown с поддержкой темной темы и feature flags.
- 📝 Редактор Markdown с live-превью
- 🎨 Темная и светлая тема
- 🔍 Поиск по заметкам
- 🏷️ Редактирование заголовков прямо в списке
- 🗑️ Удаление заметок (через feature flag)
- 📱 Адаптивный дизайн
- ⚡ Быстрая работа с оптимизацией
- React 19 с TypeScript
- Redux Toolkit для управления состоянием
- Tailwind CSS для стилизации
- Radix UI для компонентов
- Wouter для маршрутизации
- Vite для сборки
- Vitest для тестирования
- Storybook для документации компонентов
# Установка зависимостей
npm install
# Запуск в режиме разработки
npm run start:dev
# Или по отдельности:
npm run dev # Frontend
npm run start:dev:server # Backend (JSON Server)# Сборка образа
docker build -t markdown-note:latest .
# Запуск контейнера
docker run -p 3000:8000 markdown-note:latestПроект использует Feature-Sliced Design (FSD):
src/
├── app/ # Инициализация приложения
├── entities/ # Бизнес-сущности (note, user, theme)
├── features/ # Функциональные модули
├── pages/ # Страницы приложения
├── shared/ # Переиспользуемые модули
└── widgets/ # Композитные компоненты
Приложение поддерживает управление функциями через feature flags:
darkTheme- переключение темной темыdeleteNote- возможность удаления заметокeditNote- редактирование заголовков
Управление через кнопку настроек в правом нижнем углу.
# Запуск всех тестов
npm test
# Unit тесты
npm run test:unit
# Storybook тесты
npm run test:storybook
# Тесты в режиме watch
npm run test:watch# Запуск Storybook
npm run storybook
# Сборка Storybook
npm run build-storybooknpm run dev- запуск dev сервераnpm run build- сборка для продакшенаnpm run preview- предпросмотр сборкиnpm run lint- проверка кодаnpm run lint:fix- автоматическое исправлениеnpm run format- форматирование кодаnpm run test- запуск тестов
Приложение использует JSON Server для имитации API:
GET /notes- получение всех заметокPOST /notes- создание заметкиPATCH /notes/:id- обновление заметкиDELETE /notes/:id- удаление заметки
interface Note {
id: string;
title: string;
content?: string;
createdAt: string;
updatedAt: string;
}Приложение поддерживает автоматическое переключение тем:
- Светлая тема - по умолчанию
- Темная тема - через feature flag или системные настройки
Поиск работает по:
- Заголовкам заметок
- Содержимому заметок
- Результаты отображаются в реальном времени
Создайте файл .env:
VITE_API_URL=http://localhost:8000version: '3.8'
services:
app:
build: .
ports:
- '3000:8000'
environment:
- VITE_API_URL=http://localhost:8000- Форкните репозиторий
- Создайте ветку для новой функции
- Внесите изменения
- Добавьте тесты
- Создайте Pull Request
MIT License