AlexBarmen
327767169b
|
1 year ago | |
---|---|---|
.vscode | 1 year ago | |
.yarn/releases | 1 year ago | |
apps | 1 year ago | |
config | 1 year ago | |
docs | 1 year ago | |
libs | 1 year ago | |
tools | 2 years ago | |
.editorconfig | 2 years ago | |
.env | 1 year ago | |
.eslintignore | 2 years ago | |
.eslintrc.json | 1 year ago | |
.gitignore | 2 years ago | |
.prettierignore | 2 years ago | |
.prettierrc | 2 years ago | |
.yarnrc | 1 year ago | |
README.md | 1 year ago | |
docker-compose.yml | 2 years ago | |
jest.config.ts | 2 years ago | |
jest.preset.js | 2 years ago | |
nx.json | 2 years ago | |
package-lock.json | 1 year ago | |
package.json | 1 year ago | |
tsconfig.base.json | 1 year ago | |
yarn.lock | 1 year ago |
README.md
IT Lab Platform
Описание
Проект представляет собой приложение, созданное с использованием NX и JavaScript. Он разработан с целью удовлетворения потребностей Кубанского государственного университета и Лаборатории коммерческой разработки ПО IT Lab.
Сервисы
Развертывание
To start the development server run nx serve frontend
. Open your browser and navigate to http://localhost:4200/. Happy coding!
npm i -g prisma nx
yarn install
copy .env.example .env
cd apps/auth/serving && copy database.env.example database.env && sudo docker-compose up -d
cd apps/auth/serving && copy database.env.example database.env && sudo docker-compose up -d && cd ../../../
cd apps/user-data/serving && copy database.env.example database.env && sudo docker-compose up -d && cd ../../../
auth
prisma generate --schema="./libs/prisma-clients/auth/prisma/schema.prisma"
prisma db push --schema="./libs/prisma-clients/auth/prisma/schema.prisma"
user data
prisma generate --schema="./libs/prisma-clients/user-data/prisma/schema.prisma"
prisma db push --schema="./libs/prisma-clients/user-data/prisma/schema.prisma"
Run all services:
nx run-many --parallel --target=serve --projects=agw,user-data,auth,frontend
Deploy on SCOS
Структура репозитория
Репозиторий содержит следующие основные каталоги и файлы:
apps
- приложенияlibs
- библиотекиtools
- Nx workspaces toolsdocs
- документация
graph TD;
agw-e2w-->agw;
frontend-e2e-->frontend;
ui-modules-->agw;
agw-->user-data;
user-data-->user-data-db;
user-data-db-->user-data-pg-admin;
agw-->auth-client;
auth-client-->auth;
auth-->auth-db;
auth-db-->auth-db-admin;
ui-modules-->ui;
site-pages-->ui-modules;
frontend-->site-pages;
site-pages-->site-layouts;
Generate code
If you happen to use Nx plugins, you can leverage code generators that might come with it.
Run nx list
to get a list of available plugins and whether they have generators. Then run nx list <plugin-name>
to see what generators are available.
Learn more about Nx generators on the docs.
Running tasks
To execute tasks with Nx use the following syntax:
nx <target> <project> <...options>
You can also run multiple targets:
nx run-many -t <target1> <target2>
..or add -p
to filter specific projects
nx run-many -t <target1> <target2> -p <proj1> <proj2>
Targets can be defined in the package.json
or projects.json
. Learn more in the docs.
Want better Editor Integration?
Have a look at the Nx Console extensions. It provides autocomplete support, a UI for exploring and running tasks & generators, and more! Available for VSCode, IntelliJ and comes with a LSP for Vim users.
Ready to deploy?
Just run nx build demoapp
to build the application. The build artifacts will be stored in the dist/
directory, ready to be deployed.
Backend
Prisma Types
nx g prisma-generator
Frontend
Create a new Layout
nx g @nx/react:component NAME --project site-layouts
Create a new Page
nx g @nx/react:component NAME --project site-pages
Create a new Component
Like navbar, footer, login card, delete modal alert and et.
nx g @nx/react:component NAME --project ui-modules
Create a new UI Component
Like nav_link, cta_button, username_input and et.
nx g @nx/react:component NAME --project ui
Стиль кода
Коммиты
Используемые префиксы:
- feat: (от "feature") - новая функциональность или добавление нового компонента.
- fix: - исправление ошибок или дефектов.
- docs: - изменения, связанные с документацией, например, обновление README или документации в коде.
- style: - изменения внешнего вида кода, форматирование, пробелы, отступы и т.д., которые не влияют на его поведение.
- refactor: - рефакторинг кода без исправления ошибок или добавления новых функций.
- test: - добавление или исправление тестов.
- chore: - изменения в сборочных скриптах, настройках инструментов, обновление зависимостей и т.д.
- perf: - изменения, связанные с оптимизацией производительности.
- revert: - отмена предыдущего коммита.
- merge: - коммит, созданный при слиянии веток.
- release: - коммит, связанный с выпуском новой версии.
- require: - коммит, связанный с установкой новой библиотеки