Skip to content

kSocial — учебный проект социальной сети, разработанный с использованием современных веб-технологий. В проекте реализованы ключевые функции социальной сети: создание профиля, добавление друзей, публикация постов, лайки, комментарии и обмен сообщениями в реальном времени.

Notifications You must be signed in to change notification settings

1kodexxx/ksocial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 

Repository files navigation

kSocial

kSocial Logo

kSocial — это учебный проект социальной сети, созданный с использованием современных веб-технологий. Проект предоставляет пользователям возможность создавать профили, добавлять друзей, публиковать посты, комментировать, ставить лайки и обмениваться сообщениями в реальном времени.

kSocial включает в себя множество фич, таких как лента новостей, сторис, чаты и уведомления — всё, что нужно для комфортного общения и взаимодействия в современном цифровом мире.

Functionality Preview 1 Functionality Preview 2 Functionality Preview 3


🔧 Технологии

Проект построен с использованием лучших технологий для разработки современного веб-приложения:

  • 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

⚙️ Структура проекта

Frontend

  • /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 и другие глобальные стили для настройки интерфейса и адаптивности.

Backend

  • /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.

About

kSocial — учебный проект социальной сети, разработанный с использованием современных веб-технологий. В проекте реализованы ключевые функции социальной сети: создание профиля, добавление друзей, публикация постов, лайки, комментарии и обмен сообщениями в реальном времени.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published