Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Pastez - анонимный сервис хранения текста

Проект представляет собой backend-сервис для хранения и обмена пастами по ссылке, упрощённый аналог Pastebin. Данный проект писался мною как первый тестовый проект, чтобы разобраться с структурой FastAPI-приложений, а также знакомству с другими библиотеками.


Функционал

  • Создание паст
  • Получение пасты по уникальной slug-ссылке
  • Автоматическая генерация короткой ссылки
  • Подсчёт количества просмотров
  • Анонимный доступ без регистрации и авторизации (в будущем планируется добавление регистрации)

Технологии

  • Python 3
  • FastAPI
  • SQLite
  • SQLAlchemy
  • Pydantic

API

Создать пасту

POST /pastes

Body:

{
  "title": "Название",
  "content": "Текст пасты"
}

Ответ

Body:

{
  "slug": "Ab3x9k"
}

Получить пасту

GET /p/{slug}

Body:

{
  "title": "Название",
  "content": "Текст пасты",
  "views": 3
}

Запуск проекта

1. Клонировать репозиторий

git clone url
cd pastez

2. Создать виртуальное окружение

python -m venv venv

3. Активировать окружение

.\venv\Scripts\Activate.ps1

4. Установить зависимости

pip install -r requirements.txt

5. Запуск

uvicorn app.main:app --reload

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

app/

├── main.py # точка входа

├── models.py # модели БД

├── schemas.py # Pydantic схемы

├── crud.py # работа с БД

├── database.py # подключение к SQLite

└── routers/

  ├──auth.py      # пустой файл, авторизация появится в будущем
  
  └── pastes.py   # API эндпоинты

Планируемые улучшения

  • Авторизация пользователей
  • Просмотр своих паст
  • Удаление своих паст
  • Время жизни паст
  • Приватные пасты
  • FrontEnd
  • Docker-развёртывание

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages