Files
lkeep/README.md
proDream 5a299cf47d
Some checks failed
Lint project / lint (push) Has been cancelled
feat: приложение профиля
- Добавлен новый маршрут смены почты и связанная с ним бизнес-логика
- Добавлен новый маршрут смены пароля и связанная с ним бизнес логика
- В схеме `AuthUser` изменена аннотация типа с `str` на `StringConstraints` с учётом минимальной и максимальной длинны пароля
- В `alembic.ini` исправлен путь до директории с миграциями после последнего обновления архитектуры под `Poetry 2.1.3`
- Добавлен `docker-compose.dev.yaml` для запуска БД и Redis в окружении для разработки
- Добавлен `Makefile` с описанием основных команд
- Обновлён `README.md`
2025-07-23 02:03:16 +04:00

9.0 KiB
Raw Blame History

Napkin Tools: Lkeep (Links Keeper)

GitHub Actions Workflow Status Код на салфетке Заметки на салфетке Кот на салфетке чат

Lkeep — сервис сокращения ссылок, написанный на Python с использованием современных технологий, таких как FastAPI, PostgreSQL, Poetry, Pydantic и других.

Проект находится в процессе разработки. Следить за ходом можно:

Технологии

  • FastAPI — для построения высокопроизводительных API.
  • PostgreSQL — реляционная база данных для хранения данных.
  • asyncpg — асинхронная библиотека для подключения к PostgreSQL.
  • SQLAlchemy — ORM для работы с базой данных.
  • Poetry — инструмент для управления зависимостями и виртуальными окружениями.
  • Pydantic — для валидации данных и работы с моделями.
  • pre-commit — инструмент для автоматической проверки кода перед коммитом.
  • CI Workflow — автоматизация тестирования приложения.
  • uvicorn — высокопроизводительный ASGI-сервер для обработки HTTP-запросов.
  • pydantic-settings — библиотека для работы с конфигурациями и переменными окружения с использованием Pydantic.
  • passlib — библиотека для безопасного хеширования паролей и других данных.
  • celery — распределённая система для выполнения фоновых задач и управления очередями, позволяющая выполнять задачи асинхронно.
  • redis — высокопроизводительное in-memory хранилище, используемое для кэширования данных и как брокер сообщений для Celery.
  • itsdangerous — библиотека для безопасного создания и проверки подписанных данных, что помогает защитить токены и другую чувствительную информацию.
  • smtplib — стандартный модуль Python для отправки электронной почты через протокол SMTP.
  • jinja2 — современный и гибкий шаблонизатор, который позволяет динамически генерировать HTML и другие текстовые форматы.
  • pyJWT — библиотека для создания, подписи и верификации JSON Web Tokens (JWT). Используется для генерации токенов доступа, проверки их целостности, срока действия и подписи, а также работы с закодированными данными (payload) в соответствии со стандартами JWT.

Репозитории

  • GitHub — основной репозиторий проекта.
  • GIT на салфетке — зеркальная копия репозитория на Gitea.

Ссылки на статьи

Я пишу подробные статьи для новичков о процессе создания этого проекта. Ознакомьтесь с ними на Код на салфетке:

  1. FastAPI 1. Инициализация проекта
  2. FastAPI 2. Подготовка проекта
  3. FastAPI 3. Подключение к SQLAlchemy и генератор сессий
  4. FastAPI 4. Модель пользователя, миксины и Alembic
  5. FastAPI 5. Приложение аутентификации и Pydantic схемы
  6. FastAPI 6. Пользовательский сервис и маршруты регистрации
  7. FastAPI 7. Электронная почта, подтверждение регистрации, Celery и Redis
  8. FastAPI 8. Маршрут авторизации и JWT
  9. FastAPI 9. Logout и проверка авторизации
  10. FastAPI 10. Изменение данных пользователя

Установка

Для установки и запуска проекта на вашем локальном компьютере выполните следующие шаги.

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

    Для этого используйте команду git clone. Это создаст локальную копию проекта на вашем компьютере.

    Если вы используете GitHub:

    git clone https://github.com/proDreams/lkeep.git
    

    Или если предпочитаете Gitea:

    git clone https://git.pressanybutton.ru/proDream/lkeep.git
    
  2. Установите зависимости:

    Для управления зависимостями в проекте используется Poetry. После клонирования репозитория, перейдите в папку с проектом и установите все необходимые пакеты:

    cd lkeep
    poetry install
    

    Poetry автоматически установит все библиотеки, указанные в файле pyproject.toml.

  3. Настройте переменные окружения:

    В корне проекта находится файл .env.example. Скопируйте его и переименуйте в .env. В нем хранятся настройки для подключения к базе данных и другие параметры конфигурации.

    Пример команды:

    cp .env.example .env
    

    Затем откройте файл .env и заполните его значениями, соответствующими вашей системе (например, настройки подключения к базе данных PostgreSQL).

  4. Запустите БД и Redis

    Для запуска контейнера с PostgreSQL и Redis используйте команду в терминале:

    docker compose up -d
    
  5. Запустите приложение:

    Для запуска сервера в режиме разработки используйте команду с Poetry:

    poetry run app
    

    Это запустит приложение на локальном сервере, доступном по адресу http://127.0.0.1:8000.

Автор

Проект разработан Иваном Ашихминым. Для связи используйте Telegram.

Проект создается в рамках сайта "Код на салфетке", где публикуются статьи и обучающие материалы по разработке.