Tinder-Clone/README.md
2026-02-24 04:40:00 +03:00

5.1 KiB
Raw Permalink Blame History

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 рекомендуется)

Запуск проекта

  1. Клонировать репозиторий
  2. Открыть проект в IDE
  3. Настроить Tomcat Server
  4. Развернуть проект на сервере
  5. Открыть http://localhost:8080/Tinder_Clone/ в браузере

Структура данных

Проект использует in-memory хранилище на основе ConcurrentHashMap для хранения профилей пользователей. При запуске создаются два тестовых пользователя:

Особенности реализации

  • Singleton паттерн для DAO и Service слоев
  • Функциональное программирование с использованием Stream API
  • Безопасность через фильтры и валидацию
  • Интернационализация через resource bundles
  • RESTful подход в контроллерах

Возможности для развития

  • Интеграция с реальной базой данных (PostgreSQL, MySQL)
  • Добавление WebSocket для real-time функциональности
  • Реализация системы лайков и мэтчей
  • Добавление загрузки фотографий
  • Интеграция с социальными сетями
  • Разработка мобильного приложения

Автор

Проект разработан в образовательных целях как часть курса по веб-разработке на Java.

Лицензия

Этот проект предназначен только для образовательных целей.