Frontend часть Open Source проекта "Sakura"
Sakura - это социальная сеть для самураев, с помощью которой можно переписываться с другими самураями, отслеживать их деятельность и искать себе подобных.
Авторизованному пользователю доступны страницы: моя страница, новости, мессенджер, друзья, фотографии.
Также пользователь может менять тему приложения на светлую или темную.
Авторизация написана посредством JWT + Refresh token. Это предоставляет возможность пользователям единожды авторизоваться с помощью логин + пароль, а дальше система сама будет авторизовывать пользователя через access и refresh токены.
Маршрутизация реализована с помощью react-router-dom, также реализованы защищенные маршруты. При попытке перейти на маршруты, доступные только авторизованным пользователям произойдет перенаправление на страницу входа.
Взаимодействие с сервером происходит посредством:
- REST API - регистрация, авторизация, взаимодействие с друзьями, получение информации о пользователе, некоторый функционал мессенджера и т.д.
- WebSocket - функционал получения всех типов уведомлений, чаты с другими пользователями.
Управление состоянием хранилища происходит при помощи библиотеки Redux Toolkit.
Приложение полностью адаптивное, минимальная ширина экрана - 360px
🔨 Используемые технологии:
- React (hooks, router-dom)
- Redux Toolkit
- TypeScript
- Shadcn UI / Tailwind
- ESLint / Prettier
- Vite