feat: add README
This commit is contained in:
parent
5f25234962
commit
1730e29867
112
README.md
Normal file
112
README.md
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
# Tinder Clone
|
||||||
|
|
||||||
|
Образовательный проект - клон приложения Tinder, реализованный на Java с использованием Jakarta Servlet API.
|
||||||
|
|
||||||
|
> 📚 **Создан в рамках курса**: [Свой Тиндер на Java](https://www.youtube.com/playlist?list=PL5PnotADCJBdY2ULFhcQnrmlfGJ6JEN_A)
|
||||||
|
|
||||||
|
## Описание проекта
|
||||||
|
|
||||||
|
Это веб-приложение, имитирующее функциональность популярного приложения для знакомств 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` для хранения профилей пользователей. При запуске создаются два тестовых пользователя:
|
||||||
|
|
||||||
|
- **Admin**: ivanov@mail.ru / 123
|
||||||
|
- **User**: sidorova@mail.ru / 456
|
||||||
|
|
||||||
|
## Особенности реализации
|
||||||
|
|
||||||
|
- **Singleton паттерн** для DAO и Service слоев
|
||||||
|
- **Функциональное программирование** с использованием Stream API
|
||||||
|
- **Безопасность** через фильтры и валидацию
|
||||||
|
- **Интернационализация** через resource bundles
|
||||||
|
- **RESTful подход** в контроллерах
|
||||||
|
|
||||||
|
## Возможности для развития
|
||||||
|
|
||||||
|
- Интеграция с реальной базой данных (PostgreSQL, MySQL)
|
||||||
|
- Добавление WebSocket для real-time функциональности
|
||||||
|
- Реализация системы лайков и мэтчей
|
||||||
|
- Добавление загрузки фотографий
|
||||||
|
- Интеграция с социальными сетями
|
||||||
|
- Разработка мобильного приложения
|
||||||
|
|
||||||
|
## Автор
|
||||||
|
|
||||||
|
Проект разработан в образовательных целях как часть курса по веб-разработке на Java.
|
||||||
|
|
||||||
|
## Лицензия
|
||||||
|
|
||||||
|
Этот проект предназначен только для образовательных целей.
|
||||||
Loading…
x
Reference in New Issue
Block a user