Cheqmate - позволяет группе участников быстро и справедливо распределить общие траты без необходимости немедленного расчета в заведении.
- Создание групп - создание группы с добавлением участников.
- Распределение позиций - добавление позиций чека и назначение каждой участнику.
- Сканирование чеков - сканирование QR-кода фискального чека через камеру с автозаполнением позиций.
- Фортуна удачи - рулетка для выбора участника, который платит за весь чек.
- Игра «Ханойская башня» - мини-игра между участниками (терминальный клиент); проигравший платит за весь чек.
- Оптимизация долгов - сервер пересчитывает долги, чтобы минимизировать количество транзакций.
- Управление долгами — просмотр, частичная или полная оплата / закрытие долга в группе.
- Система уведомлений — уведомления о новых чеках, о добавлении в группу и о непогашенных долгах.
- Система достижений — ачивки за действия в приложении (первый чек, сканирование, рулетка и т.д.).
- Рейтинг надежности - позволяет понять, кто вовремя платит долги, а кто нет.
- Личные расходы — учёт личных трат без создания группы.
- Аналитика расходов — сводка по долгам, личным расходам и сумме, заплаченной за других (за текущий месяц).
- Язык: Java
- UI-фреймворк: Android SDK
- Сетевой слой (клиент): Retrofit, OkHttp, Gson
- Backend-фреймворк: Spring Boot (Spring Web, Spring Security, Spring Data JPA)
- СУБД: PostgreSQL
- Очередь сообщений: Apache Kafka (Spring Kafka) - асинхронная доставка уведомлений
- Push-уведомления: Firebase Cloud Messaging (FCM)
- Авторизация: JWT
- Контейнеризация: Docker, Docker Compose
- Тестирование:
- Backend: ...
- Клиент: ...
- API: Postman
- Формат данных: JSON, HTTP REST
-
Установите зависимости:
- Java 17, Maven
- Docker, Docker Compose
- Android Studio (для клиента)
-
Склонируйте репозиторий:
git clone https://github.com/gle6a6y/Cheqmate.git cd Cheqmate -
Запуск backend (PostgreSQL + Kafka + сервер):
docker compose up --build
-
Сборка Android-клиента:
cd client ./gradlew assembleDebug ./gradlew installDebug -
Терминальная игра «Ханойская башня» (опционально):
cd terminal-game mvn package java -jar target/terminal-game-1.0-SNAPSHOT-jar-with-dependencies.jar