GopherNote — это строго минималистичное веб-приложение для создания и управления заметками с поддержкой Markdown-превью и голосового ввода, а также уникальной системой контекстных цитат. Приложение построено на базе Blazor WebAssembly и работает полностью на стороне клиента (frontend-only), не требуя серверного бэкенда.
Разработка выполнена в стиле, вдохновлённом интерфейсами Notion и Evernote.
- 🚀 Полный Client-Side: Высокая скорость работы, всё приложение выполняется прямо в вашем браузере.
- 📝 Двухпанельный Markdown-редактор: Написание заметок с мгновенным визуальным рендерингом Markdown-синтаксиса (на базе библиотеки Markdig).
- 🎙️ Голосовой ввод (Speech-to-Text): Поддержка диктовки текста заметок в реальном времени с автоматическим добавлением в редактор.
- 💾 Надёжное локальное хранение: Автоматическое сохранение структуры заметок и выбранных настроек в
localStorage. - 📌 Умное закрепление: Важные заметки можно закрепить (
★) — они всегда будут оставаться вверху сетки и выделяться фирменной акцентной рамкой. - 🏷️ Интуитивные теги: Быстрое создание тегов и их удаление в один клик прямо внутри окна редактирования.
- 🔍 Фильтрация и сортировка: Мгновенный поиск по тегам, а также сортировка заметок (сначала новые / сначала старые).
- 🎨 Персонализация карточек: Возможность изменения цвета фона обложки путём выборов одного из 4-х представленных шаблонов.
- 💬 Контекстные цитаты: Верхний интерактивный блок
TopQuote, который выводит мотивирующие фразы в зависимости от состояния вашей базы заметок.
- Фреймворк: Blazor .NET 8.0+ (WebAssembly Standalone)
- Язык программирования: C# 12+
- Парсер Markdown: Markdig
- Интеграция с WebSpeech API: Распознавание речи через JavaScript Interop
- Хранение данных: Браузерный
localStorage(без внешних баз данных)
Поскольку проект является полностью клиентским, вся ключевая логика сосредоточена в основном репозитории приложения:
📁 GopherNote
├── 📁 Components # Переиспользуемые UI-компоненты (NoteCard, TopQuote, ThemeToggle, MarkdownView)
├── 📁 Pages # Основные экраны и страницы приложения (Home, EditNote)
├── 📁 Services # Клиентские сервисы (NoteService, QuoteService, SpeechService)
├── 📁 Models # Модели данных (Note)
└── 📁 wwwroot # Статические ресурсы, глобальные стили (theme.css, app.css) и JS-скрипты
- .NET SDK (версия 8.0 или выше)
- Современный веб-браузер с поддержкой Web Speech API (рекомендуются браузеры на движке Chromium: Google Chrome, Microsoft Edge, Opera)
- C# выше 12 версии (включительно)
-
Клонируйте репозиторий:
git clone https://github.com/legolordr/GopherNote -
Перейдите в папку проекта:
cd GopherNote -
Восстановите зависимости:
dotnet restore -
Запустите локальный веб-сервер:
dotnet run --project GopherNote -
Откройте предоставленный в консоли локальный URL-адрес (например, http://localhost:5114) в вашем браузере.
- Создание и редактирование: Нажмите «Новая заметка» в сайдбаре. В режиме редактора левая панель предназначена для ввода текста и разметки, а правая мгновенно отображает итоговый результат.
- Голосовой ввод: Нажмите кнопку «🎙 Голосовой ввод» и начните говорить. Текст будет автоматически добавляться в поле содержимого. По окончании нажмите кнопку остановки.
- Поиск: Поле ввода в левой панели осуществляет мгновенную фильтрацию карточек по совпадению тегов.
Мы рады вашим Pull Request'ам! Чтобы внести свой вклад:
- Форкните репозиторий.
- Создайте ветку для своей фичи: git checkout -b feature/awesome-feature.
- Сделайте коммит ваших изменений: git commit -m 'Add awesome feature'.
- Запушьте ветку: git push origin feature/awesome-feature.
- Откройте Pull Request.
- Придерживайтесь официального C# Coding Conventions.
- Компоненты Blazor и их файлы стилей называйте исключительно в PascalCase (например, NoteCard.razor, NoteCard.razor.css).
| ФИО | Роль в проекте |
|---|---|
| Зыков Марк | Техлид / Архитектор |
| Барабанщиков Евгений | QA-инженер |
| Ишмаметьев Денис | Разработчик |
| Кузнецов Фёдор | Разработчик |
| Чигарёв Илья | Разработчик |
- Обратная связь: Баг-репорты, идеи и предложения по улучшению архитектуры принимаются через раздел Issues.
- Описание технического задания: Репозиторий ТехЛида.
⭐ Поставьте звезду, если этот проект оказался вам полезен!