Skip to content

anyamao/diary

Repository files navigation

☆ VibeNote — Digital Diary & Wellness Tracker

TypeScript Next.js FastAPI PostgreSQL Tailwind CSS License

VibeNote — это веб-приложение для ведения личного дневника, отслеживания эмоционального состояния, анализа качества сна и повышения продуктивности. Проект объединяет психологические инструменты, трекеры привычек и планировщик задач в единой экосистеме.

♡ Демонстрация работы

0510.mp4

📌 Оглавление \(٥⁀▽⁀ )/

О проекте

VibeNote родился из идеи создать единое пространство для самопознания и развития личности. В современном мире так важно уделять время ментальному здоровью, но существующие инструменты часто разрознены.

VibeNote объединяет всё необходимое в одном приложении:

  • Рефлексировать через ведение дневника с поддержкой Markdown
  • Отслеживать эмоции с помощью визуального календаря настроений
  • Анализировать сон с детальной статистикой и классификацией снов
  • Планировать задачи используя гибкую систему с цветными тегами
  • Узнавать себя лучше через научно обоснованные психологические тесты
  • Повышать продуктивность с помощью таймера учёбы и отслеживания времени

Основные возможности (ง ื▿ ื)ว

Личное пространство (Personal)

Модуль Описание Ключевые возможности
Дневник Ведение личных записей с богатым форматированием Markdown редактор, выбор настроения, избранные записи, поиск и фильтрация, вопросы для рефлексии
Трекер настроения Визуализация эмоционального состояния Календарь настроений с иконками, круговая диаграмма распределения, графики по дням недели, анализ средней длины записей
Трекер сна Анализ качества и паттернов сна Мультипериоды сна, типология сновидений (обычный/кошмар/любовный/грустный), теги снов, статистика и тренды
Тесты личности Психологическая диагностика Большая пятёрка (40 вопросов), тест на мотивацию, тест на эмоциональный интеллект, шкала депрессии PHQ-9
Заметки о себе Саморефлексия и цели Личные заметки, списки бустеров и дренеров настроения

Рабочее пространство (Business)

Модуль Описание Ключевые возможности
Планировщик Организация задач по дням и неделям Визуальный недельный план, цветные теги, отметка важных дней, детальный просмотр дня с таймлайном
Study Timer Отслеживание времени учёбы Трекинг сессий, статистика по предметам, история сессий, графики распределения времени, календарь активности
Заметки (Business) Хранение рабочих идей Markdown поддержка, закрепление важного, поиск, теги

Безопасность и профиль

  • Аутентификация через JWT с httpOnly cookies
  • Управление профилем — смена имени пользователя, выбор аватара
  • Удаление аккаунта с каскадным удалением всех данных

Архитектура и технологии (⌒▽⌒)♡

Frontend

Next.js 16.x (App Router) + React 19 + TypeScript

  • ├── UI: Tailwind CSS + Lucide Icons
  • ├── State: Zustand (клиент) + EventBus (события)
  • ├── Charts: Recharts (визуализация данных)
  • ├── Markdown: ReactMarkdown + remark-gfm
  • └── HTTP: Axios (интерцепторы для токенов)

Backend

FastAPI 0.115+ + SQLAlchemy 2.0 (async) + PostgreSQL

  • ├── Auth: python-jose (JWT) + Passlib (bcrypt)
  • ├── Security: httpOnly cookies + CORS
  • ├── Database: asyncpg
  • ├── Validation: Pydantic V2

Структура проекта

diary/

  • ├── backend/ # FastAPI бэкенд
  • │ ├── app/
  • │ │ ├── routers/ # API эндпоинты (по модулям)
  • │ │ ├── models.py # SQLAlchemy модели
  • │ │ ├── schemas.py # Pydantic схемы
  • │ │ ├── crud.py # CRUD операции
  • │ │ ├── dependencies.py # Зависимости (auth, db)
  • │ │ ├── config.py # Конфигурация
  • │ │ ├── database.py # Подключение к БД
  • │ │ └── main.py # Точка входа
  • │ ├── alembic/ # Миграции БД
  • │ ├── requirements.txt
  • │ └── .env.example
  • ├── frontend/ # Next.js фронтенд
  • │ ├── app/
  • │ │ ├── business/ # Бизнес-секция
  • │ │ ├── personal/ # Личная секция
  • │ │ ├── login/ # Логин
  • │ │ ├── register/ # Регистрация
  • │ │ ├── layout.tsx # Корневой layout
  • │ │ └── globals.css # Глобальные стили
  • │ ├── components/ # UI компоненты
  • │ ├── store/ # Zustand сторы
  • │ ├── lib/ # Утилиты (axios, eventBus)
  • │ ├── hooks/ # Кастомные хуки
  • │ ├── public/ # Статика (аватарки, иконки)
  • │ ├── package.json
  • │ └── next.config.js
  • ├── screenshots/ # Скриншоты для README
  • ├── docker-compose.yml
  • └── README.md

Быстрый старт ☆ミ(o*・ω・)ノ

Предварительные требования

Node.js 18+ и pnpm/npm
Python 3.12+ и PostgreSQL 15+

Установка и запуск (локальная разработка)
1. Клонирование репозитория
bash

git clone https://github.com/anyamao/diary.git
cd diary
  1. Настройка бэкенда

cd backend
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt

# Создайте .env файл:
cp .env.example .env
# Заполните DATABASE_URL, SECRET_KEY и т.д.

# Запуск сервера
uvicorn app.main:app --reload --port 8011

Бэкенд запустится на http://localhost:8011
  1. Настройка фронтенда

cd ../frontend
pnpm install  # или npm install
cp .env.example .env.local  # настройте API_URL

# Запуск дев-сервера
pnpm dev  # или npm run dev

Приложение будет доступно на http://localhost:3011

Вклад в проект (^_<)〜☆

Мы приветствуем любой вклад в развитие VibeNote!

Сообщайте об ошибках через Issues

Предлагайте новые функции через Pull Request

Улучшайте документацию

Планы по развитию (Roadmap)

Мобильное приложение на React Native (в разработке)

Интеграция с Google Calendar для планера

Голосовые заметки

📄 Лицензия

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

About

Elevate your life with our all-in-one productivity & wellbeing website! Write notes, track your sleep schedule, mood, study sessions and a lot more :з

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors