Асинхронное веб-приложение на FastAPI для управления личными заметками с Telegram ботом.
- 🔐 JWT аутентификация
- 📝 CRUD операции для заметок
- 🏷️ Поддержка тегов
- 🤖 Telegram бот
- 🐳 Docker контейнеризация
- 📊 Логирование
- ⚡ Асинхронная работа
- 🛡️ Rate limiting
Проект построен с использованием чистой архитектуры:
- Entities: Базовые сущности (Note, User, Tag)
- Use Cases: Бизнес-логика приложения
- Repositories: Абстракция работы с данными
- Services: Сервисный слой
- API: FastAPI endpoints
- FastAPI
- SQLAlchemy (async)
- PostgreSQL
- Alembic
- Pydantic
- aiogram
- Docker
- JWT
- Клонируйте репозиторий:
bash https://github.com/Z1pP/fastapi-aiogram-notes.git cd notes-api
- Создайте .env файл:
bash cp .env.example .env
-
Установите зависимости:
-
Запустите через Docker:
bash docker-compose up -d
GET /api/v1/notes
- Получить все заметки пользователяPOST /api/v1/notes
- Создать новую заметкуPUT /api/v1/notes/{note_id}
- Обновить заметкуDELETE /api/v1/notes/{note_id}
- Удалить заметкуGET /api/v1/notes/by_tags
- Поиск заметок по тегам
POST /api/v1/auth/register
- РегистрацияPOST /api/v1/auth/login
- ВходPOST /api/v1/auth/refresh
- Обновление токена
Бот предоставляет следующие команды:
/start
- Начало работы/link_profile
- Привязка аккаунта/add_note
- Создание заметки/my_notes
- Список заметок/find_by_tags
- Поиск по тегам
- Создайте виртуальное окружение:
bash python -m venv venv source venv/bin/activate # Linux/macOS venv\Scripts\activate # Windows
- Установите зависимости:
bash pip install -r requirements.txt
- Запустите миграции:
bash alembic init alembic alembic migrate alembic upgrade head
- Запустите сервер:
bash uvicorn app.main:app --reload
- Хеширование паролей через bcrypt
- Rate limiting через FastAPI middleware
- JWT tokens для аутентификации
- Валидация входных данных через Pydantic
Логи сохраняются в logs/
с ротацией по дате:
app.log
- основные логиerror.log
- ошибкиaccess.log
- доступ к API