Rent Tracker
Rent Tracker — веб-приложение для управления арендой, созданное вместе с напарником для full-stack-модуля в HWR Berlin. Оно покрывает повседневную рутину небольшого арендодателя — квартиры, жильцов, договоры и помесячные платежи — и добавляет систему напоминаний, которая вычисляет, какие аренды ещё не оплачены, и рассылает их по Telegram или почте по расписанию, заданному каждым пользователем.
- Роль
- Соразработчик (команда из 2 человек)
- Год
- 2025
- Статус
- Завершён
- Категория
- Разработка ПО
- Инструменты и технологии
- PythonFlaskJinja2SQLiteAPSchedulerpython-telegram-botSendGrid
- Ссылки
- GitHubDocumentation
Проблема
Небольшие частные арендодатели ведут аренду в таблицах или по памяти и теряют из виду, кто из жильцов какой месяц оплатил. 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, что в следующий раз я счёл бы обязательным.
Похожие работы

Room of Horror
VR-«комната ужасов», где студенты-медсёстры ищут ошибки ухода в виртуальной больничной палате, а преподаватель настраивает и наблюдает за каждой сессией вживую из браузера.

AOG Moldova
Рабочий лендинг для круглосуточной аварийной логистики авиазапчастей в Молдове — с трёхъязычным интерфейсом и бессерверной формой заявки, которая направляет срочные запросы прямо в операционную команду.