Перейти к содержимому
Все проекты
Разработка ПОЗавершён2025

Rent Tracker

Rent Tracker — веб-приложение для управления арендой, созданное вместе с напарником для full-stack-модуля в HWR Berlin. Оно покрывает повседневную рутину небольшого арендодателя — квартиры, жильцов, договоры и помесячные платежи — и добавляет систему напоминаний, которая вычисляет, какие аренды ещё не оплачены, и рассылает их по Telegram или почте по расписанию, заданному каждым пользователем.

Роль
Соразработчик (команда из 2 человек)
Год
2025
Статус
Завершён
Категория
Разработка ПО
Инструменты и технологии
PythonFlaskJinja2SQLiteAPSchedulerpython-telegram-botSendGrid
Rent Tracker cover — an editorial grid suggesting a rent-payment schedule.

Проблема

Небольшие частные арендодатели ведут аренду в таблицах или по памяти и теряют из виду, кто из жильцов какой месяц оплатил. Rent Tracker централизует эту запись и превращает «а они заплатили?» в автоматическое ежемесячное напоминание.

Контекст

Модуль «Full-Stack Web Development» в HWR Berlin, летний семестр 2025 года (проект шёл с апреля по июль 2025 года). Мы вдвоём разделили работу довольно поровну — по маршрутам, сервису напоминаний и интеграциям.

Процесс

Вычисление того, что не оплачено

Ключевая логика изолирует расчёт напоминаний в одном сервисе: окно неоплаченной аренды вычисляется по скользящему диапазону месяцев и сверяется с набором уже оплаченных пар (квартира, месяц) для быстрого поиска. Затем ночная задача рассылает уведомления по выбранным каждым пользователем каналам.

  • CRUD для квартир, жильцов, договоров и платежей, разграниченный по пользователю
  • Подписанные токены с ограничением по времени для подтверждения почты и сброса пароля
  • День напоминания у каждого пользователя и переключатели каналов Telegram/почта

Ключевые решения

Напоминания, не зависящие от канала

Доставка управляется флагами пользователя (use_email / use_telegram) и полем дня напоминания, так что одна и та же ночная задача может рассылать по одному или обоим каналам. Отдельный Telegram-бот опрашивает JSON-API с авторизацией по токену на предмет пользователей, у которых напоминание сегодня.

Результаты

  • Выпущено рабочее приложение с двумя интеграциями (Telegram-бот + почта SendGrid) на стеке Flask/SQLite, с аутентификацией, подтверждением почты и сбросом пароля по токену.
  • Завершено и сдано в срок с обширной документацией — архитектура, модель данных, проектные решения, три круга итераций в Figma и пользовательская оценка.

Извлечённые уроки

  • Слой хранения в итоге оказался разделён между SQLAlchemy для модели пользователя и написанным вручную слоем на «сыром» SQLite для всего остального — удобно тогда, но это несогласованность, которую я бы унифицировал при доработке.
  • Рамки учебной работы означали выпуск без автоматических тестов и CI, что в следующий раз я счёл бы обязательным.