- Ваша задача — объединить все прошлые работы в одну систему.
- Необходимо провести интеграцию серверной части и двух клиентских (мобильный и веб).
- Минимальный требующийся функционал:
- Просмотр списка дел
- Добавление дела
- Удаление дела
- Редактирование текста-описания дела
- Перевод невыполненного дела в состояние «Выполнено»
- Перевод выполненного дела в состояние «Не выполнено»
Обратите внимание: данные на клиентах должны быть синхронизированы. При изменении данных через веб-клиент изменения сразу доступны в мобильном клиенте, и наоборот.
Api/— FastAPI + SQLite backend (ToDoList.db).Web/— статический фронт (HTML/CSS/JS), отдаётся самим FastAPI.mobile/— SwiftUI-приложение (AppFull/AppFull.xcodeproj).
cd Api
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt # если файла нет — pip install fastapi uvicorn[standard] sqlalchemy aiosqlite
python main.py # или: uvicorn main:app --host 0.0.0.0 --port 8000 --reload- После запуска backend откройте браузер на
http://127.0.0.1:8000(локально) илиhttp://<ip_компьютера>:8000(если сервер на другой машине).
- Откройте
mobile/AppFull/AppFull.xcodeprojв Xcode. - В файле
TodoApp.swiftобновите базовый URL, если запускаете на реальном устройстве (http://<ip_компьютера>:8000/api). - В Info.plist добавьте:
Privacy - Local Network Usage Description— текст с объяснением, зачем приложению локальная сеть.App Transport Security Settings→Allow Arbitrary Loads = YES(или конкретное исключение для вашего сервера).
- Запустите backend и убедитесь, что устройство и компьютер в одной сети Wi‑Fi.
- В Xcode выберите схему
AppFull, нажмитеRun.
- SQLite файл
Api/ToDoList.dbсоздаётся автоматически при первом запуске. При необходимости можно мигрировать схему через SQLAlchemy. - Swagger UI доступен по
http://127.0.0.1:8000/docs.