Техническое задание: Веб-приложение для поиска попутчиков на 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. Тестирование

• Проверка регистрации и авторизации пользователей.
• Проверка добавления, редактирования и удаления поездок.
• Проверка добавления, редактирования и удаления запросов на попутчиков.
• Проверка корректной работы фильтрации и поиска.