Tinder Clone
Образовательный проект - клон приложения Tinder, реализованный на Java с использованием Jakarta Servlet API.
📚 Создан в рамках курса: Свой Тиндер на Java
Описание проекта
Это веб-приложение, имитирующее функциональность популярного приложения для знакомств Tinder. Проект разработан в учебных целях для демонстрации навыков разработки на Java EE/Jakarta EE.
Основной функционал
- Регистрация и аутентификация пользователей
- Управление профилями (создание, просмотр, редактирование)
- Система ролей (ADMIN, USER)
- Мультиязычность (поддержка русского и английского языков)
- Фильтрация и безопасность (AuthFilter, ErrorFilter)
- Валидация данных
Технологический стек
- Java 17+
- Jakarta Servlet API
- JSP (JavaServer Pages)
- JSTL (Jakarta Standard Tag Library)
- Lombok (для генерации кода)
- SLF4J (для логирования)
- Maven/Gradle (сборка проекта)
Архитектура проекта
Проект следует многослойной архитектуре:
src/ru/charm/back/
├── controller/ # Контроллеры и фильтры
├── dao/ # Объекты доступа к данным (in-memory storage)
├── dto/ # Объекты передачи данных
├── mapper/ # Мапперы между сущностями
├── model/ # Модели данных и исключения
├── service/ # Бизнес-логика
├── utils/ # Утилитные классы
└── validator/ # Валидаторы
Основные компоненты
Модели данных
- Profile - основная сущность пользователя
- Gender - enum (MALE, FEMALE)
- Role - enum (ADMIN, USER)
- Status - enum (ACTIVE, INACTIVE)
Контроллеры
- RegistrationController - регистрация новых пользователей
- LoginController - аутентификация
- ProfileController - управление профилями
- CredentialsController - управление учетными данными
- ContentController - контент приложения
- LanguageController - переключение языков
Фильтры
- AuthFilter - фильтр аутентификации
- ErrorFilter - обработка ошибок
- HiddenHttpMethodFilter - поддержка HTTP методов
- LanguageFilter - фильтр языковых настроек
Установка и запуск
Требования
- JDK 17 или выше
- Apache Tomcat 10+
- IDE (IntelliJ IDEA рекомендуется)
Запуск проекта
- Клонировать репозиторий
- Открыть проект в IDE
- Настроить Tomcat Server
- Развернуть проект на сервере
- Открыть
http://localhost:8080/Tinder_Clone/в браузере
Структура данных
Проект использует in-memory хранилище на основе ConcurrentHashMap для хранения профилей пользователей. При запуске создаются два тестовых пользователя:
- Admin: ivanov@mail.ru / 123
- User: sidorova@mail.ru / 456
Особенности реализации
- Singleton паттерн для DAO и Service слоев
- Функциональное программирование с использованием Stream API
- Безопасность через фильтры и валидацию
- Интернационализация через resource bundles
- RESTful подход в контроллерах
Возможности для развития
- Интеграция с реальной базой данных (PostgreSQL, MySQL)
- Добавление WebSocket для real-time функциональности
- Реализация системы лайков и мэтчей
- Добавление загрузки фотографий
- Интеграция с социальными сетями
- Разработка мобильного приложения
Автор
Проект разработан в образовательных целях как часть курса по веб-разработке на Java.
Лицензия
Этот проект предназначен только для образовательных целей.
Description
Languages
Java
97.5%
HTML
2.5%