Техническое задание: Веб-приложение для поиска попутчиков на Django
Цель проекта:
Создать веб-приложение для поиска попутчиков с использованием фреймворка Django по архитектуре MVT (Model-View-Template). Пользователи смогут размещать объявления о поездках и находить попутчиков через веб-интерфейс. Проект будет использовать базу данных PostgreSQL для хранения информации.
1. Функциональные требования
1.1 Модели
1. User (Пользователь):
• id (Primary Key) – уникальный идентификатор пользователя.
• username (никнейм пользователя).
• email (электронная почта).
• password (пароль).
• created_at (дата регистрации).
2. Trip (Поездка):
• id (Primary Key) – уникальный идентификатор поездки.
• user (ForeignKey на User, разместившего поездку).
• start_location (начальная точка поездки).
• end_location (конечная точка поездки).
• date (дата и время поездки).
• seats_available (количество свободных мест).
• description (описание поездки, необязательное поле).
• created_at (дата добавления поездки).
3. CompanionRequest (Запрос на попутчика):
• id (Primary Key) – уникальный идентификатор запроса.
• user (ForeignKey на User, разместившего запрос).
• start_location (начальная точка поездки).
• end_location (конечная точка поездки).
• date (дата и время поездки).
• description (описание запроса, необязательное поле).
• created_at (дата добавления запроса).
1.2 CRUD-функционал
1. User (Пользователь):
• Create: Регистрация нового пользователя.
• Read: Просмотр информации о пользователе.
• Update: Обновление информации о пользователе.
• Delete: Удаление учетной записи.
2. Trip (Поездка):
• Create: Добавление новой поездки.
• Read: Просмотр доступных поездок.
• Update: Обновление информации о поездке.
• Delete: Удаление поездки.
3. CompanionRequest (Запрос на попутчика):
• Create: Добавление нового запроса.
• Read: Просмотр списка запросов.
• Update: Обновление информации о запросе.
• Delete: Удаление запроса.
1.3 Функционал
• Регистрация и авторизация пользователей.
• Размещение и редактирование поездок.
• Просмотр списка поездок.
• Поиск поездок по дате и маршруту.
• Размещение и редактирование запросов на попутчиков.
• Просмотр списка запросов на попутчиков.
2. Технические требования
2.1 Стек технологий
• Язык программирования: Python
• Фреймворк: Django
• База данных: PostgreSQL
2.2 База данных
• Создать базу данных с таблицами, соответствующими описанным моделям.
3. Необходимые шаги для реализации
1. Настроить Django-проект и подключение к PostgreSQL.
2. Создать модели и выполнить миграции.
3. Реализовать представления и шаблоны.
4. Настроить маршруты и интерфейс взаимодействия.
5. Реализовать логику поиска попутчиков и отображения данных.
6. Провести тестирование функциональности.
4. Тестирование
• Проверка регистрации и авторизации пользователей.
• Проверка добавления, редактирования и удаления поездок.
• Проверка добавления, редактирования и удаления запросов на попутчиков.
• Проверка корректной работы фильтрации и поиска.