https://github.com/vl1507/python_dev_mashyanov_vladimir
Тестовое задание на практику в FarPost на Python-разработчика
https://github.com/vl1507/python_dev_mashyanov_vladimir
farpost fastapi python sqlalchemy test-task
Last synced: 6 months ago
JSON representation
Тестовое задание на практику в FarPost на Python-разработчика
- Host: GitHub
- URL: https://github.com/vl1507/python_dev_mashyanov_vladimir
- Owner: VL1507
- Created: 2025-03-05T08:04:52.000Z (12 months ago)
- Default Branch: master
- Last Pushed: 2025-04-01T11:51:58.000Z (11 months ago)
- Last Synced: 2025-04-01T12:33:37.010Z (11 months ago)
- Topics: farpost, fastapi, python, sqlalchemy, test-task
- Language: Python
- Homepage:
- Size: 166 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Тестовое задание на практику в FarPost на Python-разработчика
[Тестовое задание](terms_of_reference/description.txt)
## Установка
```bash
git clone https://github.com/VL1507/python_dev_mashyanov_vladimir.git
cd python_dev_mashyanov_vladimir
pip install uv
uv sync
```
Создайте .env файл. Используйте .env.example как шаблон.
## Запуск
```bash
uv run uvicorn app.main:app --reload --host 127.0.0.1 --port 8000
```
или
```bash
make runapp
```
## Изменения (нестыковки/несоответствия)
### Нет связи между комментариями и постом
#### Проблема
Нет связи между комментарием и постом, поэтому нельзя получить количество оставленных пользователем комментариев под постом для comments датасета
#### Решение
В db1 добавил таблицу comments c полями
- id: int
- user_id: int - внешние ключи с users.id
- post_id: int - внешние ключи с post.id
- text: varchar
- created_at: datetime
- updated_at: datetime - пусть можно редактировать комментарии
## Структура
```text
.
├── app ─ Главная папка проекта
│ ├── api ─ здесь находятся эндпоинты
│ ├── database ─ для работы с БД
│ ├── migration ─ миграции alembic
│ ├── schemas ─ схемы получаемых и отдаваемых данных по api
│ ├── services ─ сервисы
│ └── utils
└── tests ─ Тесты
└── unit
```
## Другие комментарии
- тестов в папке tests нет
- специально загрузил .env, db1.sqlite3 и db2.sqlite3, чтобы было проще проверить работу