Учебный командный проект, разработанный в рамках курса Мидл фронтенд разработчик
Реализация веб-игры, похожей на Space Invaders или Arkanoid
Сайт задеплоен на сервисе Яндекс.Облако
Представьте, что вы попали в открытый космос...какие там водятся обитатели? 👽👽👽
Мы представляем наш личный взгляд на пришельцев, которых можно там встретить (они достаточно милые, просто слегка кровожадные)
Цель игры - перестрелять как можно больше космических монстров и набрать за это как можно больше очков.
Изначально игроку даётся три жизни. При столкновении с пулей врага - забирается одна жизнь, при столкновении с астероидом или сеткой врагов - все жизни.
Но не отчаивайтесь! В игре в рандомное время появляются бонусы, которые могут прибавить жизнь (или восстановить ее полностью) или предоставить ещё какие-нибудь плюшки наподобие щита или режима кибер-атаки⚡
Для движения корабля необходимо использовать стрелки вправо-влево, для стрельбы - пробел.
Если хотите поставить игру на паузу - нажмите Esc: откроется меню, где вы можете посмотреть набранные очки, прочитать правила еще раз, возобновить игру или выйти из неё.
Желаем удачи!
- Игра с ее механикой
- Бэкенд и фронтенд форума, возможность создавать топики и комментарии к ним, оставлять реакции
- Бэкенд и фронтенд темизации, возможность переключения темы и сохранение ее на сервере
- Авторизация и регистрация пользователя через backend Яндекса
- Возможность просмотра и извменения профиля через бэкенд Яндекса
- Просмотр и обновление рейтинга игроков
- Возможность играть offline
- TypeScript
- React
- React Router
- Material UI
- Formik
- Yup
- RTK Query
- Redux Toolkit
- Redux Persist
- Express
- Postgres
- Sequelize
- Axios
- Jest
- OAuth
- Docker
- Yandex Cloud
- Prettier
- Eslint
- Vite
- Service Workers
- SSR
Canvas API
- основа игрыWeb Audio API
- для звукового сопровождения игрыFullscreen API
- для возможности играть в FullScreen режимеDrag and Drop API
- для удобства загрузки аватара в профильCache API
- кэширование файлов для работы offline
- Убедитесь что у вас установлен
node
больше 16 версии иdocker
- Выполните команду
yarn bootstrap
- Выполните команду
docker compose build
- Выполните команду
docker compose up
- Вы великолепны!
Для development:
cd packages/client
yarn build:ssr
yarn build
cd ../server
yarn dev
Открыть в браузере http://localhost:8000/
Для production:
cd packages/client
yarn build:ssr
yarn build
cd ../server
yarn build
yarn preview
Открыть в браузере http://localhost:8000/
После 3 пункта верхних инструкций делаем следующее:
- В корне проекта вызываем
docker compose up postgres
- Переходим в папку сервера
cd packages/server
- Накатываем миграции
node migrate up
- Далее следуем по верхним инструкциям
Для клиента используется react-testing-library
Для тестирования введите команду yarn test
Наши тесты написаны на снапшотах, поэтому если написано что-то новое (обычно в верстке) - необходимо обновить нужный снапшот.
Есть два варианта:
cd packages/client
yarn test:file **/{название файла с тестом} -u
Или в интерактивном режиме:
cd packages/client
yarn test --watch
yarn lint
yarn format