Проект BE FIT, направлен на вовлечение людей в занятия спортом. Позволяет выбрать готовую программу тренировок, либо создать свою. Пользователь может планировать тренировки в календаре, также отмечать в нем их выполнение. За прошедшие тренировки, пользователю начисляются баллы. В профиле учитывается и количество сожженных калорий, что удобно для тех, у кого основная цель - потеря веса. В любой момент, пользователь может выгрузить резальтаты своих тренировок в файл (.xls) в профиле.
Проект разбит на 2 части. client & server.
Server - написан на NodeJS с использованием ExpressJS. В качестве базы данных используется Postgres + Sequelize ORM.
Регистрация и авторизация пользователя на JWT токенах. Пароли в базе данных хэшируются, что делает его безопасным.
После регистрации пользователь может изменить свои данные, загрузить свой аватар. Для этого используется Multer.
При регистрации пользователю направляется welcome message на почту благодоря nodemailer.
Client - написан на TypeScript, React + Redux Toolkit. Для выполнения асинхронных запросов к бд используется Axios. В качестве сборщика выбран Vite. Chakra UI использована в качестве UI KIT. Для маршрутизации используется React-Router, с целью обеспечения большей безопасности используются ProtectedRoute. Реализована возможность выбора и переключения темы с светлой на темную. С целью оптимизации, используется lazy loading / suspense
Для запуска проекта требуется:
- Выполнить его fork
- Скопировать себе любым удобным способом (HTTPS, SSH ...), открыть в IDE
- Открыть 2 терминала в IDE
- В первом терминале войти в client => Затем выполнить установку зависимостей в client => npm i => npm run dev
- Во втором терминале войти в server => Затем выполнить установку зависимостей в server => npm i => npm run dev