kSocial — это учебный проект социальной сети, созданный с использованием современных веб-технологий. Проект предоставляет пользователям возможность создавать профили, добавлять друзей, публиковать посты, комментировать, ставить лайки и обмениваться сообщениями в реальном времени.
kSocial включает в себя множество фич, таких как лента новостей, сторис, чаты и уведомления — всё, что нужно для комфортного общения и взаимодействия в современном цифровом мире.
Проект построен с использованием лучших технологий для разработки современного веб-приложения:
-
Frontend:
- React.js + Next.js 13 (App Router)
- Zustand (для глобального состояния)
- Tailwind CSS + ShadCN/UI (для UI и стилизации)
- Lucide Icons (для иконок)
- WebSockets (для реального времени)
-
Backend:
- Node.js + Express.js
- MongoDB (с использованием Mongoose для ORM)
- JWT для авторизации
- Socket.io для общения в реальном времени
-
Инфраструктура:
- Yandex Cloud для хостинга серверов
- Docker для контейнеризации
- GitHub Actions для CI/CD
-
/components — UI компоненты:
- Карточки постов, формы ввода, кнопки, модальные окна и другие элементы интерфейса.
-
/pages — Страницы приложения:
- Страницы, такие как главная страница, страницы профиля пользователя, чат, создание поста и т.д.
-
/store — Zustand хранилища:
- useChatStore — хранилище для чатов и сообщений.
- useFriendsStore — хранилище для управления друзьями и заявками.
- useNotificationStore — хранилище для уведомлений.
- usePostStore — хранилище для управления постами и лайками.
- useUserStore — хранилище для данных текущего пользователя.
- useUIStore — хранилище для управления состоянием UI (например, отображение модальных окон).
-
/services — API сервисы:
- auth.service.js — сервис для регистрации, логина и логаута пользователей.
- chat.service.js — сервис для работы с чатами и сообщениями.
- notification.service.js — сервис для работы с уведомлениями.
- post.service.js — сервис для работы с постами (создание, лайк, комментирование).
- search.service.js — сервис для поиска пользователей и постов.
- user.service.js — сервис для работы с профилем пользователя и данными о друзьях.
-
/assets — Статические файлы:
- Иконки, изображения и другие ассеты для отображения в интерфейсе.
-
/styles — Стили:
- Tailwind CSS и другие глобальные стили для настройки интерфейса и адаптивности.
-
/controllers — Контроллеры для обработки запросов:
- authController.js — логика для регистрации, авторизации и выхода пользователей.
- postController.js — создание, обновление и удаление постов.
- userController.js — управление пользователями, их данными и профилем.
- chatController.js — управление чатами и сообщениями.
- notificationController.js — управление уведомлениями.
-
/models — Модели базы данных:
- User.js — схема пользователя.
- Post.js — схема поста.
- Message.js — схема сообщения.
- Notification.js — схема уведомления.
- FriendRequest.js — схема для заявок в друзья.
-
/routes — Роуты API:
- authRoute.js — роуты для авторизации.
- postRoute.js — роуты для работы с постами.
- userRoute.js — роуты для работы с пользователями.
- chatRoute.js — роуты для работы с чатами и сообщениями.
- notificationRoute.js — роуты для работы с уведомлениями.
-
/utils — Утилиты:
- generateToken.js — генерация JWT токенов для авторизации.
- responseHandler.js — обработка ответов и ошибок.
-
/config — Конфигурации:
- db.js — подключение к базе данных MongoDB.
- socket.js — настройка WebSocket серверов для чатов.
- passport.js — конфигурация для использования Passport.js с Google OAuth.



